Python实现猜拳与猜数字游戏的方法详解

作者:渴望力量的哈士奇 时间:2022-06-17 18:32:25 

至此,我们的 Python零基础入门篇 的系列专栏到今天基本上算是结束了。今天没有任何的知识点,只是运用我们之前学习过的知识做两个小游戏的案例。第一个是模拟猜拳的小游戏,第二个就是猜数字的游戏。

猜拳小游戏

需求:

运用至今所学的 Python 知识编写脚本,实现一个人与计算机玩猜拳的石头剪刀布的小游戏。

这里我们先思考一下,如果将石头、剪刀、布分别用数字0、1、2表示,那么如何判定谁胜谁负呢?

userrobot结果
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实现猜拳与猜数字游戏的方法详解

来源:https://blog.csdn.net/weixin_42250835/article/details/123962758

标签:Python,猜拳,猜数字
0
投稿

猜你喜欢

  • 比较规范的验证Email地址是否正确的正则表达式

    2009-07-28 17:55:00
  • python中Flask Web 表单的使用方法介绍

    2023-08-26 15:13:24
  • windows11安装SQL server数据库报错等待数据库引擎恢复句柄失败解决办法

    2024-01-16 07:18:52
  • MySQL关系型数据库事务的ACID特性与实现

    2024-01-21 13:15:17
  • python实现下载指定网址所有图片的方法

    2021-05-17 22:12:16
  • Python使用pyserial进行串口通信的实例

    2022-03-07 15:30:09
  • 滑动窗口算法高效率解决数组问题

    2023-10-28 02:03:28
  • 标签水平右对齐更适合中文网站

    2009-05-01 11:54:00
  • python多线程中的定时器你了解吗

    2021-09-01 23:39:21
  • PHP桥接模式Bridge Pattern的优点与实现过程

    2023-05-25 06:53:44
  • PYTHON实现SIGN签名的过程解析

    2021-08-09 13:29:05
  • mybatis动态sql实现逻辑代码详解

    2024-01-13 05:13:04
  • vue-quill-editor插入图片路径太长问题解决方法

    2024-05-29 22:46:29
  • Python3.4解释器用法简单示例

    2022-01-04 10:30:39
  • Python设计模式中的结构型适配器模式

    2023-07-19 11:59:54
  • golang实现数组分割的示例代码

    2024-05-08 10:23:41
  • Centos7 Python3下安装scrapy的详细步骤

    2021-12-03 10:59:26
  • Python3基于sax解析xml操作示例

    2022-06-07 10:18:52
  • 日常整理python执行系统命令的常见方法(全)

    2022-07-30 10:39:45
  • MySQL中BIGINT数据类型如何存储整数值

    2024-01-23 21:15:45
  • asp之家 网络编程 m.aspxhome.com