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

上节代码示例:

cpp 复制代码
#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;
}

代码可以优化更简:

cpp 复制代码
#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写死有些地方就不能显示空格了。

相关推荐
北顾笙9802 分钟前
day35-数据结构力扣
数据结构·算法·leetcode
代码中介商18 分钟前
C语言操作符深度解析:从基础到高级应用
c语言·开发语言
cpp_250126 分钟前
P2249 【深基13.例1】查找
数据结构·c++·算法·题解·二分·洛谷
烤麻辣烫28 分钟前
算法--二分搜索
java·开发语言·学习·算法·intellij-idea
三品吉他手会点灯1 小时前
C语言学习笔记 - 18.C编程预备计算机专业知识 - 什么是变量
c语言·开发语言·笔记·学习
山甫aa1 小时前
二叉树算法-----从零开始的算法
数据结构·算法
睡觉就不困鸭1 小时前
第十七天 翻转字符串里的单词
数据结构·算法·哈希算法·散列表
ulias2122 小时前
leetcode热题 - 4
算法·leetcode·职场和发展
学术阿凡提2 小时前
Spring Boot 优雅实现异步调用:从入门到自定义线程池与异常处理
java·数据库·算法
MicroTech20252 小时前
微算法科技(NASDAQ :MLGO)量子化边缘检测技术:重塑图像处理的新范式
图像处理·科技·算法