【发布时间】:2022-07-01 03:45:44
【问题描述】:
构建一个“小”纸牌游戏。
让我们看看我的问题。
我可以从牌堆中抽牌,然后将最后抽到的牌放回顶部。
但我想决定哪张卡应该放回顶部!
import random
假设我们有一些“卡片”
Cards = [1,2,3,4,5,6]
Deck Class
class Deck(): # Deck class definition for deck of cards
def __init__(self, Cards): # Creating an empty list of cards. Constructor.
self.cards = Cards
def deal(self, i=-1): # Method to deal the top most card of the deck
return self.cards.pop(i)
def shuffle(self): # Method to shuffle the deck of cards
random.shuffle(self.cards) # Shuffling the card deck
还有一个Player Class
class Player():
def __init__(self):
# creat deck for each player
self.deck = Deck([1,2,3,4,5,6,7,8])
# shuffle the deck before the hand is drawn
self.deck.shuffle()
# draw the starthand
self.hand = []
for i in range(3):
card = self.deck.deal()
self.hand.append(card)
def draw(self):
card = self.deck.deal()
return self.hand.append(card)
def on_top(self, i=-1):
card = self.hand.pop(i)
return self.deck.cards.append(card)
当播放器被创建时
player_1 = Player()
洗牌,抽出3张牌
让我们检查一下手牌
player_1.hand
[1, 4, 5]
抽牌时
player_1.draw()
并再次手工检查
player_1.hand
[1, 4, 5, 3]
列表中的下一项被绘制。
好的,让我们将项目放回顶部
player_1.on_top()
player_1.hand
[1, 4, 5]
好的,完美。 但是我该如何选择自己放回套牌顶部的卡片呢?
接下来的问题是:
如何在列表中搜索特定Item并选择绘制?
您应该想象数字被卡片的正面所取代。
已经谢谢你帮助我了!
【问题讨论】:
-
在一般情况下,这可能不是完全正确的对象模型。玩家通常没有一副牌。他们有一只手。一场游戏涉及 1 个以上的玩家,每个玩家都有一手牌。套牌存在并且独立于玩家建模。
-
在这个游戏中,每个玩家都有自己的一副牌。
标签: python oop random indexing