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遍历zip文件输出名称时出现乱码问题的解决方法
Apr 08 Python
Python程序中设置HTTP代理
Nov 06 Python
python去掉行尾的换行符方法
Jan 04 Python
python中日志logging模块的性能及多进程详解
Jul 18 Python
Python实现字典排序、按照list中字典的某个key排序的方法示例
Dec 18 Python
Python时间序列处理之ARIMA模型的使用讲解
Apr 02 Python
Django多数据库的实现过程详解
Aug 01 Python
python实现复制文件到指定目录
Oct 16 Python
屏蔽Django admin界面添加按钮的操作
Mar 11 Python
Keras loss函数剖析
Jul 06 Python
python实现扫雷游戏的示例
Oct 20 Python
Python爬虫+tkinter界面实现历史天气查询的思路详解
Feb 22 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做的端口嗅探器--可以指定网站和端口
2006/10/09 PHP
PHP文章采集URL补全函数(FormatUrl)
2012/08/02 PHP
PHP中使用curl伪造IP的简单方法
2015/08/07 PHP
不用ajax实现点击文字即可编辑的方法
2007/12/16 Javascript
能说明你的Javascript技术很烂的五个原因分析
2011/10/28 Javascript
jquery实现的一个文章自定义分段显示功能
2014/05/23 Javascript
js jquery获取当前元素的兄弟级 上一个 下一个元素
2015/09/01 Javascript
jquery实现select选择框内容左右移动代码分享
2015/11/21 Javascript
基于jQuery实现仿微博发布框字数提示
2016/07/27 Javascript
关于Javascript中defer和async的区别总结
2016/09/20 Javascript
jquery插件treegrid树状表格的使用方法详解(.Net平台)
2017/01/03 Javascript
Bootstrap导航条鼠标悬停下拉菜单
2017/01/04 Javascript
Webpack中publicPath路径问题详解
2018/05/03 Javascript
JavaScript设计模式之责任链模式实例分析
2019/01/16 Javascript
Layui表格监听行单双击事件讲解
2019/11/14 Javascript
[04:22]DSPL第二期精彩集锦:残血反杀!
2014/12/10 DOTA
[03:16]DOTA2完美大师赛主赛事首日集锦
2017/11/23 DOTA
python实现简单socket程序在两台电脑之间传输消息的方法
2015/03/13 Python
深入Python解释器理解Python中的字节码
2015/04/01 Python
详解Python中DOM方法的动态性
2015/04/11 Python
python爬虫中get和post方法介绍以及cookie作用
2018/02/08 Python
20行python代码实现人脸识别
2019/05/05 Python
python实现简单飞行棋
2020/02/06 Python
Python eval函数原理及用法解析
2020/11/14 Python
五好党支部事迹材料
2014/02/06 职场文书
实习指导老师评语
2014/04/26 职场文书
小学优秀辅导员事迹材料
2014/05/11 职场文书
安全责任书
2015/01/29 职场文书
信访工作个人总结
2015/03/03 职场文书
2016年“5.12”护士节致辞
2015/07/31 职场文书
学校运动会感想
2015/08/10 职场文书
2016年基层党组织公开承诺书
2016/03/25 职场文书
MySQL学习总结-基础架构概述
2021/04/05 MySQL
深入浅析Redis 集群伸缩原理
2021/05/15 Redis
Linux系统下安装PHP7.3版本
2021/06/26 PHP
MySQL创建定时任务
2022/01/22 MySQL