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标准异常和异常处理详解
Feb 02 Python
Python实现从百度API获取天气的方法
Mar 11 Python
python版微信跳一跳游戏辅助
Jan 11 Python
python实现K最近邻算法
Jan 29 Python
Python3实现的简单验证码识别功能示例
May 02 Python
Python实现的当前时间多加一天、一小时、一分钟操作示例
May 21 Python
Django框架验证码用法实例分析
May 10 Python
python爬虫 爬取58同城上所有城市的租房信息详解
Jul 30 Python
tensorflow入门:tfrecord 和tf.data.TFRecordDataset的使用
Jan 20 Python
Python基于os.environ从windows获取环境变量
Jun 09 Python
Python StringIO及BytesIO包使用方法解析
Jun 15 Python
python3美化表格数据输出结果的实现代码
Apr 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&amp;mysql(五)
2006/10/09 PHP
浅谈php serialize()与unserialize()的用法
2013/06/05 PHP
使用cookie实现统计访问者登陆次数
2013/06/08 PHP
javascript iframe内的函数调用实现方法
2009/07/19 Javascript
Javascript 实用小技巧
2010/04/07 Javascript
浅谈Javascript中substr和substring的区别
2015/09/30 Javascript
JavaScript驾驭网页-CSS与DOM
2016/03/24 Javascript
基于jquery实现轮播焦点图插件
2016/03/31 Javascript
JS+CSS3实现超炫的散列画廊特效
2016/07/16 Javascript
js阻止移动端页面滚动的两种方法
2017/01/25 Javascript
ES6中module模块化开发实例浅析
2017/04/06 Javascript
js轮播图的插件化封装详解
2017/07/17 Javascript
微信小程序dom操作的替代思路实例分析
2018/12/06 Javascript
微信小程序实现动态显示和隐藏某个控件功能示例
2018/12/14 Javascript
Vue获取微博授权URL代码实例
2020/11/04 Javascript
[01:21]DOTA2 新英雄 森海飞霞
2020/12/18 DOTA
[42:00]完美世界DOTA2联赛PWL S3 Phoenix vs INK ICE 第一场 12.13
2020/12/17 DOTA
Django框架中处理URLconf中特定的URL的方法
2015/07/20 Python
python django 访问静态文件出现404或500错误
2017/01/20 Python
python urllib urlopen()对象方法/代理的补充说明
2017/06/29 Python
利用Python读取txt文档的方法讲解
2018/06/23 Python
Python3之手动创建迭代器的实例代码
2019/05/22 Python
Python如何实现转换URL详解
2019/07/02 Python
将python运行结果保存至本地文件中的示例讲解
2019/07/11 Python
numpy数组做图片拼接的实现(concatenate、vstack、hstack)
2019/11/08 Python
Python3实现配置文件差异对比脚本
2019/11/18 Python
TUMI新加坡官网:国际领先的商旅箱包品牌
2019/01/12 全球购物
英国在线购买轮胎、预订汽车、汽车维修和装配网站:Protyre
2020/04/12 全球购物
介绍一下Linux中的链接
2016/05/28 面试题
毕业生求职的求职信
2013/12/05 职场文书
自荐信写法介绍
2014/01/25 职场文书
竞选大队干部演讲稿
2014/09/11 职场文书
个人学习党的群众路线教育实践活动心得体会
2014/11/05 职场文书
销售内勤岗位职责
2015/02/10 职场文书
外科护士长工作总结
2015/08/12 职场文书
超级详细实用的pycharm常用快捷键
2021/05/12 Python