做一个贪吃蛇 让它自动玩(就是蛇可以自动去吃那个随机产生的蛋),怎么实现?
具体思路是怎么样的?有没有这样的源程序或发在这边。谢谢!!

解决方案 »

  1.   

    地图是一张N*N的格子。随机产生的任何蛋都必须在这些格子之内。那么蛇的位置也在这个范围内移动,障碍处于格子的“外围”以及蛇的“尾巴”,外围比较好处理,但是“尾巴”就必须记录下来。“尾巴”的记录方法应该是吃过的蛋的数量以及走过的路线,这样就型成了一个动态的先进先出数组,用数组来记录下格子的“标号”,那么蛇的头不要去触碰有标号的点就可以。具体做法是,因为一次只会产生一个蛋,将产生蛋的格子“标记”,这样就解释了5楼所说的最近的“豆子”的问题,而蛇只会直线移动,如果是已经标记为“尾巴”的格子蛇将想办法绕开,比如在下面,那么,就计算出,向左或向右,可以让“尾巴”消失。这个似乎比较麻烦,因为计算的方法中还要考虑地图的边界。不过也还算好写,细致一点就行。也就是说,要么是X-1要么是Y-1或者X+1以及Y+1,不可以让X和Y同时产生变化,而边界和尾巴的坐标也是以X和Y进行标记的,所以,在产生移动的时候,先进行坐标的运算,在不碰死蛇的前题下,找出最接近“豆子”X和Y的坐标的路线呼。这个还真麻烦。运算量相当大啊,楼主做这个干嘛?
      

  2.   

    去GOOGLE一下A*算法.这个就是一个寻路问题嘛.
      

  3.   

    FSM,Finite State Fachine