当前位置: 面试刷题>> 卡牌游戏Ⅰ (经典算法题500道)


### 题目描述补充 **卡牌游戏Ⅰ** 在卡牌游戏中,玩家拥有一套卡牌,每张卡牌都有一个唯一的标识(ID)和一个攻击力值(Attack Power)。现在,你需要编写一个程序来实现以下功能: 1. **添加卡牌**:允许玩家向卡牌集合中添加新卡牌,需要提供卡牌的ID和攻击力值。 2. **删除卡牌**:允许玩家根据卡牌的ID从卡牌集合中删除卡牌。 3. **查询卡牌**:允许玩家根据卡牌的ID查询该卡牌的攻击力值。 4. **卡牌排序**:能够按照攻击力值对卡牌进行排序,并返回排序后的卡牌列表(可以是ID和攻击力值的对)。 ### 示例代码 以下是使用PHP、Python和JavaScript编写的示例代码,用于实现上述功能。 #### PHP 示例 ```php cards[$id] = $attackPower; } // 删除卡牌 public function removeCard($id) { unset($this->cards[$id]); } // 查询卡牌 public function queryCard($id) { return isset($this->cards[$id]) ? $this->cards[$id] : null; } // 卡牌排序 public function sortCards() { arsort($this->cards); // 按攻击力降序排序,保留键值对 return array_keys($this->cards, ...array_values($this->cards)); // 返回排序后的ID列表(注意:PHP不支持直接返回键值对排序后的结果) } } // 示例使用 $game = new CardGame(); $game->addCard(1, 5); $game->addCard(2, 10); $game->addCard(3, 3); echo "Sorted IDs: " . implode(', ', $game->sortCards()) . "\n"; echo "Card 2 Attack: " . $game->queryCard(2) . "\n"; $game->removeCard(2); echo "Card 2 Attack after removal: " . ($game->queryCard(2) ?? 'Not found') . "\n"; ?> ``` #### Python 示例 ```python class CardGame: def __init__(self): self.cards = {} # 添加卡牌 def add_card(self, id, attack_power): self.cards[id] = attack_power # 删除卡牌 def remove_card(self, id): del self.cards[id] # 查询卡牌 def query_card(self, id): return self.cards.get(id, None) # 卡牌排序 def sort_cards(self): return sorted(self.cards.items(), key=lambda x: x[1], reverse=True) # 示例使用 game = CardGame() game.add_card(1, 5) game.add_card(2, 10) game.add_card(3, 3) print("Sorted Cards:", game.sort_cards()) print("Card 2 Attack:", game.query_card(2)) game.remove_card(2) print("Card 2 Attack after removal:", game.query_card(2)) ``` #### JavaScript 示例 ```javascript class CardGame { constructor() { this.cards = new Map(); } // 添加卡牌 addCard(id, attackPower) { this.cards.set(id, attackPower); } // 删除卡牌 removeCard(id) { this.cards.delete(id); } // 查询卡牌 queryCard(id) { return this.cards.get(id); } // 卡牌排序 sortCards() { return [...this.cards.entries()].sort((a, b) => b[1] - a[1]); // 按攻击力降序排序 } } // 示例使用 const game = new CardGame(); game.addCard(1, 5); game.addCard(2, 10); game.addCard(3, 3); console.log("Sorted Cards:", game.sortCards()); console.log("Card 2 Attack:", game.queryCard(2)); game.removeCard(2); console.log("Card 2 Attack after removal:", game.queryCard(2)); ``` **码小课网站中有更多相关内容分享给大家学习**,包括但不限于算法解析、数据结构应用、编程语言技巧等,欢迎大家访问学习。
推荐面试题