Python实现猜拳与猜数字游戏的方法详解


Posted in Python onApril 06, 2022

至此,我们的 Python零基础入门篇 的系列专栏到今天基本上算是结束了。今天没有任何的知识点,只是运用我们之前学习过的知识做两个小游戏的案例。第一个是模拟猜拳的小游戏,第二个就是猜数字的游戏。

猜拳小游戏

需求:

运用至今所学的 Python 知识编写脚本,实现一个人与计算机玩猜拳的石头剪刀布的小游戏。

这里我们先思考一下,如果将石头、剪刀、布分别用数字0、1、2表示,那么如何判定谁胜谁负呢?

user robot 结果
0(石头) 0(石头) 平局
0(石头) 1(剪刀) user 获胜
0(石头) 2(布) robot 获胜
1(剪刀) 0(石头) robot 获胜
1(剪刀) 1(剪刀) 平局
1(剪刀) 2(布) user 获胜
2(布) 0(石头) user 获胜
2(布) 1(剪刀) robot 获胜
2(布) 2(布) 平局

不难发现游戏的规律如下:

  • 如果user和computer相等就是平局
  • 如果用 (user+1) 除以 3 得到的余数与 robot 相等,就是user(人)获得胜利
  • 其余情况都是 robot 获胜

案例脚本如下:

# coding:utf-8


import random


# TODO:只针对输入的参数做了 int 的排除,未针对输入的 非 int 类型做校验,可通过 isNum 函数做校验,或者进行 异常捕获。

data = {0: '石头', 1: '剪刀', 2: '布'}

while(True):
    robot = random.randint(0, 2)
    print('********猜拳小游戏即将开始,请准备!********')
    user = int(input('请输入[0:石头;1:剪刀;2:布;9:退出游戏]:'))

    if user not in (9, 0, 1, 2):
        print('--------输入参数不合法,请重新输入!--------')
        print('   ')
        continue

    elif user == 9:
        print('**********游戏结束,下次再来玩哦**********')
        break
    elif not 0 <= user <= 2:
        continue


    if user == robot:
        print('\'你\'出的是{}, \'ROBOT\' 出的是{}, 结果为:\'平局\''.format(data[user], data[robot]))
        print('    ')
    elif (user + 1) % 3 == robot:
        print('\'你\'出的是{}, \'ROBOT\' 出的是{}; 结果为:\'你赢了!\''.format(data[user], data[robot]))
        print('    ')
    else:
        print('\'你\'出的是{}, \'ROBOT\' 出的是{}; 结果为:\'ROBOT赢了!\''.format(data[user], data[robot]))
        print('    ')

PS:这里的传入参数校验并不完善,大家可以尝试自己动手完善一下。

Python实现猜拳与猜数字游戏的方法详解

数字猜猜猜小游戏

需求:

根据现实生活中的猜数字游戏的游戏规则,运用Python语言模拟实现猜数字游戏的的基本功能.

1、设定可猜测的次数,并根据提示进行数字区间的输入猜测的数字

2、将输入的数字与随机生成的数字进行比对,同时次数减一。若次数用完后,仍未猜对,则游戏结束。

案例脚本如下:

# coding:utf-8


import random


# TODO:这并不是我想要的效果,但是目前也只能写成这样了,有时间再晚上吧。

robot = random.randint(1, 10)
count = 5
print("*************游戏开始***************")
print("猜数字游戏,数字在1到10之间,你有{0}次机会".format(count))
print('   ')

while count > 0:
    num = input("请输入您要猜测的数字:")
    if num.isdigit():
        num = int(num)
        if num == robot:
            print("对了")
            print('   ')
            break
        elif num < robot:
            # print("您输入的参数小了", '剩余机会次数:%s' % int(count-1))
            print("您输入的参数小了", '剩余机会次数:{0}'.format(count-1))
            print('   ')
        else:
            print("您输入的参数大了", '剩余机会次数:{0}'.format(count-1))
            print('   ')
        count -= 1
        if count == 0:
            print("您的机会已经用完")
            print('   ')
            break
        # print("你还剩余{0}次机会".format(count))
        # print('   ')
    else:
        print("你输入的不是一个数字,请重新输入")
        print('   ')
print("**********游戏结束************")

Python实现猜拳与猜数字游戏的方法详解

以上就是Python实现猜拳与猜数字游戏的方法详解的详细内容,更多关于Python 猜拳猜数字的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
Python验证企业工商注册码
Oct 25 Python
基于python中pygame模块的Linux下安装过程(详解)
Nov 09 Python
Python实现统计给定字符串中重复模式最高子串功能示例
May 16 Python
Python中if elif else及缩进的使用简述
May 31 Python
如何利用Python分析出微信朋友男女统计图
Jan 25 Python
Python利用itchat库向好友或者公众号发消息的实例
Feb 21 Python
python+pyqt5编写md5生成器
Mar 18 Python
解决Pycharm后台indexing导致不能run的问题
Jun 27 Python
处理Selenium3+python3定位鼠标悬停才显示的元素
Jul 31 Python
pytorch中的transforms模块实例详解
Dec 31 Python
Django用户身份验证完成示例代码
Apr 03 Python
python下载的库包存放路径
Jul 27 Python
python字符串的一些常见实用操作
Apr 06 #Python
python中字符串String及其常见操作指南(方法、函数)
Apr 06 #Python
Python Numpy库的超详细教程
进行数据处理的6个 Python 代码块分享
Apr 06 #Python
 分享一个Python 遇到数据库超好用的模块
Apr 06 #Python
Python利用capstone实现反汇编
关于Python中进度条的六个实用技巧分享
You might like
php创建基本身份认证站点的方法详解
2013/06/08 PHP
使用Curl进行抓取远程内容时url中文编码问题示例探讨
2013/10/29 PHP
php使用正则表达式提取字符串中尖括号、小括号、中括号、大括号中的字符串
2020/04/05 PHP
简单谈谈php中的unicode和utf8编码
2015/06/10 PHP
PHP获取用户客户端真实IP的解决方案
2016/10/10 PHP
laravel框架select2多选插件初始化默认选中项操作示例
2020/02/18 PHP
Visual Studio中的jQuery智能提示设置方法
2010/03/27 Javascript
一个简单的js鼠标划过切换效果
2010/06/30 Javascript
Nodejs中的this详解
2016/03/26 NodeJs
微信小程序实现图片预加载组件
2017/01/18 Javascript
Vue.js实战之Vuex的入门教程
2017/04/01 Javascript
JS+canvas绘制的动态机械表动画效果
2017/09/12 Javascript
详解ajax的data参数错误导致页面崩溃
2018/04/30 Javascript
webstorm中配置nodejs环境及npm的实例
2018/05/15 NodeJs
20个最常见的jQuery面试问题及答案
2018/05/23 jQuery
深入浅析JS中的严格模式
2018/06/04 Javascript
解决微信小程序云开发中获取数据库的内容为空的方法
2019/05/15 Javascript
微信小程序实现左滑动删除效果
2020/03/30 Javascript
使用JS location实现搜索框历史记录功能
2019/12/23 Javascript
详解Vue 数据更新了但页面没有更新的 7 种情况汇总及延伸总结
2020/05/28 Javascript
python模块smtplib学习
2018/05/22 Python
对python同一个文件夹里面不同.py文件的交叉引用方法详解
2018/12/15 Python
Python容器使用的5个技巧和2个误区总结
2019/09/26 Python
Python迭代器协议及for循环工作机制详解
2020/07/14 Python
利用CSS3的定位页面元素
2009/08/29 HTML / CSS
html5 canvas合成海报所遇问题及解决方案总结
2017/08/03 HTML / CSS
来自美国主售篮球鞋的零售商店:KICKSUSA
2017/11/28 全球购物
联强国际笔试题面试题
2013/07/10 面试题
材料成型专业个人求职信范文
2013/09/25 职场文书
校园学雷锋活动月总结
2014/03/09 职场文书
关于青春的演讲稿
2014/05/05 职场文书
IT工程师岗位职责
2014/07/04 职场文书
个人授权委托书样本
2014/09/13 职场文书
Python list列表删除元素的4种方法
2021/11/01 Python
无线电通信名词解释
2022/02/18 无线电
OpenStack虚拟机快照和增量备份实现方法
2022/04/04 Servers