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语言的12个基础知识点小结
Jul 10 Python
Python安装第三方库的3种方法
Jun 21 Python
win10系统中安装scrapy-1.1
Jul 03 Python
Python自动化测试ConfigParser模块读写配置文件
Aug 15 Python
详解python实现读取邮件数据并下载附件的实例
Aug 03 Python
使用paramiko远程执行命令、下发文件的实例
Oct 01 Python
用Django实现一个可运行的区块链应用
Mar 08 Python
Python爬虫使用脚本登录Github并查看信息
Jul 16 Python
Python爬虫框架Scrapy基本用法入门教程
Jul 26 Python
python实现TCP文件传输
Mar 20 Python
Python无损压缩图片的示例代码
Aug 06 Python
Python实现Word文档转换Markdown的示例
Dec 22 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抽象工厂模式(Elgg)
2010/03/21 PHP
PHP7标量类型declare用法实例分析
2016/09/26 PHP
从JavaScript的函数重名看其初始化方式
2007/03/08 Javascript
jquery中dom操作和事件的实例学习 仿yahoo邮箱登录框的提示效果
2011/11/30 Javascript
根据邮箱的域名跳转到相应的登录页面的代码
2012/02/27 Javascript
Javascript全局变量var与不var的区别深入解析
2013/12/09 Javascript
介绍一个简单的JavaScript类框架
2015/06/24 Javascript
纯JavaScript实现的分页插件实例
2015/07/14 Javascript
详解JavaScript节流函数中的Throttle
2016/07/16 Javascript
JavaScript 是什么意思
2016/09/22 Javascript
利用js获取下拉框中所选的值
2016/12/01 Javascript
有关suggest快速删除后仍然出现下拉列表的bug问题
2016/12/02 Javascript
AngularJS模仿Form表单提交的实现代码
2016/12/08 Javascript
详解PHP中pathinfo()函数导致的安全问题
2017/01/05 Javascript
利用Js+Css实现折纸动态导航效果实例源码
2017/01/25 Javascript
ReactNative短信验证码倒计时控件的实现代码
2017/07/20 Javascript
vuex state及mapState的基础用法详解
2018/04/19 Javascript
vue中post请求以a=a&amp;b=b 的格式写遇到的问题
2018/04/27 Javascript
javascript canvas检测小球碰撞
2020/04/17 Javascript
vue和小程序项目中使用iconfont的方法
2020/05/19 Javascript
js实现简单的倒计时
2021/01/28 Javascript
NumPy 如何生成多维数组的方法
2018/02/05 Python
python最长回文串算法
2018/06/04 Python
Python Unittest根据不同测试环境跳过用例的方法
2018/12/16 Python
Python2与Python3的区别实例分析
2019/04/11 Python
Pytorch 中retain_graph的用法详解
2020/01/07 Python
CSS3 实现弹幕的示例代码
2017/08/07 HTML / CSS
澳大利亚最好的厨具店:Kitchen Warehouse
2018/03/13 全球购物
英国女鞋购物网站:Moda in Pelle
2019/02/18 全球购物
美国最好的葡萄酒网上商店:Wine Library
2019/11/02 全球购物
《桃花心木》教学反思
2014/02/17 职场文书
大学生会计职业生涯规划范文
2014/02/28 职场文书
《东方明珠》教学反思
2014/04/20 职场文书
员工安全生产责任书
2014/07/22 职场文书
2014年幼儿园个人工作总结
2014/11/10 职场文书
实习协议书
2015/01/27 职场文书