[ACM]BFS实现贪吃蛇自动寻路

简单的BFS,可以使得贪吃蛇自动找到食物
前情提要

整了一个贪吃蛇,基于C#,写着练手的小游戏,没想到还是写了几个小时
操作:WASD移动,蓝色的是食物,没有死亡判定,碰到墙壁和自己只会停下来

实现上很简单,大致思路:两个数组,一个gameobject数组,存放每一格蛇身;
一个int型二维数组,记录移动之前每一段的位置,吃到食物时再改变数组最后一个记录位置的格子颜色即可

下载链接

http://share.weiyun.com/0c82f8372c86f1670c84751ff9d727df
(密码:oDyl)

给自己的游戏写个外挂(划掉

这几天正好ACM练题写到BFS,突然就想到是不是可以用BFS来解贪吃蛇?

于是就有了这个7行代码实现全自动贪吃蛇:

public static void BFS(int x,int y){
if (finded) return ;  if (x < 1 || x > 8 || y < 1 || y > 14)   return ; 
if (TCS1.matrix[x][y]) return ;  if (TCS1.matrix[x][y]) {   
autoMode.autopath[pathnum][0] = new Vector2(x,y); finded=true;  
Debug.Log("finded!!!");   return ; }  autoMode.autopath[pathnum][0] = x;
autoMode.autopath[pathnum++][1] = y;  autoMode.BFS(x,y+1);  
autoMode.BFS(x+1,y);  autoMode.BFS(x,y-1);  autoMode.BFS(x-1,y);}

总体来讲就是十分简单的BFS,可以使得贪吃蛇自动找到食物,但由于BFS的盲目性,路径并不是最短路径,有待改进。
(不过对于贪吃蛇来说或许这样的走法是最不容易GameOver的)

实验输出
长长长长长长长长长长...