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的即时标记项目练习笔记
Sep 18 Python
python中字符串类型json操作的注意事项
May 02 Python
详细解读tornado协程(coroutine)原理
Jan 15 Python
利用Python+Java调用Shell脚本时的死锁陷阱详解
Jan 24 Python
django初始化数据库的实例
May 27 Python
python 构造三维全零数组的方法
Nov 12 Python
django 2.2和mysql使用的常见问题
Jul 18 Python
tensorflow的计算图总结
Jan 12 Python
解决django 向mysql中写入中文字符出错的问题
May 18 Python
Python如何实现的二分查找算法
May 27 Python
Python中X[:,0]和X[:,1]的用法
May 10 Python
Elasticsearch 索引操作和增删改查
Apr 19 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
生成缩略图
2006/10/09 PHP
echo, print, printf 和 sprintf 区别
2006/12/06 PHP
浅谈PHP 闭包特性在实际应用中的问题
2009/10/30 PHP
php给每个段落添加空格的方法
2015/03/20 PHP
PHP实现会员账号单唯一登录的方法分析
2019/03/07 PHP
PHP 进程池与轮询调度算法实现多任务的示例代码
2019/11/26 PHP
JQquery的一些使用心得分享
2012/08/01 Javascript
JS上传图片前的限制包括(jpg jpg gif及大小高宽)等
2012/12/19 Javascript
jquery之超简单的div显示和隐藏特效demo(分享)
2013/07/09 Javascript
原生js模拟淘宝购物车项目实战
2015/11/18 Javascript
详解react-router如何实现按需加载
2017/06/15 Javascript
ztree实现左边动态生成树右边为内容详情功能
2017/11/03 Javascript
Angular实现可删除并计算总金额的购物车功能示例
2017/12/26 Javascript
vue利用axios来完成数据的交互
2018/03/23 Javascript
vue-cli 3.0 自定义vue.config.js文件,多页构建的方法
2018/09/19 Javascript
js实现延迟加载的几种方法详解
2019/01/19 Javascript
JavaScript从原型到原型链深入理解
2019/06/03 Javascript
Vue将页面导出为图片或者PDF
2020/08/17 Javascript
使用p5.js实现动态GIF图片临摹重现
2019/10/23 Javascript
Python多线程学习资料
2012/12/19 Python
Python 解决中文写入Excel时抛异常的问题
2018/05/03 Python
Python subprocess模块功能与常见用法实例详解
2018/06/28 Python
PyTorch搭建一维线性回归模型(二)
2019/05/22 Python
简单了解python gevent 协程使用及作用
2019/07/22 Python
python实现ip地址查询经纬度定位详解
2019/08/30 Python
python编程进阶之异常处理用法实例分析
2020/02/21 Python
Python2及Python3如何实现兼容切换
2020/09/01 Python
python搜索算法原理及实例讲解
2020/11/18 Python
Python 爬虫批量爬取网页图片保存到本地的实现代码
2020/12/24 Python
Myprotein荷兰官网:欧洲第一运动营养品牌
2020/07/11 全球购物
观看《永远的雷锋》心得体会
2014/03/12 职场文书
十佳家长事迹材料
2014/08/26 职场文书
会议接待欢迎标语
2014/10/08 职场文书
社区公民道德宣传日活动总结
2015/03/23 职场文书
医院消毒隔离制度
2015/08/05 职场文书
MySQL详解进行JDBC编程与增删改查方法
2022/06/16 MySQL