Lỗi trong trò chơi oẳn tù tì với Python
Tôi đang cố gắng tạo một trò chơi oẳn tù tì cho một bài tập trên lớp bằng Python, nhưng tôi không thể nhận được kết quả.
Trò chơi phải bắt đầu với 1) đầu vào của người dùng, 2) hiển thị máy tính nào đã chọn ngẫu nhiên, 3) kết quả (Bạn thắng, Bạn thua, hoặc Hòa với cách bạn thắng hoặc thua), 4) sau đó hỏi xem bạn có muốn Chơi lại, và 5) cuối cùng thoát.
Tôi đã thành công ở 2 phần đầu tiên, nhưng tôi không thể hiểu tại sao 3, 4, 5 không in được ...
Kết quả sau khi hiển thị những gì máy tính đã phát (2), nó nói 'Không có' sau đó nó lặp lại (1) nhận đầu vào từ người dùng.
Dưới đây là mã. Xin hãy tư vấn giúp tôi cách khắc phục. Cảm ơn bạn rất nhiều!!
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")
Trả lời
Hàm của bạn nên nằm ngoài vòng lặp while của bạn và bạn không cần phải gọi nó trong một câu lệnh print ...
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