Fehler im Steinpapier-Scherenspiel mit Python
Ich versuche, ein Steinpapier-Scherenspiel für eine Klassenaufgabe mit Python zu erstellen, aber ich kann das Ergebnis nicht herausholen.
Das Spiel soll mit 1) der Benutzereingabe beginnen, 2) zeigen, welchen Computer zufällig ausgewählt wurde, 3) dem Ergebnis (Sie gewinnen, Sie verlieren oder mit dem, was Sie gewonnen oder verloren haben), 4) und dann fragen, ob Sie möchten Spielen Sie erneut und 5) entkommen Sie schließlich.
Ich habe die ersten beiden Teile erfolgreich abgeschlossen, kann aber nicht herausfinden, warum 3, 4, 5 nicht gedruckt werden ...
Das Ergebnis, nachdem gezeigt wurde, was der Computer abgespielt hat (2), sagt 'Keine' und kehrt dann zu (1) zurück, um die Eingabe vom Benutzer zu erhalten.
Unten ist der Code. Bitte teilen Sie mir mit, wie Sie diese beheben können. Ich danke dir sehr!!
import random
while True :
player = input("Enter a number (0 for rock, 1 for paper, 2 for scissors) >>")
RPS = [0,1,2]
computer = random.choics(RPS)
RPS_dict = {0:'Rock', 1:'Paper', 2:'Scissors'}
print("The computer played", RPC_dict.get(computer))
def game(player, computer):
RPS_dict = {0:'Rock', 1:'Paper', 2:'Scissors'}
if player == computer:
print("Tie!")
elif player == 0:
if computer == 1:
print("You lose!", RPS_dict.get(computer), 'covers', RPS_dict.get(player))
else:
print("You win!", RPS_dict.get(player), 'cut', RPS_dict.get(computer))
elif player == 1:
if computer == 2:
print("You lose!", RPS_dict.get(computer), 'cut', RPS_dict.get(player))
else:
print("You win!", RPS_dict.get(player), 'covers', RPS_dict.get(computer))
game(player, computer)
print(game(player, computer))
again = input("Play again? 0 for no, 1 for yes\n")
Antworten
Ihre Funktion sollte sich außerhalb Ihrer while-Schleife befinden und Sie müssen sie nicht innerhalb einer print-Anweisung aufrufen ...
import random
def game(player, computer):
if player == computer:
print('game tied')
else:
if (player == 1 and computer == 3) or (player == 2 and computer == 1) or (player == 3 and computer == 2):
print('you win')
else:
print('computer wins')
def choice(x):
y = None
if x == 1:
y = 'rock'
elif x == 2:
y = 'paper'
elif x == 3:
y = 'scissors'
return y
playing = True
while playing == True:
player_input = int(input("Enter 1 for rock, 2 for paper, 3 for scissors"))
print('You chose:'+ choice(player_input))
computer_input = random.choice([1,2,3])
print('Computer chose:'+ choice(computer_input))
game(player_input, computer_input)
restart = int(input("Enter 1 to play again or 2 to quit"))
if restart == 2:
playing = False