ゲームのコードはうまくいきますが、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つのスコアの高い方)を述べます。 問題のどこがわからないのですか。
編集:私はif
とelif
ステートメントをループのすぐ下に移動しようとしましたが、プログラムは勝者を印刷せずに停止しました。
したがって明らかな質問は、 'print'文が実行されたことです(Player 1/2が勝者です)。 – UnholySheep
あなたの問題は 'dont_Be_Greedy()'と思っています。それが100で停止することを確認してください。 – Bharel
@ UnholySheep私はあなたの質問を理解するか分からない。 – Jason