42 貪吃蛇遊戲

(2018/11/14)

有關Micro:bit的遊戲,以前一直只玩【射擊遊戲】及【賽車遊戲】,應該也要再擴展一些新遊戲了,以前覺得用Micro:bit小小的5X5屏幕要來設計【貪吃蛇遊戲】,好像有一點難,至少到現在好像還沒有人用Makecode來做過,今天想了想、試了試,好像也沒有那麼難,但還是有些複雜度,至少最後完成了!

  • 作品說明:

    • 一開始【蛇頭】出現在(2,2),然後會往右移動,一格一格移動,移動速度會隨著分數增加而變快

    • 按A鍵蛇頭會右轉90度,按B鍵蛇頭會左轉90度

    • 另外,在舞台上會隨機出現一顆【水果】(設定一直閃爍,好方便辨識)

    • 控制【蛇頭】去吃【水果】,每吃一顆水果,得1分

    • 每得1分(或2分、3分)則蛇的長度增加一節 (可自行設定要得幾分,便會增加1節)

    • 如果蛇頭碰壁或碰到自己的身體則GAME OVER

  • 程式說明

    • 先建立【蛇頭】及【水果】兩個變數來當角色

    • 建立一個【蛇身各節】的陣列來當角色

      • 蛇身各節(1)是第1節蛇身的角色

      • 蛇身各節(2)是第2節蛇身的角色....

      • 這些角色等增加長度後才【創建】

    • 分別建立【蛇X陣列】、【蛇Y陣列】兩個陣列來儲存蛇頭及蛇各節的X座標及Y座標

      • 蛇X陣列(0)、蛇Y陣列(0)為蛇頭座標

      • 蛇X陣列(1)、蛇Y陣列(1)為第1節蛇身的座標...

    • 建立【蛇身長度】的變數來儲存蛇身的長度

    • 按A鍵蛇頭會右轉90度,按B鍵蛇頭會左轉90度

      • 當蛇頭吃到水果時

      • 得1分

      • 設定得幾分來增加一節蛇身

      • 當增加一節長度時

        • 在X、Y陣列中,加入一個項目(蛇尾的座標值)

        • 建立一個【蛇身各節】的陣列來當角色 ,並創建在蛇尾的位置

    • 蛇頭移動所做的動作

      • 移動一格

      • 如果移動後的位置與移動前的位置一樣,代表【碰壁了】,就直接GAME OVER

      • 如果移動後的位置與陣列中蛇各節的座標一樣,代表【碰到身體了】,一樣給GAME OVER

      • 移動後,除了蛇頭外,陣列中蛇各節的座標分別取代它前一節的座標,如第3節的座標就是原本第2節的座標,陣列中第0節(蛇頭)的座標就是移動後蛇頭的座標。

      • 控制蛇前進的速度,隨著分數增加,速度變快。

  • 完成檔案,如附件