singingso2024年04月10日
9阅读
开发技术多线程、pythonjavaC/C++
所属分类单机游戏

作品详情

主要将整个程序分为三个模块,菜单模块,蛇模块,和背景模块(细胞模块),其中菜单模块主要负责菜单的显示(这一部分不是很重要),细胞模块,因为400*400是一个很大的背景,如果显示在屏幕上会导致蛇和墙等等物体显得很小,因此将整个背景视作下图所示的物体,细胞的演化则是通过复制整个背景棋盘,复制一份当前状态的棋盘,然后在遍历原棋盘上每一个格子,每一个格子周围有八个格子,然后查看上一刻这八个格子的状态来确定下一次格子要变化的状态,就这样遍历完每一个格子之后,整个棋盘演化一次,ai蛇,则是通过基于规则的行动来实现的,因为我在使用邻接链表进行路径判断的过程中发现,其实棋盘一直变化,使用邻接链表求最短距离确定路径并不必基于规则强,反而如果基于规则设置的好,反而要超过基于广搜的,因此采用基于规则的,首先根据汉明距离确定目标点,然后根据蛇头朝向可以设置一个向量,代表舌头朝向,然后目标点与舌头之间又可以确定一个向量,就可以通过向量之间点积公式可以确定目标点与蛇头之间的向量l1与舌头朝向向量l2之间的角度,然后根据叉积公式可以得到是逆时针旋转还是顺时针旋转,设定范围在(-45,+45)度之间舌头方向不变,大于45度蛇头逆时针旋转,小于-45度蛇头顺时针旋转
查看全文
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论