欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 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';
    }
}
//横轴同上,就不列出

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

相关标签: 设计