999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

Scratch制作游戲

2022-05-09 18:34:17
電腦報 2022年17期
關鍵詞:游戲

一、漢諾塔簡介

漢諾塔(又稱河內塔)游戲是來源于印度的一個古老傳說:大梵天創造世界的時候做了三根金剛石柱子,在一根柱子上從下往上按照大小順序摞著64片黃金圓盤。大梵天命令婆羅門把圓盤從下面開始按大小順序重新擺放在另一根柱子上。并且規定,在小圓盤上不能放大圓盤,在三根柱子之間一次只能移動一個圓盤。

不論白天黑夜,總有一個僧侶在按照下面的規則移動這些圓盤:一次只移動一片,不管在哪根柱子上,小圓盤必須在大圓盤上面。僧侶們預言,當所有的圓盤都從梵天放好的那根柱子上移到另外一根柱子上時,世界就將在一聲霹靂中消滅,而梵塔、廟宇和眾生也都將同歸于盡(圖1)。

神話故事本身我們不需要深究,不過根據故事中的規則計算,若每秒移動一次圓盤,完全移動需要連續不斷地移動5845.54億年以上,不管故事真假地球都早已毀滅了。那么如果是一個圓盤少一些的漢諾塔游戲,我們又需要移動多久呢?這里我們嘗試按照傳說中的漢諾塔規則,編寫一個Scratch版本的漢諾塔游戲(圖2)。

二、 游戲規則與實現方法分析

1.漢諾塔規則

首先我們需要總結漢諾塔的核心規則:有三根柱子可以放入圓盤,每個圓盤大小不同;最開始所有圓盤按照從小到大的順序放在第一根柱子上面,每根柱子上面的圓盤都只能小的在上面,大的在下面;每次只能移動一個圓盤。

2.規則的轉化

三根柱子可以用三個列表來記錄放入的圓盤;每個圓盤有獨立的編號,編號需要和大小呈現正相關,方便比較大小;每次移動圓盤時,可以將圓盤數據放入一個變量中,一次只能放入一個圓盤的數據;放入圓盤時,將提起的圓盤數據變量與放下的柱子列表最小項進行比較,要小于列表最小項才可以放入列表。

3.程序框架搭建

游戲包含2個角色:向下箭頭、圓盤(用畫筆實時繪制);背景中繪制三根柱子。設定好各項變量:箭頭位置、提起、項數。設定好列表:一、二、三、高度位置。游戲開始后用畫筆工具按照變量列表值畫出需要的圓盤,之后可以控制箭頭選擇圓盤提起和放下,每次對圓盤產生操作,都要重新繪制所有圓盤。背景可以參考圖3自行繪制。

三、數據設定與導入

按照規則要求,我們需要三個柱子列表,這里取名“一、二、三”,另外需要確定圓盤的高度,游戲中我們只用五個圓盤,所以高度最多包含五項,將對應的圓盤y坐標寫入“高度位置”列表中(寫一個文本,然后手動導入到列表),第一個圓盤緊貼地面,之后每個圓盤之間的間隔距離為單個圓盤的高度,這里設為20。列表參考數值如圖,第一個圓盤的y坐標以背景中基線為準自行測量(圖4)。

將三個柱子列表清空后,將五個圓盤的寬度信息(項數×10)輸入第一個列表中,需要注意從大到小輸入,背景代碼參考如圖5。

四、畫筆繪制刷新功能

圓盤使用畫筆實時繪制,畫筆角色不需要顯示出來,可以繪制一個小圓點造型(如圖6),將虛像調到最高讓它隱形。當接收到廣播“畫出圓盤”時,先清空之前的筆跡(圖7)。

然后開始繪制五個圓盤,圓盤位置由三個柱子列表提供x坐標(三根柱子分別為-155,0,155),“高度位置”列表提供y坐標。每個柱子需要繪制的圓盤個數由柱子列表的項數決定,需要注意的是:不同大小的圓盤,x坐標的偏差值不一樣,列表能提供的x坐標是中心點坐標,需要向左右偏移圓盤寬度的一半。同時,為了讓圓盤與圓盤之間更容易區分,我們為每個圓盤設定不同的顏色,我們知道畫筆顏色的數值范圍是1-100,每個圓盤的大小差值為20,所以顏色可以設定為項數×6,在第一個柱子上繪制圓盤的程序如圖8。

27FDCB6F-FAC7-4B71-9829-B0BBAB7D1013

接下來按照同樣的方法繪制出第二根和第三根柱子上的圓盤,x起始坐標改為0和155(圖9)。

五、選擇箭頭的動作

1.選擇箭頭的移動

箭頭角色在造型中直接導入Scratch自帶素材(Arrow1-c)(圖10)。

通過左右鍵控制變量“箭頭位置”在1到3之間切換。按下右箭頭鍵,“箭頭位置”加1,按下左箭頭鍵則相反。當“箭頭位置”等于1的時候,表示移到了第一根柱子上方,當“箭頭位置”等于2的時候,移到第二根柱子上方,當“箭頭位置”等于3的時候,移到第三根柱子上方。為了讓箭頭在3個位置間循環,如果箭頭位置大于3時,將箭頭位置設為1,或者小于1時將箭頭位置設為3(圖11)。

設置箭頭位置對應的x坐標(圖12)。

2.提起圓盤

箭頭在提起和放入圓盤功能之間循環,當完成“提起圓盤”后,才可開始“放入圓盤”;完成“放入圓盤”后,才可以“提起圓盤”。每完成一段操作,則廣播畫出圓盤。每次廣播都需要等上一個廣播內容完成,最開始還需要等待數據注入完成(圖13)。

接收到廣播“提起圓盤”后,為避免一次按鍵多次檢測,我們加上一個等待0.5秒,提示用戶按空格鍵提起圓盤。按下空格鍵后,還需保證當前箭頭指向的柱子上存在圓盤,也就是對應列表的項數大于0,才可以將最上面的圓盤保存到變量“提起”中,然后停止這個腳本(圖14)。

3.放入圓盤

放入圓盤的方法與提起圓盤類似,不同之處在于按下空格鍵后,如果當前箭頭指向的柱子沒有圓盤,也就是對應列表項數為0,則直接將提起的圓盤數據放入對應列表,并將變量“提起”設定為空,否則需要保證對應列表最后一項比提起的圓盤更大,否則不能放入指定列表。放入成功后停止這個腳本(圖15)。

六、 調試和小結

至此程序完成,測試完成無誤后,調整好變量列表的顯示與隱藏即可。我們通過對漢諾塔游戲規則的分拆解析,結合Scratch各模塊功能,創建以畫筆刷新屏幕改變顯示效果的機制,完成了Scratch版本的漢諾塔游戲。通過這個游戲我們可以掌握畫筆積木制作動畫效果的方法、列表數據的提取和插入、變量儲存位置的方法、調取列表最后項的方法等知識點。

測試完成后,在背景代碼中添加調整變量和列表的顯示與隱藏(圖16)。

最后我們再思考一下,如果需要加入更多的圓盤該修改哪些地方呢?除了舞臺背景中重復5次繪制的代碼肯定要改成6,“高度位置”列表中要添加一個新的高度值外,還有其他地方需要修改嗎(圖17)?

完成游戲后如何判斷游戲勝利并表示出來呢?可以添加一個表示勝利的背景(圖18)。那么你修改的程序和我的一樣嗎(圖19)?

想要記錄操作步數,那么這個變量該怎么設置呢?27FDCB6F-FAC7-4B71-9829-B0BBAB7D1013

猜你喜歡
游戲
做游戲
夜間游戲
游戲
送信游戲
數獨游戲
瘋狂的游戲
飛碟探索(2016年11期)2016-11-14 19:34:47
爆笑游戲
第八章直接逃出游戲
小學科學(2015年7期)2015-07-29 22:29:00
第八章 直接逃出游戲
小學科學(2015年6期)2015-07-01 14:30:14
游戲五計算
主站蜘蛛池模板: 亚洲视频在线网| 久久a级片| 亚洲成a人片7777| 91免费观看视频| 国产精品久久久久久影院| 国产一级裸网站| 国产免费黄| 亚洲人成网站在线播放2019| 伊人久久福利中文字幕| 国产av一码二码三码无码| 精品人妻系列无码专区久久| 免费国产高清视频| 波多野结衣的av一区二区三区| 中文字幕一区二区人妻电影| 国产福利大秀91| 天天干天天色综合网| 久久精品丝袜高跟鞋| 国产精品亚洲一区二区在线观看| 欧美自慰一级看片免费| 高潮毛片无遮挡高清视频播放| 久久精品66| 精品国产自| 久久成人免费| 中文字幕丝袜一区二区| 超薄丝袜足j国产在线视频| 一区二区日韩国产精久久| 国产麻豆永久视频| 在线视频97| 五月婷婷欧美| 伊人国产无码高清视频| 午夜视频免费试看| 亚洲精品国产日韩无码AV永久免费网| 永久天堂网Av| 日本中文字幕久久网站| 欧美日韩一区二区三区在线视频| 日韩视频精品在线| 午夜高清国产拍精品| 视频二区中文无码| 另类欧美日韩| 欧美人人干| 亚洲国产成人久久77| 色婷婷成人| 亚洲高清中文字幕| 国产av剧情无码精品色午夜| 91福利免费| 久久99国产乱子伦精品免| 日韩av高清无码一区二区三区| 少妇精品在线| 国产精品护士| 99热免费在线| 久久国产高潮流白浆免费观看| 亚洲国产AV无码综合原创| 亚洲成人播放| 黄色在线不卡| 草草影院国产第一页| 无码免费视频| 波多野结衣在线一区二区| 青青草91视频| 四虎综合网| 啪啪国产视频| 久久青草精品一区二区三区| 99无码中文字幕视频| 国产特级毛片| 欧美一级高清片欧美国产欧美| 久久综合丝袜日本网| 99尹人香蕉国产免费天天拍| 一级做a爰片久久毛片毛片| 亚洲一区二区无码视频| 国产在线精彩视频二区| 一边摸一边做爽的视频17国产| 欧美日韩免费| 亚洲黄色片免费看| 国产精品粉嫩| AV在线天堂进入| 欧美激情第一区| 亚洲无码精品在线播放 | 精品视频一区二区观看| 亚洲最黄视频| 亚洲精品在线观看91| 精品国产一区91在线| 一级毛片在线免费看| 国产成人精品视频一区二区电影|