0
点赞
收藏
分享

微信扫一扫

python实现猜拳小游戏

功能需求

假设石头剪刀布分别由1,2,3代表,程序在石头剪刀布中随机生成一个结果,根据用户输入的结果判断用户的输赢。用户输赢和平局否需要打印出结果。

石头赢剪刀

剪刀赢布

石头


功能分析

1:定义猜拳的手势、名称和结果

2:定义一个函数 get_user_gesture()获取用户的手势信息,并且需要考虑到用户输入异常的情况,避免因此造成程序的异常运行

3:定义一个函数get_computer_gesture()随机生成电脑的手势

4:定义一个函数get_game_result判断游戏结果

5:定义函数play_game()运行主程序,利用if。。else。。语句,通过比较用户输入的数据和电脑随机生生成的结果进行比较,返回相应的信息

程序实现

import random
# 定义猜拳的手势
rock = 1
scissors = 2
paper = 3
# 定义游戏结果
win = 1
lose = -1
draw = 0
# 定义手势名称
gesture_names = {rock: '石头', scissors: '剪刀', paper: '布'}
# 获取用户输入的手势
def get_user_gesture():
    while True:
        try:
            gesture = int(input('请出拳(1-石头 2-剪刀 3-布): '))
            if gesture in (rock, scissors, paper):
                return gesture
        except ValueError:
            pass
        print('输入错误,请重新输入')
# 随机生成电脑的手势
def get_computer_gesture():
    return random.randint(rock, paper+1) #利用randint的规则,rock是起始范围,paper+1是终止范围,因此三种手势都可以取得到
# 判断游戏结果
def get_game_result(user_gesture, computer_gesture):
    if user_gesture == computer_gesture:
        return draw
    elif (user_gesture == rock and computer_gesture == scissors) or \
         (user_gesture == scissors and computer_gesture == paper) or \
         (user_gesture == paper and computer_gesture == rock):
        return win
    else:
        return lose
# 运行游戏
def play_game():
    while True:
        user_gesture = get_user_gesture()
        computer_gesture = get_computer_gesture()
        print('你出了', gesture_names[user_gesture], ',电脑出了', gesture_names[computer_gesture])
        result = get_game_result(user_gesture, computer_gesture)
        if result == win:
            print('你赢了!')
        elif result == lose:
            print('你输了!')
        else:
            print('平局')
        again = input('再玩一次?(y/n): ')
        if again.lower() != 'y':
            break
    print('游戏结束')
# 启动游戏
play_game()



运行结果

python实现猜拳小游戏_randint



举报

相关推荐

0 条评论