python简单练习案例-石头剪刀布小游戏

  •  🌈所属专栏:【python】

  •  ✨作者主页:  Mr.Zwq

  • ✔️个人简介:一个正在努力学技术的Python领域创作者,擅长爬虫,逆向,全栈方向,专注基础和实战分享,欢迎咨询!

您的点赞、关注、收藏、评论,是对我最大的激励和支持!!!🤩🥰😍

目录

前言 

效果图

开始时,进行模式选择

一局定胜负模式

三局两胜模式

错误异常输入处理

代码实现

1.电脑出招函数

 2.玩家出招函数

 3.胜负判断函数

 4.执行函数

 5.代码完整展示


前言 

        本案例将会通过对python基本知识的应用来实现一个模拟石头剪刀布的小游戏,将使用到字典、列表类型数据、while、if循环判断、函数以及random模块的使用,可以通过实现这个小案例来巩固加深自身python的知识。

        代码模拟了石头、剪刀、布游戏的几个主要方面:玩家和电脑的出招,胜负的判断,以及游戏的流程控制。


效果图

开始时,进行模式选择

一局定胜负模式

三局两胜模式

错误异常输入处理


代码实现

1.电脑出招函数

# 模拟电脑随机出招
def computer():
    return random.choice(['石头','剪刀','布'])

 2.玩家出招函数

def player():
    # 这里用字典映射是为了方便玩家通过输入序号就可以代替出拳,简化玩家打字操作
    dic = {'1': '石头', '2': '剪刀', '3': '布'}
    res=input('1-石头,2-剪刀,3-布\n请输入序号:')
    # 进行错误处理,规避无效出拳序号
    if res not in dic.keys():
        print(f'\n序号{res}错误!请重新输入正确的序号')
        return player()
    return dic[res]

 3.胜负判断函数

def judge(player,computer):
    if player == computer:
        return '平局'
    if player == '石头':
        if computer == '剪刀':
            return '玩家胜'
        else:
            return '电脑胜'
    elif player == '剪刀':
        if computer == '布':
            return '玩家胜'
        else:
            return '电脑胜'
    else:
        if computer == '石头':
            return '玩家胜'
        else:
            return '电脑胜'

 4.执行函数

# 循环,直到玩家进行退出操作
while True:
    print('操作选择'.center(20, '*'))
    res = input('1.一局定胜负\n2.三局两胜\n3.退出\n请输入对应序号:')
    if res == '1':
        print('一局定胜负'.center(20, '*'))
        # 电脑输出
        computer_output = computer()
        # 玩家输出   
        player_output = player()
        # 结果输出
        print(f'玩家出<{player_output}>,电脑出<{computer_output}>,{judge(player_output, computer_output)}\n')
    elif res == '2':
        print('三局两胜'.center(20, '*'))
        player_win = 0    # 记录玩家胜局次数
        computer_win = 0  # 记录电脑胜局次数
        while True:
            computer_output = computer()
            player_output = player()
            res = judge(player_output, computer_output)
            print(f'玩家出<{player_output}>,电脑出<{computer_output}>,{res}\n')
            if res == '玩家胜':
                player_win += 1
            elif res == '电脑胜':
                computer_win += 1
            # 三局两胜逻辑,谁先胜2局,就可以结束退出了
            if player_win >= 2 or computer_win >= 2:   
                print(f'最终结果:玩家胜{player_win}局,电脑胜{computer_win}局')
                break
    elif res == '3':
        break
    else:
        # 错误处理
        print(f'\n序号{res}错误!请重新输入序号')

 5.代码完整展示

import random


# 模拟电脑随机出招
def computer():
    return random.choice(['石头', '剪刀', '布'])


def player():
    # 这里用字典映射是为了方便玩家通过输入序号就可以代替出拳,简化玩家打字操作
    dic = {'1': '石头', '2': '剪刀', '3': '布'}
    res = input('1-石头,2-剪刀,3-布\n请输入序号:')
    # 进行错误处理,规避无效出拳序号
    if res not in dic.keys():
        print(f'\n序号{res}错误!请重新输入正确的序号')
        return player()
    return dic[res]


def judge(player, computer):
    if player == computer:
        return '平局'
    if player == '石头':
        if computer == '剪刀':
            return '玩家胜'
        else:
            return '电脑胜'
    elif player == '剪刀':
        if computer == '布':
            return '玩家胜'
        else:
            return '电脑胜'
    else:
        if computer == '石头':
            return '玩家胜'
        else:
            return '电脑胜'


# 循环,直到玩家进行退出操作
while True:
    print('操作选择'.center(20, '*'))
    res = input('1.一局定胜负\n2.三局两胜\n3.退出\n请输入对应序号:')
    if res == '1':
        print('一局定胜负'.center(20, '*'))
        # 电脑输出
        computer_output = computer()
        # 玩家输出
        player_output = player()
        # 结果输出
        print(f'玩家出<{player_output}>,电脑出<{computer_output}>,{judge(player_output, computer_output)}\n')
    elif res == '2':
        print('三局两胜'.center(20, '*'))
        player_win = 0    # 记录玩家胜局次数
        computer_win = 0  # 记录电脑胜局次数
        while True:
            computer_output = computer()
            player_output = player()
            res = judge(player_output, computer_output)
            print(f'玩家出<{player_output}>,电脑出<{computer_output}>,{res}\n')
            if res == '玩家胜':
                player_win += 1
            elif res == '电脑胜':
                computer_win += 1
            # 三局两胜逻辑,谁先胜2局,就可以结束退出了
            if player_win >= 2 or computer_win >= 2:
                print(f'最终结果:玩家胜{player_win}局,电脑胜{computer_win}局')
                break
    elif res == '3':
        break
    else:
        # 错误处理
        print(f'\n序号{res}错误!请重新输入序号')

总结

感谢观看,原创不易,如果觉得有帮助,请给文章点个赞吧,让更多的人看到。🌹🌹🌹

👍🏻也欢迎你,关注我。👍🏻

如有疑问,可在评论区留言哦~

  • 32
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mr.Zwq

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值