2016-09-17 5 views
0

ゲームのコードはうまくいきますが、1人で少なくとも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!') 

1人のプレイヤーが100に達したときにプログラムが停止するのではなく、1人のプレイヤーが自分のターンを続けることができます。彼らは彼らのターンを通過した後、次のプレイヤーが通過するかロールするまでプログラムを停止させ、勝者(2つのスコアの高い方)を述べます。 問題のどこがわからないのですか。

編集:私はifelifステートメントをループのすぐ下に移動しようとしましたが、プログラムは勝者を印刷せずに停止しました。

+0

したがって明らかな質問は、 'print'文が実行されたことです(Player 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

関連する問題