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 时间操作例子和时间格式化参数小结
Apr 24 Python
简单介绍Python中的readline()方法的使用
May 24 Python
Pandas DataFrame中的tuple元素遍历的实现
Oct 23 Python
numpy按列连接两个维数不同的数组方式
Dec 06 Python
Pytorch中Tensor与各种图像格式的相互转化详解
Dec 26 Python
pytorch之Resize()函数具体使用详解
Feb 27 Python
python 中不同包 类 方法 之间的调用详解
Mar 09 Python
Python写捕鱼达人的游戏实现
Mar 31 Python
PyQt5如何将.ui文件转换为.py文件的实例代码
May 26 Python
python进行OpenCV实战之画图(直线、矩形、圆形)
Aug 27 Python
Django Form常用功能及代码示例
Oct 13 Python
教你利用Selenium+python自动化来解决pip使用异常
May 20 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程序员应具有的7种能力小结
2014/11/27 PHP
php计算两个日期相差天数的方法
2015/03/14 PHP
PHP实现在线阅读PDF文件的方法
2015/06/23 PHP
两款万能的php分页类
2015/11/12 PHP
IIS 7.5 asp Session超时时间设置方法
2017/04/17 PHP
PHP如何开启Opcache功能提升程序处理效率
2020/04/27 PHP
js截取固定长度的中英文字符的简单实例
2013/11/22 Javascript
jquery中ajax函数执行顺序问题之如何设置同步
2014/02/28 Javascript
所见即所得的富文本编辑器bootstrap-wysiwyg使用方法详解
2016/05/27 Javascript
使用json来定义函数,在里面可以定义多个函数的实现方法
2016/10/28 Javascript
微信小程序 页面传参实例详解
2016/11/16 Javascript
js下载文件并修改文件名
2017/05/08 Javascript
AngularJS实现的回到顶部指令功能实例
2017/05/17 Javascript
详解使用Node.js 将txt文件转为Excel文件
2017/07/05 Javascript
jQuery条件分页 代替离线查询(附代码)
2017/08/17 jQuery
基于Vue过渡状态实例讲解
2017/09/14 Javascript
基于js文件加载优化(详解)
2018/01/03 Javascript
浅谈vue引入css,less遇到的坑和解决方法
2018/01/20 Javascript
vue插件实现v-model功能
2018/09/10 Javascript
vue-cli 2.*中导入公共less文件的方法步骤
2018/11/22 Javascript
Vue实现简易计算器
2020/02/25 Javascript
Python利用ElementTree模块处理XML的方法详解
2017/08/31 Python
python3中zip()函数使用详解
2018/06/29 Python
Python读取分割压缩TXT文本文件实例
2020/02/14 Python
selenium+python配置chrome浏览器的选项的实现
2020/03/18 Python
解决pycharm下pyuic工具使用的问题
2020/04/08 Python
python 19个值得学习的编程技巧
2020/08/15 Python
使用OpenCV校准鱼眼镜头的方法
2020/11/26 Python
html5使用canvas实现弹幕功能示例
2017/09/11 HTML / CSS
英国网上自行车商店:Tredz Bikes
2019/10/29 全球购物
澳大利亚领先的时尚内衣零售商:Bras N Things
2020/07/28 全球购物
汽车制造与装配专业自荐信范文
2014/01/02 职场文书
创业大赛策划书
2014/03/01 职场文书
企业演讲稿范文大全
2014/05/20 职场文书
2016国庆节67周年寄语
2015/12/07 职场文书
使用CSS设置滚动条样式
2022/01/18 HTML / CSS