文件名称:AI_SNAKE 贪吃蛇
文件大小:94KB
文件格式:RAR
更新时间:2017-06-22 14:45:59
AI_SNAKE
简单智能贪吃蛇的实现与思考 贪吃蛇游戏作为一类经典的游戏,深受广大玩家的喜爱,而程序员们在编程入门的过程中都是以贪吃蛇游戏作为练手的题目。以下我仅对我的一种智能贪吃蛇的实现方法加以说明。《图一》 程序=算法+数据结构,本例的贪吃蛇作为一个完整的程序,需要相应算法与数据结构。我们通过这两个方面加以解释。 数据结构:在“贪吃蛇”的整个背景上我们通过一个二维的字符数组可以记录整个背景中的障碍物的摆放。而蛇实现上这里采用队列, 也就是C++中的queue,通过queue容器记录蛇的各个部位的坐标。而食物的位置通过rand()函数随机产生,这里可以利用随机种子的方法可以使不同时间产生的随机序列不相同。 算法实现:本例程序中主要解决的是蛇的行走与吃食物两个问题,蛇在行走过程可以如此描述:头部前进一步,舍弃尾部。具体实现过程是通过front方法产生新的蛇头坐标,修改之后通过push函数将蛇头的坐标压入容器中,同时利用pop函数舍弃尾部的一节。吃食物的过程:头部前进一步,尾部不变。实现方法与上同,但是蛇的尾部不用舍弃。食物产生之后蛇的自动追击过程实现:这一过程通过比较蛇头坐标与食物坐标产生前进的方向,之后根据此方向来行动。简单说就是先把蛇头与食物的横坐标相减的一值,如果不为零则左走或右走直到此值为零,之后同理处理纵坐标。有一种情况要单独注意,当蛇头水平方向不能动时,而垂直方向可以动时,我们应当让蛇头先在纵坐标上改变,之后再水平方向。 一些细节的实现:程序是在命令提示符下实现,每次蛇的行动可以通过清屏函数清空,之后再根据新的坐标重绘,由于程序运行过程画面较快,所以可以使用Sleep函数放慢节奏,使蛇的行动更加的清晰明了。 小结,本文通过一些最简单的函数与方法实现了智能贪吃蛇,程序的优势主要体现在数据结构的选取上。每次蛇头坐标改变,程序会自动清屏并重绘。最后通过判断蛇头周围是否有空位,如果没有则结束。最后得到蛇的长度,通过比较长度可以判断程序的智能性。当然这里没有加入相应的搜索的函数使程序更加智能,只是简单的实现蛇的行动与吃食物目的是让大家通过这一简单的程序得到相应的编程启示。 《附件中有源代码》 张佳 手机:13851870576 地址:山东省临沂市河东区九曲镇安居小区59号楼1单元102号
【文件预览】:
贪吃蛇最终版本.cpp
贪吃蛇最终版本.exe