边改边做模型设计智能贪吃蛇
程序员文章站
2022-06-12 22:45:58
...
软件开发模型分为多种,智能蛇的框架可以大致参照上一篇博客贪吃蛇。
那么现在用边改做做的方法去优化智能蛇。
缺陷1:输入上下左右后还需要再按回车。
优化:将输入的getchar变成getch函数(头文件为conio.h)
缺陷2:智能蛇就是不需要输入,自行判断往哪走。
那么就用距离差来判断。
if(head.x-food[0]>0)//食物与蛇头距离差
head.dir='w';
else if(head.x-food[0]<0)
head.dir='s';
else if(head.y-food[1]>0)
head.dir='d';
else if(head.y-food[1]<0)
head.dir='a';
每走一步判断一次位置,然后判断一次方向。
只要在蛇头方向改变时将位置信息录入ticks里面。
缺陷3:行进过程中极有可能会撞上蛇身。
这个问题就难解决了,基本是无解的。先进行一个小优化。
int judge=0;//判断行进路上纵向位置是否有阻
if(head.x-food[0]>0)
{
for(food[0]++;food[0]<head.x;food[0]++)
{
if(screen[food[0]][head.y]!=' ')
{
judge=1;
break;
}
}
if(!judge)
{
head.dir='w';
}
}
else if(head.x-food[0]<0)
{
for(food[0]--;food[0]<head.x;food[0]--)
{
if(screen[food[0]][head.y]!=' ')
{
judge=1;
break;
}
}
if(!judge)
{
head.dir='s';
}
}
//横轴同上,就不列出
此时就可以在一定程度避免相撞了。但还是无法避免惨剧的发生~~~
上一篇: Word文档中如何插入图片以点缀枯燥乏味的文字描述
下一篇: Python3 os模块
推荐阅读