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之类的细节
Oct 13 Python
Python脚本实现虾米网签到功能
Apr 12 Python
python3 与python2 异常处理的区别与联系
Jun 19 Python
Python 实现文件的全备份和差异备份详解
Dec 27 Python
scrapy爬虫完整实例
Jan 25 Python
使用python批量读取word文档并整理关键信息到excel表格的实例
Nov 07 Python
详解PyCharm安装MicroPython插件的教程
Jun 24 Python
python实现两张图片拼接为一张图片并保存
Jul 16 Python
使用pandas读取文件的实现
Jul 31 Python
PyQt5+Pycharm安装和配置图文教程详解
Mar 24 Python
Windows 下更改 jupyterlab 默认启动位置的教程详解
May 18 Python
用Python实现童年贪吃蛇小游戏功能的实例代码
Dec 07 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实现生成验证码实例分享
2016/04/10 PHP
PHP中的密码加密的解决方案总结
2016/10/26 PHP
PHP针对redis常用操作实例详解
2019/08/17 PHP
Bookmarklet实现启动jQuery(模仿 云输入法)
2010/09/15 Javascript
基于jquery自己写tab滑动门(通用版)
2012/10/30 Javascript
js 获取class的元素的方法 以及创建方法getElementsByClassName
2013/03/11 Javascript
js与applet相互调用的方法
2016/06/22 Javascript
jQuery新窗口打开外链接
2016/07/21 Javascript
无循环 JavaScript(map、reduce、filter和find)
2017/04/08 Javascript
Vue.js tab实现选项卡切换
2017/05/16 Javascript
JS基于正则表达式实现的密码强度验证功能示例
2017/09/21 Javascript
JS实现带动画的回到顶部效果
2017/12/28 Javascript
深入剖析JavaScript instanceof 运算符
2019/06/14 Javascript
使用uni-app开发微信小程序的实现
2019/12/13 Javascript
JS+CSS+HTML实现“代码雨”类似黑客帝国文字下落效果
2020/03/17 Javascript
[37:23]DOTA2上海特级锦标赛主赛事日 - 3 胜者组第二轮#2Secret VS EG第二局
2016/03/04 DOTA
[02:49]2018DOTA2亚洲邀请赛主赛事决赛日战况回顾 Mineski鏖战5局夺得辉耀
2018/04/10 DOTA
[03:01]完美盛典趣味短片 DOTA2年度最佳&拉胯英雄
2019/12/07 DOTA
[54:43]DOTA2-DPC中国联赛 正赛 CDEC vs Dynasty BO3 第一场 2月22日
2021/03/11 DOTA
Python使用multiprocessing实现一个最简单的分布式作业调度系统
2016/03/14 Python
下载python中Crypto库报错:ModuleNotFoundError: No module named ‘Crypto’的解决
2018/04/23 Python
Python提取支付宝和微信支付二维码的示例代码
2019/02/15 Python
Python爬取数据保存为Json格式的代码示例
2019/04/09 Python
详解Python字符串切片
2019/05/20 Python
Django密码存储策略分析
2020/01/09 Python
详解Python中的编码问题(encoding与decode、str与bytes)
2020/09/30 Python
详解tf.device()指定tensorflow运行的GPU或CPU设备实现
2021/02/20 Python
Coltorti Boutique官网:来自意大利的设计师品牌买手店
2018/11/09 全球购物
自荐信需注意事项
2014/01/25 职场文书
文科生自我鉴定
2014/02/15 职场文书
股权转让意向书
2014/04/01 职场文书
人力资源管理专业求职信
2014/07/23 职场文书
2015元旦标语横幅
2014/12/09 职场文书
欠条样本
2015/07/03 职场文书
MySQL中日期型单行函数代码详解
2021/06/21 MySQL
MySQL外键约束(FOREIGN KEY)案例讲解
2021/08/23 MySQL