主要将整个程序分为三个模块,菜单模块,蛇模块,和背景模块(细胞模块),其中菜单模块主要负责菜单的显示(这一部分不是很重要),细胞模块,因为400*400是一个很大的背景,如果显示在屏幕上会导致蛇和墙等等物体显得很小,因此将整个背景视作下图所示的物体,细胞的演化则是通过复制整个背景棋盘,复制一份当前状态的棋盘,然后在遍历原棋盘上每一个格子,每一个格子周围有八个格子,然后查看上一刻这八个格子的状态来确定下一次格子要变化的状态,就这样遍历完每一个格子之后,整个棋盘演化一次,ai蛇,则是通过基于规则的行动来实现的,因为我在使用邻接链表进行路径判断的过程中发现,其实棋盘一直变化,使用邻接链表求最短距离确定路径并不必基于规则强,反而如果基于规则设置的好,反而要超过基于广搜的,因此采用基于规则的,首先根据汉明距离确定目标点,然后根据蛇头朝向可以设置一个向量,代表舌头朝向,然后目标点与舌头之间又可以确定一个向量,就可以通过向量之间点积公式可以确定目标点与蛇头之间的向量l1与舌头朝向向量l2之间的角度,然后根据叉积公式可以得到是逆时针旋转还是顺时针旋转,设定范围在(-45,+45)度之间舌头方向不变,大