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爬虫实战之最简单的网页爬虫教程
Aug 13 Python
Python实现扣除个人税后的工资计算器示例
Mar 26 Python
Tensorflow卷积神经网络实例
May 24 Python
Python3 Post登录并且保存cookie登录其他页面的方法
Dec 28 Python
python实现文件助手中查看微信撤回消息
Apr 29 Python
详解Django将秒转换为xx天xx时xx分
Sep 27 Python
详解使用Python下载文件的几种方法
Oct 13 Python
python实现回旋矩阵方式(旋转矩阵)
Dec 04 Python
Tensorflow 自定义loss的情况下初始化部分变量方式
Jan 06 Python
使用Selenium实现微博爬虫(预登录、展开全文、翻页)
Apr 13 Python
手残删除python之后的补救方法
Jun 26 Python
Python时间操作之pytz模块使用详解
Jun 14 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/08/10 PHP
php中explode函数用法分析
2014/11/15 PHP
Symfony2学习笔记之插件格式分析
2016/03/17 PHP
php递归函数怎么用才有效
2018/02/24 PHP
php生成HTML文件的类方法
2019/10/11 PHP
PHP网页缓存技术优点及代码实例
2020/07/29 PHP
JS获取计算机mac地址以及IP的实现方法
2014/01/08 Javascript
浅谈JavaScript字符集
2014/05/22 Javascript
javascript控制层显示或隐藏的方法
2015/07/22 Javascript
jquery实现的Accordion折叠面板效果代码
2015/09/02 Javascript
JS实现滑动菜单效果代码(包括Tab,选项卡,横向等效果)
2015/09/24 Javascript
jQuery中设置form表单中action值的实现方法
2016/05/25 Javascript
node.js express中app.param的用法详解
2017/07/16 Javascript
JavaScript实现旋转轮播图
2020/08/18 Javascript
jQueryUI Sortable 应用Demo(分享)
2017/09/07 jQuery
解决Vue编译时写在style中的路径问题
2017/09/21 Javascript
vue项目中用cdn优化的方法
2018/01/03 Javascript
vue3.0 CLI - 2.1 -  component 组件入门教程
2018/09/14 Javascript
python uuid模块使用实例
2015/04/08 Python
Python函数式编程指南(一):函数式编程概述
2015/06/24 Python
Python中将字典转换为列表的方法
2016/09/21 Python
Python 网页解析HTMLParse的实例详解
2017/08/10 Python
python OpenCV学习笔记之绘制直方图的方法
2018/02/08 Python
对Python 多线程统计所有csv文件的行数方法详解
2019/02/12 Python
利用CSS3把图片变成灰色模式的实例代码
2016/09/06 HTML / CSS
输入一行文字,找出其中大写字母、小写字母、空格、数字、及其他字符各有多少
2016/04/15 面试题
旅游管理专业个人求职信范文
2013/12/24 职场文书
前处理组长岗位职责
2014/03/01 职场文书
服装设计专业求职信
2014/06/16 职场文书
要账委托书范本
2014/09/15 职场文书
2014年团总支工作总结
2014/11/21 职场文书
商务邀请函
2015/01/30 职场文书
培训通知书模板
2015/04/17 职场文书
原生Javascript+HTML5一步步实现拖拽排序
2021/06/12 Javascript
html输入两个数实现加减乘除功能
2021/07/01 HTML / CSS
MySQL的存储函数与存储过程的区别解析
2022/04/08 MySQL