시작하기 전에 저는 Python을 처음 접했습니다."또는"while 루프가 작동하지 않습니다 - Python
이 코드는 나중에 'Go Fish'게임에서 사용되는 5 개의 카드 손을 만드는 것으로되어 있습니다. 나중에 많은 변수가있는 이유는 나중에 게임을하기위한 것이므로 가능한 경우 혼란 스러움을 무시하십시오.
분명히 정상적인 카드 더미에 각 카드 중 하나만 있기 때문에 카드를 반복 할 수 없습니다. 두 개의 카드가 같은 손을 만드는 것을 피하기 위해 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' 연산자로 원하는 것과 많은 비교를 할 수 있습니다. 예를 들면,'p55 in (p11, p22, p33, p44) :'중에. –
또는 모든 정보가 PlayerHand 변수에 있기 때문에 PlayerHand에서 p55를 실행하면됩니다. ' –