Scratch與數(shù)學(xué)的整合31
? ? ? ? ? ? ? 第31課????????搶椅子挑戰(zhàn)
一、讓我們開始吧
????????相信大家一定看過活玩過搶椅子的游戲。規(guī)則是幾個(gè)人繞圈搶座下周圍的椅子,哪一個(gè)人沒有坐下哪一個(gè)人就會(huì)在該輪中淘汰,把其中一個(gè)椅子拿到一邊去。然后繼續(xù)不斷搶下去,淘汰下去,直到剩2個(gè)人時(shí)誰坐下了椅子誰就是最終的勝利者。那么今天我們就來改變這種傳統(tǒng)的規(guī)則:有多少個(gè)人就有多少個(gè)椅子,仍然是繞圈搶座下周圍的椅子,不過每輪過后都是坐下椅子的人不用再搶椅子,直到剩2個(gè)人時(shí)空下誰(誰沒坐下椅子)誰就是最終的失敗者。
二、學(xué)習(xí)目標(biāo)
????????1、游戲目標(biāo):運(yùn)用類比推理的形式的思維了解一系列反口令動(dòng)作的游戲規(guī)則。
????????2、編程目標(biāo):利用Scratch實(shí)現(xiàn)搶椅子挑戰(zhàn)的新玩法。
三、編程環(huán)節(jié)
????????1、我們以10個(gè)玩家為例,看看游戲運(yùn)行的流程圖。

????????如圖所示,程序開始。首先確定玩家號(hào)碼1——10。再詢問誰先搶下座位了。然后將回答設(shè)為玩家號(hào)碼,接著相應(yīng)的玩家號(hào)碼將會(huì)被“刪除”,如此重復(fù)執(zhí)行10次。重復(fù)執(zhí)行10次到只剩1個(gè)玩家時(shí)思考僅剩幾號(hào)玩家,并將該玩家作為失敗者。最后程序結(jié)束。
????????2、下面是實(shí)現(xiàn)該游戲編程用到的變量:玩家的號(hào)碼、搶下座位的玩家。另外還有列表名搶下的座位。
????????3、最后是該作品的代碼:
當(dāng)綠旗被點(diǎn)擊
????????∵列表是一個(gè)集合、每項(xiàng)的編號(hào)是元素,而集合具有確定性、互異性、無序性,那么就意味著每次程序運(yùn)行前列表為空時(shí)才可能運(yùn)行時(shí)查詢列表無誤。
刪除搶下的座位的全部項(xiàng)目
????????我們可以把玩家號(hào)碼1——10組合成一串?dāng)?shù)列1,2,3,……,10,會(huì)發(fā)現(xiàn)它是首項(xiàng)為1,公差為1的遞增數(shù)列,那么第一項(xiàng)應(yīng)該從0開始依次增加1,重復(fù)執(zhí)行10次。
將玩家號(hào)碼設(shè)為0
重復(fù)執(zhí)行10次
將玩家號(hào)碼增加1
將玩家號(hào)碼加入搶下的座位
等待1秒
等待1秒????(不再重復(fù)執(zhí)行內(nèi))
????????根據(jù)規(guī)則,淘汰的順序是每回合淘汰1人,而誰輸只有剩1人時(shí)才會(huì)知道,∴要用到重復(fù)執(zhí)行到積木塊,對(duì)該順序進(jìn)行條件判斷,詢問并回答每輪誰被淘汰,最終誰是失敗者。
重復(fù)執(zhí)行到搶下的座位的項(xiàng)目數(shù)=1
詢問誰搶下座位了?
將搶下座位的玩家設(shè)為回答
刪除搶下的座位的第回答項(xiàng)
思考:“連接最后失敗的人是和搶下的座位的第1項(xiàng)”










