大数跨境
0
0

【信息科技案例】游戏里的概率统计 ——石头剪刀布

【信息科技案例】游戏里的概率统计 ——石头剪刀布 KittenBot小喵
2023-09-14
0
导读:功能强大的未来板Lite也可以编写一个与电脑对战的石头剪刀布程序。

  【信息科技案例分享】


  游戏里的概率统计

 石头剪刀布


导语


石头剪刀布谁都玩过,小时候的小伙伴们经常用这种小游戏组队,选座位等等。

在功能强大的未来板Lite中也可以编写一个与电脑对战的石头剪刀布程序。同时,该程序是贴合新课标案例中“游戏博弈中的策略“章节,在于让学生理解博弈策略概率统计。接下来让我们来看看具体是如何实现的吧!


材料准备


未来板 Lite*1

编程软件使用


Kittenblock1.89    

功能介绍


功能很简单,大致分为四个板块

①通过A键玩家选择石头/剪刀/步

②通过B键电脑选择石头/剪刀/步

③每一次对决都会显示结果,并记录双方结果

④每完成十局对决,显示概率统计

前期准备


将事先准备好的石头剪刀布图片拖进未来板Lite里即可完成图片上传。

程序编写


1.初始页面编写

这部分程序主要是用于显示游戏规则,在按下M键后进入游戏。

进入游戏时需要对变量进行初始化设置,并封装在初始化函数里,这些变量的用意就和它们的名字一样通俗易懂,都是记录相关次数。比如【玩家出石头】变量就是记录玩家出石头的次数。

接下来就是程序的主体部分了,可以建两个封装函数代表玩家电脑

2.玩家选择手势

玩家通过A键来选择【玩家手势】变量,通过变量来确定手势并显示对应的图片。1=“石头”;2=“剪刀”;3=“布”

需要注意,在程序开头没有设置自动刷新,仅仅依靠矩形图形来掩盖上一轮的图片信息。如果把矩形积木去掉,会暴露上一环节的图片,会产生如下情况:

如果按照目前的进度编写,可以完成简单的按键切换了,这一步就完成了。

3.电脑选择手势

剪刀石头布的核心程序全集中在这里,按下B键时有很多事情要交给未来板Lite处理,除了通过随机数让电脑出手势外,还需要记录玩家不同手势的次数

在电脑即将出手势时,可以让不同的手势快速切换,这里可以把相关功能封装到【电脑选择过程】函数中,用于迷惑玩家。

在迷惑过后,根据随机数产生的数字来显示对应的图形,并记录手势次数。到这里【电脑选择过程】函数就完成了。

回到【电脑选择手势】函数,在电脑选择完成后应该要进行胜负判断,同样把这部分的功能封装到【胜负判断】函数进行调用。猜拳对局结果有三种情况,分为胜/负/平。显示结果时用两个矩形积木把两方的手势遮挡掉,这里先展示结果为平局情况的程序。

接下来分类讨论输赢情况,如果玩家出石头而电脑出剪刀,则玩家赢,反之玩家输。这里把所有玩家会赢的情况列出来,由于程序太长,这里只展示一部分。如果你也完成了这一步,那么【胜负判断】的程序也完成了。

到这里程序写的差不多了,每判断一次胜负,猜拳次数都会增加,并且显示当前是第几轮。最后的任务就是把每十局的概率统计显示出来就好了。这里把概率统计的函数封装到【轮次判断】中。

4.概率统计

在此函数中,只有次数大于10次时才会触发,触发时使用黑色填充来覆盖先前所呈现的内容,并且在屏幕顶部显示玩家胜/平/负的次数。把“玩家胜-平-负:”+“【玩家胜利次数】”+“-”+“【平局次数】”+“-”+“【电脑获胜次数】”连接起来。

随后对显示的内容进行计算排布,分别利用先前的变量数据,分别计算出玩家电脑胜率手势的出现频率。完成后按下M键即可进行初始化重新开始游戏进行新一轮的数据统计。

到这里程序全部完成了,在进行概率统计后可以看到按下M键又可以新一轮的游戏了。

程序源图片,像素大小为50*45


4.功能扩展

改变电脑的手势概率,让石头出现的概率多一些,布和剪刀的概率少一些。

这个方法比较简单,让变量从单一判断转化为值域判断即可。


功能演示


【声明】内容源于网络
0
0
KittenBot小喵
专注于从入门到精通的移动机器人开源学习平台
内容 560
粉丝 0
KittenBot小喵 专注于从入门到精通的移动机器人开源学习平台
总阅读305
粉丝0
内容560