当前位置: 首页 > article >正文

(C语言贪吃蛇)4.贪吃蛇地图优化及算法说明

上节代码示例:

#include <curses.h>

void initNcurse()
{
    initscr();
    keypad(stdscr,1);
}

void gamePic()
{
    int hang;
    int lie;

    for(hang = 0;hang < 20;hang ++)
    {

        if(hang == 0)
        {
            for(lie = 0;lie < 20;lie ++)
               {
                   printw("--");
               }
         
            printw("\n");
            for(lie = 0;lie <= 20;lie ++)
            {
                if(lie == 0 || lie == 20) printw("|");
                else printw("  ");
            }
            printw("\n");
        }
        if(hang > 0 && hang <= 18)
        {
            for(lie = 0;lie <= 20;lie ++)
            {
                if(lie == 0 || lie == 20) printw("|");
                else printw("  ");
            }
            printw("\n");
        }
        if(hang == 19)
        {
            for(lie = 0;lie < 20;lie ++)
               {
                   printw("--");
               }
               printw("\n");
               printw("by beiweiqiuAC");
        }
    }

}

int main()
{
    initNcurse();
    gamePic();
    getch();//防止程序退出
    endwin();
    return 0;
}

代码可以优化更简:

#include <curses.h>

void initNcurse()
{
    initscr();
    keypad(stdscr,1);
}

void gamePic()
{
    int hang;
    int lie;

    for(hang = 0;hang < 20;hang ++)
    {

        if(hang == 0)
        {
            for(lie = 0;lie < 20;lie ++)
               {
                   printw("--");
               }
            printw("\n");
        }
        if(hang >= 0 && hang <= 19)
        {
            for(lie = 0;lie <= 20;lie ++)
            {
                if(lie == 0 || lie == 20) printw("|");
                else printw("  ");
            }
            printw("\n");
        }
        if(hang == 19)
        {
            for(lie = 0;lie < 20;lie ++)
               {
                   printw("--");
               }
               printw("\n");
               printw("by beiweiqiuAC");
        }
    }

}

int main()
{
    initNcurse();
    gamePic();
    getch();//防止程序退出
    endwin();
    return 0;
}

那我们为什么需要这样做呢?

因为我们到时候不仅仅显示的是地图,还有贪吃蛇的身体和食物,相当于我们在这块空间不停扫描,如果用printw写死有些地方就不能显示空格了。

 


http://www.kler.cn/news/336565.html

相关文章:

  • 【FPGA开发】Xilinx FPGA差分输入时钟的使用方法
  • 深度学习-----------------机器翻译与数据集
  • 在QT中将Widget提升为自定义的Widget后,无法设置Widget的背景颜色问题解决方法
  • (五)Protues仿真STM32单片机串口数据流收发
  • 萤火php端: 查询数据的时候报错: “message“: “Undefined index: pay_status“,
  • 【408计算机考研课程】数据结构-数据结构在学什么?
  • 使用html写一个能发起请求的登录界面
  • 智能平衡移动机器人-平台硬件电路
  • 旅游平台|智慧旅游平台|基于java的智慧旅游平台设计与实现(源码+数据库+文档)
  • 自动驾驶系列—智能驾驶中的“换挡革命”:线控换挡技术详解
  • 毕业设计——医院信息化系统原型设计
  • Thinkphp/Laravel基于vue.js的社区健康服务管理系统Vscode毕业设计成品源码_0i0k4
  • ubuntu添加 SSH 密钥到 GitHub
  • 基于ssm vue uniapp实现的爱心小屋公益机构智慧管理系统
  • 解决IDEA中@Autowired红色报错的实用指南:原因与解决方案
  • Linux更改固定IP地址
  • OJ在线评测系统 思考如何进行微服务的划分 业务功能 占用端口 公共服务 依赖服务 路由
  • python的extend和append
  • java高并发场景RabbitMQ的使用
  • 第25天:web攻防-通用漏洞sql读写注入MYSQLMSSQL