4
我打算做一个纸牌游戏,目前我正在开始它的工作。我感到困惑的是,他们根据自己的级别对牌进行排序,然后很适合,并且很多时候如何减少重复。目前我可能会为组织卡片做一个循环,然后对每种可能性都有52种不同的选择,但是我想知道他们是否是一种更简单的方法来完成这个任务,还有很多其他的重复任务。谢谢:d我把下面的代码:排序一手牌,按照排名和适合在python
from random import shuffle
class deckOfCards:
def __init__(self):
self.rank = ['2','3','4','5','6','7','8','9','T','J','Q','K','A']
self.suit = ['C', 'S', 'H', 'D']
self.deck = [r+s for r in self.rank for s in self.suit]
shuffle(self.deck)
def setValue(self, deck):
cnt = 1
self.value = {}
for i in self.deck:
self.value[i] = cnt
cnt += 1
class Deal:
def __init__(self, deck, position):
self.hand = deck[position::4] #divides the deck into 4 hands
hand = self.hand
def value(self, key): # Gives each card that the player has a value
newHand = {}
for i in self.hand:
if i in key:
newHand[i] = key[i]
return newHand
deck = deckOfCards()
player1 = Deal(deck.deck, 0) #######################################
player2 = Deal(deck.deck, 1) # Example of repetition that I wanted #
player3 = Deal(deck.deck, 2) # to get rid of if possible #
player4 = Deal(deck.deck, 3) #######################################
编辑:我认为这非常有效的排序卡,但我仍然对如何消除一些重复的困惑。感谢所有帮助:d
def sortHand(player):
hand = player.hand
for i in hand:
for i in hand:
index = player1.hand.index(i)
if index != 12:
if deck.value[i] > deck.value[hand[index+1]]:
hand.insert(index+1, hand.pop(index))
的值是什么每张卡是值得的,在比赛中我做AA 3C的价值低于5D。最终,当我完成比赛时,一名球员将打一张牌,然后下一名球员必须打一张价值更高(具有更高价值)的牌。感谢您的回应,非常有帮助:D – GnarGnar 2011-12-14 23:18:05