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中文分词工具之结巴分词用法实例总结【经典案例】
Apr 15 Python
python实现给微信公众号发送消息的方法
Jun 30 Python
django manage.py扩展自定义命令方法
May 27 Python
Python使用matplotlib绘制随机漫步图
Aug 27 Python
解决python3 HTMLTestRunner测试报告中文乱码的问题
Dec 17 Python
python接口自动化(十七)--Json 数据处理---一次爬坑记(详解)
Apr 18 Python
Python常用模块之requests模块用法分析
May 15 Python
Django 5种类型Session使用方法解析
Apr 29 Python
Keras使用ImageNet上预训练的模型方式
May 23 Python
详解python tkinter包获取本地绝对路径(以获取图片并展示)
Sep 04 Python
Python列表嵌套常见坑点及解决方案
Sep 30 Python
Python可视化学习之seaborn绘制矩阵图详解
Feb 24 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
服务器端解压缩zip的脚本
2006/12/22 PHP
通过缓存数据库结果提高PHP性能的原理介绍
2012/09/05 PHP
ThinkPHP之N方法实例详解
2014/06/20 PHP
自定义session存储机制避免会话保持问题
2014/10/08 PHP
javascript some()函数用法详解
2014/11/13 PHP
php+xml编程之xpath的应用实例
2015/01/24 PHP
PHP连接SQLServer2005的方法
2015/01/27 PHP
php示例详解Constructor Prototype Pattern 原型模式
2015/10/15 PHP
PHP解压tar.gz格式文件的方法
2016/02/14 PHP
php 输出json及显示json中的中文汉字详解及实例
2016/11/09 PHP
PHP实现的迪科斯彻(Dijkstra)最短路径算法实例
2017/09/16 PHP
jquery 操作DOM的基本用法分享
2012/04/05 Javascript
javascript对select标签的控制(option选项/select)
2013/01/31 Javascript
基于bootstrap3和jquery的分页插件
2015/07/31 Javascript
微信小程序开发经验总结(推荐)
2017/01/11 Javascript
JS实现的模仿QQ头像资料卡显示与隐藏效果
2017/04/07 Javascript
Vue中如何实现轮播图的示例代码
2017/07/27 Javascript
详解react-webpack2-热模块替换[HMR]
2017/08/03 Javascript
js实现轮播图的完整代码
2020/10/26 Javascript
vue-cli 引入jQuery,Bootstrap,popper的方法
2018/09/03 jQuery
Vue实现点击按钮复制文本内容的例子
2019/11/09 Javascript
一篇文章带你浅入webpack的DLL优化打包
2020/02/20 Javascript
基于vue hash模式微信分享#号的解决
2020/09/07 Javascript
使用jquery实现轮播图效果
2021/01/02 jQuery
[02:07]DOTA2超级联赛专访BBC:难忘网吧超神经历
2013/06/09 DOTA
浅谈python中的数字类型与处理工具
2017/08/02 Python
python之Character string(实例讲解)
2017/09/25 Python
完美解决python3.7 pip升级 拒绝访问问题
2019/07/12 Python
Python的缺点和劣势分析
2019/11/19 Python
Html5调用手机摄像头并实现人脸识别的实现
2018/12/21 HTML / CSS
英国男女奢华内衣和泳装购物网站:Figleaves
2017/01/28 全球购物
蒂芙尼澳大利亚官方网站:Tiffany&Co. Australia
2017/08/27 全球购物
保险内勤岗位职责
2014/04/05 职场文书
财政专业大学生职业生涯规划书
2014/09/17 职场文书
放飞理想主题班会
2015/08/14 职场文书
Vue router配置与使用分析讲解
2022/12/24 Vue.js