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 14 Python
python通过定义一个类实例作为ftp回调方法
May 04 Python
在Python的Flask框架中验证注册用户的Email的方法
Sep 02 Python
python中enumerate函数遍历元素用法分析
Mar 11 Python
python解决方案:WindowsError: [Error 2]
Aug 28 Python
代码分析Python地图坐标转换
Feb 08 Python
Python中单例模式总结
Feb 20 Python
python的格式化输出(format,%)实例详解
Jun 01 Python
python 计算积分图和haar特征的实例代码
Nov 20 Python
Iconfont(矢量图标)+iconmoon(图标svg互转)配合javascript实现社交分享系统
Apr 21 Python
python 实现围棋游戏(纯tkinter gui)
Nov 13 Python
分享一枚pycharm激活码适用所有pycharm版本我的pycharm2020.2.3激活成功
Nov 20 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 whois查询API制作方法
2011/06/23 PHP
服务器变量 $_SERVER 的深入解析
2013/07/02 PHP
php实现获取文件mime类型的方法
2015/02/11 PHP
PHP连接MSSQL方法汇总
2016/02/05 PHP
PHP闭包函数传参及使用外部变量的方法
2016/03/15 PHP
Auntion-TableSort国人写的一个javascript表格排序的东西
2007/11/12 Javascript
javascript iframe内的函数调用实现方法
2009/07/19 Javascript
Javascript 面向对象 继承
2010/05/13 Javascript
在web中js实现类似excel的表格控件
2016/09/01 Javascript
jQuery中checkbox反复调用attr('checked', true/false)只有第一次生效的解决方法
2016/11/16 Javascript
NodeJs下的测试框架Mocha的简单介绍
2017/02/22 NodeJs
Vue的路由动态重定向和导航守卫实例
2018/03/17 Javascript
JavaScript React如何修改默认端口号方法详解
2020/07/28 Javascript
微信小程序实现滚动Tab选项卡
2020/11/16 Javascript
vue的webcamjs集成方式
2020/11/16 Javascript
vue 项目@change多个参数传值多个事件的操作
2021/01/29 Vue.js
[01:36:17]DOTA2-DPC中国联赛 正赛 Ehome vs iG BO3 第一场 1月31日
2021/03/11 DOTA
python使用urllib2模块获取gravatar头像实例
2013/12/18 Python
python结合opencv实现人脸检测与跟踪
2015/06/08 Python
python编码总结(编码类型、格式、转码)
2016/07/01 Python
基于asyncio 异步协程框架实现收集B站直播弹幕
2016/09/11 Python
Python实现输出程序执行进度百分比的方法
2017/09/16 Python
Python入门必须知道的11个知识点
2018/03/21 Python
Python将8位的图片转为24位的图片实现方法
2018/10/24 Python
浅谈pandas筛选出表中满足另一个表所有条件的数据方法
2019/02/08 Python
HTML5使用Audio标签实现歌词同步的效果
2016/03/17 HTML / CSS
香蕉共和国Banana Republic官网:美国GAP旗下偏贵族风格服饰品牌
2016/11/21 全球购物
安全教育心得体会
2013/12/29 职场文书
幼儿园中秋节活动反思
2014/02/16 职场文书
大队委竞选演讲稿
2014/04/28 职场文书
甜品店创业计划书
2014/08/14 职场文书
创先争优活动个人总结
2015/03/04 职场文书
未中标通知书
2015/04/17 职场文书
行政处罚告知书
2015/07/01 职场文书
Python类方法总结讲解
2021/07/26 Python
Win11 vmware不兼容怎么办?Win11与VMware虚拟机不兼容的解决方法
2023/01/09 数码科技