Прежде чем мы начнем, я совсем новичок в python.
Этот код предназначен для создания комбинации из 5 карт, которая впоследствии будет использоваться в игре «Go Fish». Причина, по которой так много переменных, заключается в более поздних целях в игре, поэтому, пожалуйста, игнорируйте беспорядок, если это возможно.
Очевидно, что карты не могут повторяться, поскольку в обычной колоде карт есть только одна карта каждой карты. Чтобы избежать создания руки с двумя одинаковыми картами, я использовал циклы while (как вы можете видеть в коде). У меня, похоже, проблема с циклами while. Кажется, что операторы «или» создают проблему в коде, когда он не будет выполняться в оболочке («>>>» даже не появляется, просто пустой курсор).
Чтобы решить проблему с выполнением, я изменил код, чтобы использовать знаки равенства.
Например: В то время как p55 == p11 == p22 == p33 == p44:
Однако при запуске кода я все равно сталкиваюсь с дубликатами карточек.
Если кто-нибудь может помочь мне понять, как обойти эту повторяющуюся ошибку, это было бы здорово.
Заранее спасибо!
def player_hand():
CardSuit = ['Hearts','Diamonds','Clubs','Spades']
CardNum = ['Ace','Two','Three','Four','Five','Six','Seven','Eight','Nine','Ten','Jack','Queen','King']
PlayerHand = []
p1 = str(random.choice(CardNum))
p11 = p1, 'of', str(random.choice(CardSuit))
p111 = " ".join(p11)
PlayerHand.append(p111)
p2 = str(random.choice(CardNum))
p22 = p2, 'of', str(random.choice(CardSuit))
while p22 == p11 :
p2 = str(random.choice(CardNum))
p22 = p2, 'of', str(random.choice(CardSuit))
p222 = " ".join(p22)
PlayerHand.append(p222)
p3 = str(random.choice(CardNum))
p33 = p3, 'of', str(random.choice(CardSuit))
while p33 == p11 or p22 :
p3 = str(random.choice(CardNum))
p33 = p3, 'of', str(random.choice(CardSuit))
p333 = " ".join(p33)
PlayerHand.append(p333)
p4 = str(random.choice(CardNum))
p44 = p4, 'of', str(random.choice(CardSuit))
while p44 == p11 or p22 or p33 :
p4 = str(random.choice(CardNum))
p44 = p4, 'of', str(random.choice(CardSuit))
p444 = " ".join(p44)
PlayerHand.append(p444)
p5 = str(random.choice(CardNum))
p55 = p5, 'of', str(random.choice(CardSuit))
while p55 == p11 or p22 or p33 or p44 :
p5 = str(random.choice(CardNum))
p55 = p5, 'of', str(random.choice(CardSuit))
p555 = " ".join(p55)
PlayerHand.append(p555)
return PlayerHand
in
. Например,while p55 in (p11, p22, p33, p44):
. - person Roger Fan   schedule 25.09.2014while p55 in PlayerHand:
- person Laurent Bourgault-Roy   schedule 25.09.2014