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中的urllib2模块
Nov 13 Python
浅谈Python 对象内存占用
Jul 15 Python
Python实现字符串反转的常用方法分析【4种方法】
Sep 30 Python
Python实现基于C/S架构的聊天室功能详解
Jul 07 Python
浅析python中的迭代与迭代对象
Oct 08 Python
Django框架反向解析操作详解
Nov 28 Python
python读取raw binary图片并提取统计信息的实例
Jan 09 Python
如何基于Python代码实现高精度免费OCR工具
Jun 18 Python
浅析Python 条件控制语句
Jul 15 Python
matplotlib绘制鼠标的十字光标的实现(内置方式)
Jan 06 Python
pip/anaconda修改镜像源,加快python模块安装速度的操作
Mar 04 Python
golang中的空接口使用详解
Mar 30 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
优化NFR之一 --MSSQL Hello Buffer Overflow
2006/10/09 PHP
CodeIgniter实现从网站抓取图片并自动下载到文件夹里的方法
2015/06/17 PHP
PHP使用fopen与file_get_contents读取文件实例分享
2016/03/04 PHP
PhpStorm本地断点调试的方法步骤
2018/05/21 PHP
Yii框架学习笔记之session与cookie简单操作示例
2019/04/30 PHP
Aliyun Linux 编译安装 php7.3 tengine2.3.2 mysql8.0 redis5的过程详解
2020/10/20 PHP
Javascript中引用示例介绍
2014/02/21 Javascript
JavaScript实现添加、查找、删除元素
2015/07/02 Javascript
js实现商城星星评分的效果
2015/12/29 Javascript
JS简单设置下拉选择框默认值的方法
2016/08/20 Javascript
BootStrap组件之进度条的基本用法
2017/01/19 Javascript
jQuery实现全选、反选和不选功能
2017/08/16 jQuery
karma+webpack搭建vue单元测试环境的方法示例
2018/05/24 Javascript
详解Vue CLI3 多页应用实践和源码设计
2018/08/30 Javascript
深入解读Node.js中的koa源码
2019/06/17 Javascript
Vue filter 过滤当前时间 实现实时更新效果
2019/12/20 Javascript
Python isinstance函数介绍
2015/04/14 Python
Python图形绘制操作之正弦曲线实现方法分析
2017/12/25 Python
python3.6使用urllib完成下载的实例
2018/12/19 Python
Python小进度条显示代码
2019/03/05 Python
python numpy实现文件存取的示例代码
2019/05/26 Python
Python-Tkinter Text输入内容在界面显示的实例
2019/07/12 Python
python requests指定出口ip的例子
2019/07/25 Python
Python基于Dlib的人脸识别系统的实现
2020/02/26 Python
使用keras实现BiLSTM+CNN+CRF文字标记NER
2020/06/29 Python
台湾网购生鲜第一品牌:i3Fresh爱上新鲜
2017/10/26 全球购物
上海微创软件面试题
2012/06/14 面试题
党章学习思想汇报
2014/01/14 职场文书
业务员简历自我评价
2014/03/06 职场文书
英文导游词
2015/02/13 职场文书
庆七一晚会主持词
2015/06/30 职场文书
七年级思品教学反思
2016/02/20 职场文书
Go 语言下基于Redis分布式锁的实现方式
2021/06/28 Golang
java开发双人五子棋游戏
2022/05/06 Java/Android
CSS中理解层叠性及权重如何分配
2022/12/24 HTML / CSS
MySQL索引失效十种场景与优化方案
2023/05/08 MySQL