简单的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的)