貪吃蛇(錯誤)進化版 智慧型(障)蛇

2021-08-14 04:08:38 字數 1447 閱讀 3569

void ini()

a[0].x = 1; a[0].y = 1; //地圖左上角設定一條長度為5的蛇

a[1].x = 1; a[1].y = 2;

a[2].x = 1; a[2].y = 3;

a[3].x = 1; a[3].y = 4;

a[4].x = 1; a[4].y = 5; a[4].dir = 1;

srand(time(0));

for (i = 0; i < 17; i++)

} for (i = 1; i < 16; i++)

} //map[6][5] = 『『; map[6][6] = 『『; map[6][7] = 『*』;

//map[7][5] = 『『; map[7][7] = 『『;

map[a[4].x][a[4].y] = 『h』; //設定蛇頭

for (i = 0; i < sum - 1; i++)

food();

calculate();

}void show()

printf(「\n」);

} while (1)

else if (ch == 『r』)

} }

system(「cls」); //清屏

for (i = 0; i < 17; i++)

printf(「\n」);

} calculate(); //計算並記錄蛇頭與食物距離 } }

void food() } }

void move()

else

map[a[i].x][a[i].y] = 『x』; //把地圖上蛇身座標處的字元設定成『x』

} a[sum - 1].x = a[sum - 1].x + dx[a[sum - 1].dir]; //蛇頭按當前方向移動一格

a[sum - 1].y = a[sum - 1].y + dy[a[sum - 1].dir];

map[a[sum - 1].x][a[sum - 1].y] = 『h』; //把地圖上蛇頭座標處的字元設定成『h』

} else

for(i = 0; i < 4; i++) else else

} }

}void check()

printf(「\n」);

} printf(「input 『r』 to restart\ninput 『q』 to quit\n」);

over = 1;

} }

else if (map[x][y] == 『o』)

}void turn()

} switch (k)

}void calculate() else } }

int main()

(因為已經有動態全程圖了,就不截其他圖了)

貪吃蛇高階 智慧型蛇

做完了人工操控的貪吃蛇,由於太懶了 我們來設計乙個可以自動尋找食物的智慧型蛇吧w 思路 我們只需對原來人工操作的貪吃蛇 稍作修改即可。首先,我們要讓蛇能夠根據食物的位置自動判斷自己移動的方向。注意,此時如果只是簡單判斷蛇的head與食物的距離,蛇就非常容易把自己繞死。這時有乙個比較簡單的思路 遍歷全...

智慧型貪吃蛇

include include include include include include include include void food void show void move void turn void check void ini void calculate int movable...

VC版貪吃蛇

此處,我感受到復用性的好處,將與顯示或平台無關的東西分裝在一起,如果能進一步抽象的盡量抽象,就可以充分發揮其復用性。具體的關於snake的設計,請參見我的部落格 c 版貪吃蛇遊戲 下面是vc下的遊戲介面截圖 在這裡說一下vc下與c 不同的及新家的東西。cpp view plain copy 引入庫 ...