2016-09-17 4 views
0

게임에 대한 코드는 정상적으로 실행되지만 한 사람이 적어도 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 나는 루프 바로 아래에 ifelif 문장을 이동하고 프로그램이 승자를 인쇄하지 않고 중지하려고했습니다.

+0

명백한 질문입니다 :'print' 문이 실행됩니까 (플레이어 1/2가 승자입니다!)? – UnholySheep

+0

당신의 문제는'dont_Be_Greedy()'라고 생각합니다. 그것이 100에 멈추는 지 확인하십시오. – Bharel

+0

@ UnholySheep 나는 당신의 질문을 이해하고 있는지 잘 모르겠습니다. – Jason

답변

-1

문제가있는 것 같습니다. dont_Be_Greedy()입니다.

100에 도달하면 멈추지 않습니다.

+0

나는 편집을하고'dont_Be_Greedy'을 게시물에 올렸다. 나는 그 기능에 어디서 멈추는 지 알 수 없다. 나는'dont_Be_Greedy'에서 스크립트를 재 작성하려고 시도하거나 점수 유지를 위해 스크립트를 다시 작성할 수 있습니다. – Jason