欢迎访问宙启技术站
智能推送

用Python编写一个简单的人机对战游戏

发布时间:2023-12-04 08:53:31

下面是一个使用Python编写的简单人机对战游戏的例子。

import random

def generate_computer_move():
    moves = ["rock", "paper", "scissors"]
    return random.choice(moves)

def determine_winner(player, computer):
    if player == computer:
        return "draw"
    elif (player == "rock" and computer == "scissors") or \
         (player == "paper" and computer == "rock") or \
         (player == "scissors" and computer == "paper"):
        return "player"
    else:
        return "computer"

def main():
    print("Welcome to Rock-Paper-Scissors!")
    
    while True:
        player_move = input("Enter your move (rock/paper/scissors): ")
        while player_move not in ["rock", "paper", "scissors"]:
            print("Invalid move. Please try again.")
            player_move = input("Enter your move (rock/paper/scissors): ")
        
        computer_move = generate_computer_move()
        print("Computer move:", computer_move)
        
        winner = determine_winner(player_move, computer_move)
        if winner == "player":
            print("You win!")
        elif winner == "computer":
            print("Computer wins!")
        else:
            print("It's a draw!")
        
        play_again = input("Do you want to play again? (yes/no): ")
        while play_again not in ["yes", "no"]:
            print("Invalid input. Please enter 'yes' or 'no'.")
            play_again = input("Do you want to play again? (yes/no): ")
        
        if play_again == "no":
            break

if __name__ == "__main__":
    main()

在这个例子中,游戏通过输入玩家的选择和随机生成电脑的选择来进行人机对战。玩家需要输入"rock"、"paper"或"scissors"中的一个。如果输入无效,程序会要求玩家重新输入。

接着,电脑选择一个随机的动作。通过比较玩家和电脑的动作,我们可以确定胜者。如果两个动作相同,则为平局。

游戏循环将重复进行,直到玩家选择不再为"yes"。