(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写死有些地方就不能显示空格了。

相关推荐
Sunyanhui18 分钟前
力扣 三数之和-15
数据结构·算法·leetcode
Mr.kanglong9 分钟前
【LeetCode热题100】队列+宽搜
算法·leetcode·职场和发展
sp_fyf_202410 分钟前
计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-11-05
人工智能·深度学习·神经网络·算法·机器学习·语言模型·数据挖掘
钰见梵星21 分钟前
深度学习优化算法
人工智能·深度学习·算法
Dola_Pan22 分钟前
C语言:函数指针精讲
c语言·开发语言
zzzhpzhpzzz44 分钟前
设计模式——观察者模式
算法·观察者模式·设计模式
Mr__vantasy1 小时前
数据结构(初阶6)---二叉树(遍历——递归的艺术)(详解)
c语言·开发语言·数据结构·算法·leetcode
敲键盘的老乡1 小时前
堆优化版本的Prim
数据结构·c++·算法·图论·最小生成树
码农多耕地呗1 小时前
trie树-acwing
数据结构·c++·算法
奥利奥冰茶1 小时前
Linux下通过DRM操作屏幕,发生行对齐 (stride)问题
算法