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

相关推荐
YuTaoShao2 小时前
【LeetCode 热题 100】141. 环形链表——快慢指针
java·算法·leetcode·链表
JeffersonZU2 小时前
Linux/Unix 套接字Socket编程(socket基本概念,流程,流式/数据报socket,Unix domain socket示例)
linux·c语言·tcp/ip·udp·unix·gnu
小小小新人121233 小时前
C语言 ATM (4)
c语言·开发语言·算法
你的冰西瓜3 小时前
C++排序算法全解析(加强版)
c++·算法·排序算法
এ᭄画画的北北3 小时前
力扣-31.下一个排列
算法·leetcode
绝无仅有4 小时前
企微审批对接错误与解决方案
后端·算法·架构
无限远的弧光灯5 小时前
c语言学习_函数递归
c语言·开发语言·学习
用户5040827858395 小时前
1. RAG 权威指南:从本地实现到生产级优化的全面实践
算法
小林C语言5 小时前
C语言 | 指针小结
c语言