国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

用 js 寫個(gè)自動(dòng)尋路的貪吃蛇

gaara / 1321人閱讀

摘要:前言偶爾看到兩年前寫的貪吃蛇,當(dāng)時(shí)沒把自動(dòng)尋路的算法寫好,蛇容易掛,周末找了個(gè)時(shí)間把當(dāng)年的坑填上,寫了個(gè)不會(huì)掛的貪吃蛇。

前言

偶爾看到兩年前寫的貪吃蛇,當(dāng)時(shí)沒把自動(dòng)尋路的算法寫好,蛇容易掛,周末找了個(gè)時(shí)間把當(dāng)年的坑填上,寫了個(gè)不會(huì)掛的貪吃蛇。

兩年前的版本_點(diǎn)擊查看

這次更新的版本_點(diǎn)擊查看

代碼比較簡(jiǎn)單,使用 canvas 完成游戲的畫圖,拋開 A* 算法的實(shí)現(xiàn),整個(gè) html 代碼在 300 行以內(nèi)~
源碼 :
https://github.com/myfjdthink...

原理說明 不死的方法

首先要找出一個(gè)模式可以保持蛇不掛,這個(gè)模式就是
“跟著尾巴跑”

如果蛇頭和蛇尾是可以連通的,那么就不會(huì)掛。
所以只要保證任意時(shí)刻蛇頭和蛇尾能連通即可。
尋路的偽代碼如下:

if(head to  flood){ // 蛇頭能連通食物
    模擬蛇吃到食物后的狀態(tài)
    if(newHead to tail){   // 吃到食物后還能連接尾巴 安全
        eat flood
    }  else {
        // 吃到食物后無法連接尾巴 放棄
        flow tail
    }
} else {
    flow tail   // 跟著尾巴跑
}

在吃食物之前,需要模擬吃到食物后蛇的狀態(tài),判斷此時(shí)蛇是否還能連接尾巴,由此決定是否吃掉食物。

如何找到最短路徑

使用 A* 算法可以快速找到倆點(diǎn)之間的最短路徑,網(wǎng)上找了個(gè)實(shí)現(xiàn),就直接扒下來使用啦。
http://devpro.it/examples/ast...

TODO

目前只是實(shí)現(xiàn)了不死,在某些條件下,程序還是會(huì)陷入一個(gè)循環(huán),這個(gè)有空在改進(jìn)吧,歡迎提 PR。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/91207.html

相關(guān)文章

  • 小白成長日記:寫個(gè)貪吃

    摘要:貪吃蛇并不是通過操作來完成移動(dòng)的,而是通過記錄貪吃蛇的路徑來將身體渲染出來。目前沒有內(nèi)置的操作符判斷對(duì)象的內(nèi)容是否相同。 還是用的vue,本來以為不合適,但想法錯(cuò)了。貪吃蛇并不是通過操作dom來完成移動(dòng)的,而是通過記錄貪吃蛇的路徑來將身體渲染出來。 一般移動(dòng)元素,我們都是變動(dòng)它的css達(dá)到目的,但我在寫貪吃蛇的時(shí)候發(fā)現(xiàn)這樣很難以實(shí)現(xiàn),參考了網(wǎng)上的資源,發(fā)現(xiàn)大部分人是通過記錄貪吃蛇的路徑...

    archieyang 評(píng)論0 收藏0
  • jquery寫貪吃

    需要具備知識(shí):1.html、css基礎(chǔ)2.jquery基礎(chǔ) 具體實(shí)現(xiàn)方法: 創(chuàng)建游戲界面 .bts { display: flex; } .bt { width: 60px; height: 24px; line-height: 24px...

    gitmilk 評(píng)論0 收藏0
  • jquery寫貪吃

    需要具備知識(shí):1.html、css基礎(chǔ)2.jquery基礎(chǔ) 具體實(shí)現(xiàn)方法: 創(chuàng)建游戲界面 .bts { display: flex; } .bt { width: 60px; height: 24px; line-height: 24px...

    h9911 評(píng)論0 收藏0
  • JS原型對(duì)象寫的貪吃,很粗糙的代碼

    摘要:貪吃蛇類默識(shí)貪吃蛇速度,毫秒地圖軸分為多少單位地圖軸分為多少單位貪吃蛇運(yùn)動(dòng)速度貪吃蛇每節(jié)身體和食物的寬高地圖軸分為多少單位初始化貪吃蛇屬性蛇移動(dòng)方向食物和食物的坐標(biāo)游戲開始創(chuàng)建地圖初始化食物初始化貪吃蛇綁定鍵盤方向更改貪吃蛇方向移動(dòng)貪吃蛇創(chuàng) /** 貪吃蛇類 @author 默識(shí) @param {int} speed 貪吃蛇速度,毫秒 @param {int} x 地圖x軸分...

    YanceyOfficial 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

gaara

|高級(jí)講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<