0
私はちょうどPythonを使い始めていて、単純な "Rock、Paper、Scissors"ゲームを書いていますが、プレイヤーとAIの選択肢を比較する方法は私には意味がありません。彼らの勝利/失う条件は、私が設定したものとは逆のようです。なぜこれらのブール値はPythonで動作するのですか?
#Rock Paper Scissors
import random
print("Welcome to Rock, Paper, Scissors!")
print()
print()
choices = ["rock", "paper", "scissors"]
choices[0] < choices[1]
choices[1] < choices[2]
choices[2] < choices[0]
def game():
player_choice = input("What will you choose?: " ).lower()
print()
ai_choice = random.choice(choices)
who_chose = print("You chose",player_choice,"and the computer chose",ai_choice)
if player_choice not in choices:
print("Sorry, that is not a valid option, please choose again.")
print()
game()
elif player_choice > ai_choice:
who_chose
print("The computer wins!")
print()
elif player_choice == ai_choice:
who_chose
print("It was a tie!")
print()
else:
who_chose
print("You Win!")
print()
play_again = input("Do you want to play again? (y/n): ").lower()
if play_again in ["yes", "y"]:
game()
else:
print("Thanks for playing")
game()
私はここに彼らの階層を設定します。
choices[0] < choices[1]
choices[1] < choices[2]
choices[2] < choices[0]
しかし、私はそれらを比較するとき、ここでは後方のようですが、それはロックの紙はさみのルールにoccordanceで動作します:
elif player_choice > ai_choice:
who_chose
print("The computer wins!")
print()
ああ、意味があります。ありがとうございました! – Runnamuck
また、私はそれをもう一度見ていました。正しく理解すれば、ストリングの長さがゲームの勝利条件とちょうど一致するため、今動作する理由はありますか?例 "はさみ"がはさみが紙を打つように "紙"より長いですか? – Runnamuck
あなたは正しいです、私はちょうどチェックしました、そして、実際に何かします。 Apperently Pythonはアルファベット順を調べるので、はさみは紙を打つ。なぜなら 's'はアルファベットの下にあるからだ – TheLaurens