鱼C论坛

 找回密码
 立即注册
查看: 419|回复: 27

[技术交流] 28 - 比比谁的点数大

[复制链接]
发表于 2022-1-17 22:20:21 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 鱼C-小师妹 于 2022-4-19 20:00 编辑

在线视频:



市面上常见的骰子都是有 6 个面的正方体,每个面印有数字,不重复。

千库网_麻将骰子_元素编号12581400.png

上一集我们实现了用户和计算机的对战,这次我们编写一个游戏,由我们指定游戏局数,让计算机 A 和 B 互相博弈~

每一盘我们都采用累加求和来比大小,并不是单纯看本局 A 和 B 的随机点数大小。

如果用户指定局数小于 99,提示重新输入。

既然是随机产生点数,就要用到“随机数生成器”,每次产生 1~6 之间的一个整数,来模拟掷骰子的点数。

要得到 6 个不同的随机值,需要调用 Python 的 random 模块提供的 random.randint() 函数即可:

  1. random.randint(1,6)
复制代码

这样就能生成 A 和 B 每局掷出的随机点数。

既然游戏需要统计最终结果,我们需要定义两个变量 a1 和 b1,用于记录每个人投掷点数的累加和。

为了记录每个人的获胜盘数,需要再定义两个变量 a 和 b,用于记录每个人获胜的盘数。

每一盘 A 获胜,a 加 1,反正 B 加 1,打平则两边都不加 1。

程序其实并不难,这次我们再介绍一个新玩意:time 模块。

在结果出来前,我们让程序暂停 3 秒,增加一些悬念:

  1. print("加速统计结果中...")
  2. time.sleep(3)
复制代码

更多关于 time 模块相关的知识点,请读者自行查阅,基本上任何跟时间相关的操作都会涉及到 time 模块。

为了提升一些游戏难度,我们要求用户来输入游戏次数,并不得少于99局。

如果不符合就重复提示,直到输入正确程序才继续执行:

  1. import random
  2. import time

  3. if __name__ == "__main__":
  4.     print("===比大小游戏开始咯,请输入计算机A和B的比赛局数,最少99局===")
  5.     round = int(input("局数:"))
  6.     while round < 99:
  7.         print("游戏局数必须大等于99局哦")
  8.         round = int(input("局数:"))
复制代码

这里通过一个 while 循环就可以实现重复提示。

接下来就是程序核心部分,生成随机点数并进行结果统计。

由于是进行 round 局比赛,所以每局比赛都要统计一次点数和。

如果本局内 a1 大于 b1 则表示 A 获胜。反之,则是 B 获胜:

  1. a,b = 0,0
  2.     print(f"A和B共进行{round}局比赛")
  3.     for i in range(1,round):
  4.         a1,b1 = 0,0
  5.         for j in range(1,7):
  6.             a1 = a1 + random.randint(1,6)
  7.             b1 = b1 + random.randint(1,6)
  8.         if a1 > b1:
  9.             a += 1
  10.         else:
  11.             b += 1
复制代码

最后我们输出结果,通过 a 和 b 值来看谁获胜。

a 大于 b 说明 A 获胜,反之则 B 获胜:

  1. print("加速统计结果中...")
  2. time.sleep(3)
  3. if a > b:
  4.     print(f"{a}:{b}获胜者为A")
  5. else:
  6.      print(f"{a}:{b}获胜者为B")
复制代码

我们来执行下:
2022-01-27_16-56-03.jpg

看似没问题了对不对?!

但是!游戏中还有可能出现一种在说明中没有直接说的可能:“平局”!

也就是说会有一种可能存在 a 和 b 是相同,也就是最终胜负数一样。

如果出现这种情况,按照现有程序都是属于 else 的情况,最终会误判 B 获胜。

作为一名程序员,我们写程序一定要全面考虑各种情况,不能只局限于题目所说的。

修改 else 中的代码:

  1. if a1 > b1:
  2.             a += 1
  3.         else:
  4.             if a1 < b1:
  5.                 b += 1
复制代码

以及:

  1. if a > b:
  2.     print(f"{a}:{b}获胜者为A")
  3. else:
  4.     if a < b:
  5.         print(f"{a}:{b}获胜者为B")
  6.     else:
  7.         print("A和B平局")
复制代码

再次执行:

2022-01-24_22-01-41.jpg

好啦,我们又搞定了一个游戏啦~

这里小师妹稍微科普点有趣的知识。

博彩类的游戏是基于大脑的奖励系统:

赢了,大脑就分泌多巴胺,感到愉悦;输了,那种“赶紧再来一把扳回来”的焦虑就会迅速产生。

这种设计就让大家欲罢不能~

每一项设计都在营造一种沉浸式体验,让玩游戏的人一步步走向沉迷,不可自拔~

像赌博游戏机,能够和很多违禁药物一样,通过不断重复行为,刺激人脑中的脑神经回路分泌多巴胺,让人上瘾。

这种重复行为的频率越快,上瘾也就越迅速,所以大家一定要小心哦~

好啦,本节课就到这里,下课~

源码:
游客,如果您要查看本帖隐藏内容请回复

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2022-1-18 11:07:20 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2022-1-18 11:51:32 | 显示全部楼层
瞅一眼
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2022-1-18 13:49:10 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2022-1-18 16:23:59 | 显示全部楼层

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2022-1-18 16:41:36 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2022-1-18 17:57:29 | 显示全部楼层
我就看看不碰
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2022-1-18 18:26:35 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2022-1-18 20:11:53 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2022-1-18 23:55:46 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2022-1-19 09:17:22 From FishC Mobile | 显示全部楼层
let's me see
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2022-1-19 13:05:45 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2022-1-20 15:51:37 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2022-1-20 16:09:20 | 显示全部楼层
666
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2022-1-20 17:08:41 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2022-1-20 17:25:59 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2022-1-20 19:42:43 From FishC Mobile | 显示全部楼层
来看看。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2022-1-20 19:58:38 | 显示全部楼层

来看看。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2022-1-20 20:28:33 | 显示全部楼层
111
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2022-1-21 12:41:24 From FishC Mobile | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1

GMT+8, 2022-5-24 16:22

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表