最近因為一個夢境
夢裡畫面應該是在搬東西
我感覺我做事很小心
但........手掌莫名被蛇咬了
然後我就醒了
醒來後因為印象深刻
上網查跟蛇有關的夢境
解釋的內容唯一的一句話跟我比較有所連結
內容提到有捨(蛇)才有得
近期因為都在嘗試輸出scratch教學文
就想到跟蛇有關的遊戲
立刻就想起還沒有智慧型手機的時候
手機還是由nokia稱霸的舊型手機
畫面不是彩色還需透過按鍵打電話簡訊用的手機
當時高中下課無聊會玩的貪食蛇
今天的任務就是完整的專案學習
上一篇有提到同一種遊戲目標
大家會有不同的程式寫法
在現代也會有各種的變化版本
本篇用一個比較簡易的方式用關鍵字逐步拆解
還原經典版本的貪食蛇遊戲
有玩過最原始的貪食蛇
遊戲內容大概就是
一條格子像素的長條上下左右移動,吃了食物蛇就會變長,並且得分
用逆向工程已知的方法拆解關鍵字
大致如下
1蛇的方向控制
2蛇如何移動
3食物且加分
逐一完成關鍵字裡的程式碼
就可以完成經典遊戲系統囉
1蛇的方向控制
將控制長度的變數設為0
因蛇的移動方式為持續移動
所以我們控制的重點就是角度方向
0度為上
180度為下
-90度為左
90度為右
實際點選角度可以有方向圖示方便辨識
2蛇如何移動
主架構為建立自己的分身讓他可以不斷變長
且將移動積木與無限重複次組合達到持續移動效果
透過一套數學的方法(變數/10)
串接長度的變數達到控制分身變長的時間
並且刪除分身控制貪食蛇的長度
3食物且加分
設定一個圓當食物
當碰到蛇時
運作長度的(變數)就會改變加1
變數加1就會串起分身變長的時間,食物再隨機跑到其他定點
以上三張圖示就是基本的scratch積木程式的撰寫方法
用了一個變數串接三個關鍵字的程式碼形成連結
本程式以學習為主要目標
就完成了永不失敗的貪食蛇!!
下方連結為完整的程式碼連結可供學習參考也可以回味一下遊戲
https://scratch.mit.edu/projects/650437002/實際的重0到1的拉積木程式
許多的邏輯自然而然的能夠在腦海裡理解
如果要更進一步的記憶
就需要用重複性的次數提取記憶練習
印象就可以更加深刻囉
後續圖示為木仁創客透過一些提問改編遊戲創意
貪食蛇能不能不是蛇?
貪食蛇能不能兩人玩?
貪食蛇能不能像真的蛇一樣移動?