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 相关文章推荐
haskell实现多线程服务器实例代码
Nov 26 Python
如何搜索查找并解决Django相关的问题
Jun 30 Python
深入理解Python中各种方法的运作原理
Jun 15 Python
python中requests爬去网页内容出现乱码问题解决方法介绍
Oct 25 Python
详解Django的CSRF认证实现
Oct 09 Python
Python中最好用的命令行参数解析工具(argparse)
Aug 23 Python
使用python快速在局域网内搭建http传输文件服务的方法
Nov 14 Python
详解PyQt5信号与槽的几种高级玩法
Mar 24 Python
Python用5行代码实现批量抠图的示例代码
Apr 14 Python
Python面向对象多态实现原理及代码实例
Sep 16 Python
使用Python Tkinter实现剪刀石头布小游戏功能
Oct 23 Python
python Django框架快速入门教程(后台管理)
Jul 21 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
Discuz板块横排显示图片的实现方法
2007/05/28 PHP
关于Sphinx创建全文检索的索引介绍
2013/06/25 PHP
PHP输出缓冲控制Output Control系列函数详解
2015/07/02 PHP
PHP实现的方程求解示例分析
2016/11/11 PHP
PHP实现的简单留言板功能示例【基于thinkPHP框架】
2018/12/07 PHP
laravel 之 Eloquent 模型修改器和序列化示例
2019/10/17 PHP
javascript得到当前页的来路即前一页地址的方法
2014/02/18 Javascript
Js表格万条数据瞬间加载实现代码
2014/02/20 Javascript
jQuery链使用指南
2015/01/20 Javascript
有趣的bootstrap走动进度条
2016/12/01 Javascript
node.js到底要不要加分号浅析
2018/07/11 Javascript
浅谈ElementUI中switch回调函数change的参数问题
2018/08/24 Javascript
vue+echarts实现动态折线图的方法与注意
2020/09/01 Javascript
[53:49]LGD vs Fnatic 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
深入剖析Python的爬虫框架Scrapy的结构与运作流程
2016/01/20 Python
Python实现在某个数组中查找一个值的算法示例
2018/06/27 Python
python 实现得到当前时间偏移day天后的日期方法
2018/12/31 Python
python 利用jinja2模板生成html代码实例
2019/10/10 Python
Python文本处理简单易懂方法解析
2019/12/19 Python
python通用读取vcf文件的类(复制粘贴即可用)
2020/02/29 Python
matplotlib jupyter notebook 图像可视化 plt show操作
2020/04/24 Python
tensorflow实现残差网络方式(mnist数据集)
2020/05/26 Python
python3爬虫中引用Queue的实例讲解
2020/11/24 Python
python实现MySQL指定表增量同步数据到clickhouse的脚本
2021/02/26 Python
加拿大大码女装购物网站:Penningtons
2020/12/26 全球购物
党员作风建设自查报告
2014/10/23 职场文书
党的群众路线教育实践活动总结
2014/10/30 职场文书
2014年心理健康教育工作总结
2014/12/06 职场文书
先进单位申报材料
2014/12/25 职场文书
2015年万圣节活动总结
2015/03/24 职场文书
史上最牛辞职信
2015/05/13 职场文书
庆七一主持词
2015/06/29 职场文书
养成教育工作总结
2015/08/13 职场文书
Canvas跟随鼠标炫彩小球的实现
2021/04/11 Javascript
PyTorch device与cuda.device用法
2022/04/03 Python
Java 通过手写分布式雪花SnowFlake生成ID方法详解
2022/04/07 Java/Android