Scratch与数学的整合31
第31课 抢椅子挑战
一、让我们开始吧
相信大家一定看过活玩过抢椅子的游戏。规则是几个人绕圈抢座下周围的椅子,哪一个人没有坐下哪一个人就会在该轮中淘汰,把其中一个椅子拿到一边去。然后继续不断抢下去,淘汰下去,直到剩2个人时谁坐下了椅子谁就是最终的胜利者。那么今天我们就来改变这种传统的规则:有多少个人就有多少个椅子,仍然是绕圈抢座下周围的椅子,不过每轮过后都是坐下椅子的人不用再抢椅子,直到剩2个人时空下谁(谁没坐下椅子)谁就是最终的失败者。
二、学习目标
1、游戏目标:运用类比推理的形式的思维了解一系列反口令动作的游戏规则。
2、编程目标:利用Scratch实现抢椅子挑战的新玩法。
三、编程环节
1、我们以10个玩家为例,看看游戏运行的流程图。

如图所示,程序开始。首先确定玩家号码1——10。再询问谁先抢下座位了。然后将回答设为玩家号码,接着相应的玩家号码将会被“删除”,如此重复执行10次。重复执行10次到只剩1个玩家时思考仅剩几号玩家,并将该玩家作为失败者。最后程序结束。
2、下面是实现该游戏编程用到的变量:玩家的号码、抢下座位的玩家。另外还有列表名抢下的座位。
3、最后是该作品的代码:
当绿旗被点击
∵列表是一个集合、每项的编号是元素,而集合具有确定性、互异性、无序性,那么就意味着每次程序运行前列表为空时才可能运行时查询列表无误。
删除抢下的座位的全部项目
我们可以把玩家号码1——10组合成一串数列1,2,3,……,10,会发现它是首项为1,公差为1的递增数列,那么第一项应该从0开始依次增加1,重复执行10次。
将玩家号码设为0
重复执行10次
将玩家号码增加1
将玩家号码加入抢下的座位
等待1秒
等待1秒 (不再重复执行内)
根据规则,淘汰的顺序是每回合淘汰1人,而谁输只有剩1人时才会知道,∴要用到重复执行到积木块,对该顺序进行条件判断,询问并回答每轮谁被淘汰,最终谁是失败者。
重复执行到抢下的座位的项目数=1
询问谁抢下座位了?
将抢下座位的玩家设为回答
删除抢下的座位的第回答项
思考:“连接最后失败的人是和抢下的座位的第1项”










