边改边做模型设计智能贪吃蛇

来源:互联网 发布:网络金融的发展研究 编辑:程序博客网 时间:2024/06/10 01:15

软件开发模型分为多种,智能蛇的框架可以大致参照上一篇博客贪吃蛇。
那么现在用边改做做的方法去优化智能蛇。

缺陷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';    }}//横轴同上,就不列出

此时就可以在一定程度避免相撞了。但还是无法避免惨剧的发生~~~

原创粉丝点击