用 js 寫個自動尋路的貪吃蛇

2021-09-17 06:54:07 字數 485 閱讀 7698

偶爾看到兩年前寫的貪吃蛇,當時沒把自動尋路的演算法寫好,蛇容易掛,週末找了個時間把當年的坑填上,寫了個不會掛的貪吃蛇。

**比較簡單,使用 canvas 完成遊戲的畫圖,拋開 a* 演算法的實現,整個 html **在 300 行以內~

原始碼 :

首先要找出乙個模式可以保持蛇不掛,這個模式就是

「跟著尾巴跑」

如果蛇頭和蛇尾是可以連通的,那麼就不會掛。

所以只要保證任意時刻蛇頭和蛇尾能連通即可。

尋路的偽**如下:

if(head to  flood)  else 

} else

在吃食物之前,需要模擬吃到食物後蛇的狀態,判斷此時蛇是否還能連線尾巴,由此決定是否吃掉食物。

使用 a* 演算法可以快速找到倆點之間的最短路徑,網上找了個實現,就直接扒下來使用啦。

目前只是實現了不死,在某些條件下,程式還是會陷入乙個迴圈,這個有空在改進吧,歡迎提 pr。

js貪吃蛇的詳細介紹

模擬貪吃蛇遊戲,做的專案 地圖 寬,高,背景顏色,因為小蛇和食物都是相對於地圖顯示的,這裡小蛇和食物都是地圖的子元素,隨機位置顯示,脫離文件流的,地圖也需要脫離文件流 css需要設定 寬,高,背景顏色,脫標 食物 div元素 elements 儲存div的陣列 將來刪除的食物div時候,先從map中...

用c語言寫的貪吃蛇

用c編寫的貪吃蛇程式 需求分析 貪吃蛇是一款經典的小遊戲,在遊戲中,玩家操作一條小蛇不斷的吃豆,同時要避免蛇頭與身體部分接觸。蛇每吃乙個豆,身體就會長大一節。源程式 include include system cls 用到 include include include sleep函式 inclu...

用C 實現的貪吃蛇遊戲

我是乙個c 初學者,控制台實現了乙個貪吃蛇遊戲。下面貼上 貪吃蛇遊戲 v1.0 李國良於2016年12月29日編寫完成 include include include include include using namespace std int food 2 初始食物座標 int snake 10...