繼會吃的蛇之後我又寫了會自動尋路的智障蛇
void aimove() ;//判斷哪個方向能走
if(map[aisnake.y[0]][aisnake.x[0]+1] != blank_char && map[aisnake.y[0]][aisnake.x[0]+1] != snake_food) canmove[3] = 0
;//right
if(map[aisnake.y[0]][aisnake.x[0]-1] != blank_char && map[aisnake.y[0]][aisnake.x[0]-1] != snake_food) canmove[1] = 0
;//left
if(map[aisnake.y[0]-1][aisnake.x[0]] != blank_char && map[aisnake.y[0]-1][aisnake.x[0]] != snake_food) canmove[0] = 0
;//up
if(map[aisnake.y[0]+1][aisnake.x[0]] != blank_char && map[aisnake.y[0]+1][aisnake.x[0]] != snake_food) canmove[2] = 0
;//down
if(food.x
<=aisnake.x[0] && food.y
.y[0]) aiconstruct=0
; if(food.x
.x[0] && food.y>=aisnake.y[0]) aiconstruct=1
; if(food.x>=aisnake.x[0] && food.y>aisnake.y[0]) aiconstruct=2
; if(food.x>aisnake.x[0] && food.y
<=aisnake.y[0]) aiconstruct=3
;/*判斷食物在哪個方位*/
while(!canmove[aiconstruct]) aiconstruct = aiconstruct % 4 + 1
;//最終確定走的方向
/*後面的部分與人工控制的蛇相同*/
map[aisnake.y[aisnake.lenth-1]][aisnake.x[aisnake.lenth-1]] = blank_char;
map[aisnake.y[0]][aisnake.x[0]] = aisnake_body;
int i = 0
; for( i=aisnake.lenth-1
; i; i-- )
switch(aiconstruct)
if(map[aisnake.y[0]][aisnake.x[0]] != blank_char && map[aisnake.y[0]][aisnake.x[0]] != snake_food )
if(map[aisnake.y[0]][aisnake.x[0]] == snake_food )
else map[aisnake.y[0]][aisnake.x[0]] = aisnake_head;
}
這樣的蛇還是可以自己走一會兒的(雖然寫的真的不好)orz·~· 字元遊戲 智慧型蛇
基本原理 對於貪吃蛇怎麼在螢幕上移動,其實就是不斷重新整理螢幕,在乙個迴圈裡,每一次迴圈就像一張,以計算機的強大計算速度,連線成動態移動的蛇輕而易舉。由5個主要函式組成 1.首先初始化地圖,包括圍牆,蛇和食物。2.是否產生食物,判別條件為蛇頭是否與食物座標重合。3.獲取移動速度,蛇越長移速越快,移速...
字元遊戲 智慧型蛇
這裡我們暫且將食物數量設定為1,就如經典貪吃蛇那樣。接下來就是判斷要如何走了,而影響蛇行走方向的要素無非就是蛇頭與各個物件的關係,與蛇身的關係 下一步不能碰到蛇身自己撞死自己,下一步不能碰到牆,下一步要在以上條件之下盡可能往離食物更近的方向走。由於之前設計的貪吃蛇就有判斷下一步會不會自殺的函式塊ju...
字元遊戲 智慧型蛇
智慧型蛇是字串版貪吃蛇的公升級版。在這篇文章中,我將記錄我的學習過程,起到同大家分享 交流的目的。本次專案的任務是讓蛇有一定的智慧型,能通過演算法具有 感知 決策 行動 的能力。開發環境為linux。在編寫前,首先要掌握如何在終端上實現清屏。在字元終端上完成 清屏 修改游標位置 設定字元前景和背景色...