게임에 대한 코드는 정상적으로 실행되지만 한 사람이 적어도 100 점에 도달하면 게임을 종료하는 데 문제가 있습니다.간단한 돼지 게임
def dont_Be_Greedy(turn):
points = 0
keepPlaying = 121
print('Lets start!')
input('Press enter to roll')
while keepPlaying == 121:
roll = roll_Dice()
print('You rolled a ' + str(roll))
if roll == 1:
points = 0 * roll
keepPlaying = 110
enter = input('Your turn is over. Next player.')
elif roll > 1:
points += roll
print('your total is', points)
passPlay = input('Do you want to keep playing or pass?'
'\ntype pass or play. ')
if passPlay == 'play':
keepPlaying = 121
else:
keepPlaying = 110
enter = input('Your turn is over. Next player.')
return points
player1 = 0
player2 = 0
while player1 < 100 and player2 < 100:
print('Player 1 points are: ' + str(player1))
print('Player 2 points are: ' + str(player2))
gameOn = dont_Be_Greedy(1)
player1 += gameOn
print('Player 1 points are: ' + str(player1))
print('Player 2 points are: ' + str(player2))
gameOn = dont_Be_Greedy(2)
player2 += gameOn
if player1 >= 100:
print('Player 1 is the winner!')
elif player2 >= 100:
print('Player 2 is the winner!')
한 플레이어가 100에 도달했을 때 프로그램이 멈추는 대신, 그들은 자신의 차례를 계속할 수 있습니다. 플레이어는 자신의 차례를 지키면 다음 플레이어가 자신이 통과하거나 굴릴 때까지 굴림을 시작하여 프로그램이 중단되고 승자 (두 점수 중 높은 점수를 가진 사람)가 표시됩니다. 어디에 문제가 있는지 잘 모르겠습니다.
편집 : 내가 추가했습니다 dont_Be_Greedy
나는 루프 바로 아래에 if
및 elif
문장을 이동하고 프로그램이 승자를 인쇄하지 않고 중지하려고했습니다.
명백한 질문입니다 :'print' 문이 실행됩니까 (플레이어 1/2가 승자입니다!)? – UnholySheep
당신의 문제는'dont_Be_Greedy()'라고 생각합니다. 그것이 100에 멈추는 지 확인하십시오. – Bharel
@ UnholySheep 나는 당신의 질문을 이해하고 있는지 잘 모르겠습니다. – Jason