貪吃蛇演算法原理問題,貪吃蛇演算法原理問題

2022-09-11 11:35:28 字數 1008 閱讀 2051

1樓:焦水淼

貪吃蛇最主要的演算法就是碰撞檢測,其資料結構的難點在於蛇身的儲存,以及按鍵佇列。

先說資料結構:蛇身的儲存最容易想到的一種資料結構,就是陣列。但是,用陣列,一開始就得開闢一螢幕的蛇身那麼多記憶體,才確保不會溢位。

而如果玩家只玩了一會兒就撤了,導致蛇身到了最後也沒多長,那豈不是對記憶體的浪費(真正優秀的遊戲是效率、記憶體佔用、空間佔用、畫面、聲效、情節等都最優的遊戲)?所以陣列可以棄而不用了。

不用陣列,那用什麼呢?這時我們應該考慮一個可以隨蛇身的長度的變化而動態地插入和刪除元素的資料結構。

2樓:匿名使用者

直接把地圖用二維資料表示 0表示空 -1表時 障礙 1表示可吃蛇是的動作 遇1 吃(加長),遇0(遊走),遇-1撞上了理論上蛇的動作判斷只要判斷蛇頭. (是吃還是走還是撞)吃:蛇陣列變長

走:蛇頭加1蛇尾-1

蛇的表示最簡單的表示也用同樣的二維陣列表示判斷動作時分兩步:1判斷蛇頭下一步的地圖位置是否-1(障礙)第二步:當蛇頭按走動演算法走時.

判斷有沒有撞到蛇身這個先走再判斷有沒有撞蛇身還是先判斷有沒有撞蛇身再走.影響的結果是會不會撞到蛇尾(這句不明白的話程式寫到這就明白了)

判斷的方向是按玩家輸入的上下左右做為方向羅__________________

如果你是要做含吃蛇自動吃的話,那除了判斷前方三個方向是否有障礙之外還要.防死路.防迴圈(就這個遊戲而言這個好解決用目標就好了因為吃了就沒了)

3樓:匿名使用者

我覺得是先把每一個方塊的方向確定在確定他們的座標

4樓:匿名使用者

請問哪個先確定有區別麼?

應該兩個同時確定了之後,再確定下一步去哪,然後重繪介面吧

貪吃蛇演算法的c語言程式設計報告

5樓:我是火線飛人

大哥,這個應該自己到網上找資源吧,要**會很長很長的,記得大一的時候我們也要求做報告,我做了一個管理系統呵呵,網上找資源吧

貪吃蛇漸漸淡出人們的視野,當初是什麼使貪吃蛇火遍中國

要說這些年來最經典的一款遊戲是什麼?那麼我想就是貪吃蛇了,這款遊戲是從小玩到大的小遊戲,可以說它陪伴了我們的童年,還記得以前的5塊錢買的遊戲機上面,就有這款遊戲,在一個三寸的小螢幕上,我們控制著一條小蛇,不要需要不斷的吃到小方塊,讓自己的身體變長。而且一個不小心還會撞到牆遊戲,玩到越後面,他的速度是...

關於C語言寫貪吃蛇時,蛇的身體以及移動該怎麼寫

只要記住一點,只有蛇頭才會每次賦予新的座標,之後的身體都是copy前一個節點的座標,連結串列結構裡應該有x,y座標資訊,我以前就是這麼做的,可行 我寫過,我的策略就是蛇的連結串列刪去尾節點,並根據蛇當前移動的方向增加頭節點!再顯示出來,看起來就移動一格了。我寫了一個不過在多執行緒下貌似有bug 1 ...

像推箱子,華容道,貪吃蛇,超級瑪麗,魂鬥羅,這樣的經典遊戲還有哪些

太多了,都想不起來了,而且都是小時候玩的,很多遊戲也不知道名字。尋用音波打死怪物然後再推出牆外的遊戲,跟超級瑪麗魂鬥羅在一起的經典遊戲 不是bai哦!累死拼圖 我找不到了。就du是彈來彈去zhi的,然後他 dao飛過的地方如果有回 金幣就會翻出來 那些金答幣會拼出一個圖形來。會發出音波將怪物定住。你...