大一实训---贪吃蛇+走全图AI实现

              当时楼楼实训时大一下学期中期,学了类的一些特性。当时老师提示说没思路可以写XX管理系统雏形,当然按照我的想象应该很多人就会写这个了,毕竟上机课都有练过相关的代码实现,只要组织好逻辑再加上一些别出心裁的功能函数,基本上很快就搞定。所以当时楼楼没往这方面想。

             其实当也没想到写贪吃蛇,只是逛csdn的时候偶然看到某位大牛用Python写了个贪吃蛇ai(原文请看http://bbs.csdn.net/topics/390430805),所以当时就决定写c++版的贪吃蛇吧(事先声明:楼楼的项目是自己独立思考的,在实训完成之前就只是在逛csdn的时候看过一次,之后并无参照那位大牛,当然belive it or not)。

             在开始写程序的时候,楼楼一般都会构思好主函数的逻辑,也就是说主函数一定是最先完成的,然后再添加功能函数。之后的思考过程就是:如何构造蛇->如何构造地图->如何判断键入->如何进行按键筛选->如何判断动作合法->如何让蛇"看起来动"。

              关于蛇的构造,楼楼采用的是建立结构体来储存蛇的坐标,然后用队列(先进先出的特点刚好符合蛇的行走规律)构造出一整条蛇(还有一种方法是采用双向链表来构造,当然这不是楼楼想的,而是楼楼的一基友用的方法,当时我本来是想和他合作的,而且明确了合作想法之后,我们各自都写了一个不同版本的可运行贪吃蛇成程序,但是当时楼楼有兼职,基友的ai开发进度远比我快,所以我放弃了合作,毕竟直接拿别人的成果也不好。题外话哈哈大笑)。而地图的构造就比较简单,开一个二维数组map[max][max],记录整条蛇位置,食物位置,就好了。至于食物的生成就是播撒随机数种子然后rand出坐标,对于非法坐标重新再rand就好。看下代码吧(注:以下代码可能出现未介绍变量以及函数,请忽略,下文会介绍,而且重点也不是这些未知变量和函数,下文不再提醒):

void foodpro()//生成食物函数
{
	int i,j;
	i=rand()%(n-1);
	j=rand()%(m-1);
	w
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值