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 04 Python
python matlibplot绘制多条曲线图
Feb 19 Python
Python面向对象程序设计OOP深入分析【构造函数,组合类,工具类等】
Jan 05 Python
Python XML转Json之XML2Dict的使用方法
Jan 15 Python
Python的Lambda函数用法详解
Sep 03 Python
Python提取PDF内容的方法(文本、图像、线条等)
Sep 25 Python
Win10 安装PyCharm2019.1.1(图文教程)
Sep 29 Python
基于matplotlib中ion()和ioff()的使用详解
Jun 16 Python
Python Request类源码实现方法及原理解析
Aug 17 Python
详解python tkinter包获取本地绝对路径(以获取图片并展示)
Sep 04 Python
python可视化分析的实现(matplotlib、seaborn、ggplot2)
Feb 03 Python
Python+tkinter实现高清图片保存
Mar 13 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
COM in PHP (winows only)
2006/10/09 PHP
php读取纯真ip数据库使用示例
2014/01/26 PHP
jQuery中的RadioButton,input,CheckBox取值赋值实现代码
2014/02/18 PHP
IE6下js通过css隐藏select的一个bug
2010/08/16 Javascript
收集的一些Array及String原型对象的扩展实现代码
2010/12/05 Javascript
关于Mozilla浏览器不支持innerText的解决办法
2011/01/01 Javascript
jquery $(this).attr $(this).val方法使用介绍
2013/10/08 Javascript
javascript将数字转换整数金额大写的方法
2015/01/27 Javascript
jQuery实现鼠标经过提示信息的地图热点效果
2015/04/26 Javascript
JavaScript 七大技巧(二)
2015/12/13 Javascript
多种js图片预加载实现方式分享
2016/02/19 Javascript
jQuery使用正则表达式限制文本框只能输入数字
2016/06/18 Javascript
Seajs是什么及sea.js 由来,特点以及优势
2016/10/13 Javascript
jQGrid动态填充select下拉框的选项值(动态填充)
2016/11/28 Javascript
Bootstrap CSS组件之下拉菜单(dropdown)
2016/12/17 Javascript
JS中传递参数的几种不同方法比较
2017/01/20 Javascript
js实现手机发送验证码功能
2017/03/13 Javascript
JS库particles.js创建超炫背景粒子插件(附源码下载)
2017/09/13 Javascript
JS实现点击链接切换显示隐藏内容的方法
2017/10/19 Javascript
详解Vue取消eslint语法限制
2018/08/04 Javascript
详解js动态获取浏览器或页面等容器的宽高
2019/03/13 Javascript
vue配置nprogress实现页面顶部进度条
2019/09/21 Javascript
[02:52]DOTA2新手基础教程 米波
2014/01/21 DOTA
Centos5.x下升级python到python2.7版本教程
2015/02/14 Python
在Python中使用M2Crypto模块实现AES加密的教程
2015/04/08 Python
django rest framework serializers序列化实例
2020/05/13 Python
python+opencv3.4.0 实现HOG+SVM行人检测的示例代码
2021/01/28 Python
一款纯css3实现的非常实用的鼠标悬停特效演示
2014/11/05 HTML / CSS
联想阿根廷官方网站:Lenovo Argentina
2019/10/14 全球购物
俄罗斯设计师家具购物网站:The Furnish
2019/12/01 全球购物
小学教师节活动总结
2015/03/20 职场文书
2015年依法行政工作总结
2015/04/29 职场文书
趣味运动会通讯稿
2015/07/18 职场文书
详解盒子端CSS动画性能提升
2021/05/24 HTML / CSS
浅谈Python中对象是如何被调用的
2022/04/06 Python
MySQL中LAG()函数和LEAD()函数的使用
2022/08/14 MySQL