2020年7月3日 星期五

06363031 楊文慶 貪吃蛇

貪吃蛇

遊戲規則


        透過綠色的蛇來吃到紅的蘋果,每吃到一次得一分,同時蛇會變長一點。
吃到蘋果前
吃到蘋果後
        當吃到5顆蘋果時即獲得勝利,當碰到邊界或是碰觸自己身體時即輸了。

操作方式

        當上下左右的框框被感應到時,遊戲就開始並改變蛇的移動方向。每10偵時蛇會依照移動方向改變位址。

程式

        程式主要是依照老師實作教材6 PartB來做修改,我將程式分成三個部分。
        第一部分修改教材前半部分,在教材中會先掃過整張圖計算差異,我在計算差異時,同時把感應框框、蘋果、蛇依序化上去。
        第二部分修改教材後半部分,在教材的後半部會檢查壁虎是否會被擋到,我將他改成偵測移動方向,如果偵測到差異且移動時不會往反方向走就改變移動方向。
        最後部分我在程式最後面檢查每10偵時先計算蛇的身體移動位址開始依移動方向改變蛇的頭的位址,並檢查是否碰到蘋果、是否超過邊界、是否碰到身體。當吃到蘋果時增加身體長度。

移動及增加長度

        將身體用陣列的方式記錄,可以變身體很長時可以用迴圈處理。先用陣列記錄所有身體,當該身體要顯示時設1當身體反之設0。由於遊戲開始預設蛇只有3格所以身體0到2必須顯示,以後每當吃到一顆蘋果,分數加2的身體設為1(例如:吃到第一顆蘋果分數是一,必須啟動第四個身體,第四個身體對應到陣列為3)。
        每次移動時先移動身體在移動頭,因為所有身體只是向前面的身體的方向移動(例如:身體n每次移動時只是移動到身體n-1的座標),只有頭移動時需要搞慮到移動方向。引此程式用先用迴圈從最尾巴往頭檢查,先檢查該身體有沒有被啟動了,如果第n個身體被啟動了則n的座標為n-1的座標再往頭的方向檢查,最後頭在依身體的移動方向進行計算。

影片


沒有留言: