Linux环境下,基于Ncurse图形库贪吃蛇小游戏(上)

Posted 橙子果果

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux环境下,基于Ncurse图形库贪吃蛇小游戏(上)相关的知识,希望对你有一定的参考价值。

Linux环境下基于Ncurse图形库的贪吃蛇小游戏

这个小游戏的意义?

这个小游戏对C语言基础、数据结构链表基础、C变量、流程控制、函数、指针、结构体等有一个很好的知识汇总学习。也是对Linux基础操作的一个简单学习。
linux环境下代码如何编写,如何编译,如何运行,如何简单的创建程序和文件夹。有利于后续的Linux系统编程的学习

这个小游戏是对C语言基础和Linux系统编程的学习起到一个承上启下的作用。

为什么要基于Ncurse图形库?
因为Ncurses有可以快速获取键盘的输入,用于控制蛇身的移动,按键响应快速。


Ncurses的使用方法:
#include <curses.h>     //头文件


        initscr();        //ncurse界面初始化
        printw("Hello  Ncurses\\n");       //ncurse下的printf
        getch();          //等待用户输入,如果没有这句话,程序就退出,看不到运行结果
        endwin();       //程序退出,调用函数来恢复Shell终端的显示
        move();		  //改变光标的位置
        refresh();     	//刷新

Ncurses对键盘上下左右的获取

#include <curses.h>
int main()
{
        int key;
        initscr();
        keypad(stdscr,1);

        while(1){
                key = getch();
                switch(key){
                        case KEY_DOWN:
                                printw("DOWN\\n");
                                break;
                        case KEY_UP:
                                printw("UP\\n");
                                break;
                        case KEY_LEFT:
                                printw("LEFT\\n");
                                break;
                        case KEY_RIGHT:
                                printw("RIGHT\\n");
                                break;
        }
        }
        endwin();
        return 0;
}

curse界面的运行结果
快速捕获键盘上下左右键。
在这里插入图片描述


贪吃蛇的制作

1.地图规划

设置一个20x20的地图
地图上下边界用 –
地图左右边界用 |


地图代码:
#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 Chengzi!");
                }
        }
}
int main()
{
        initNcurse();
        gamePic();
        getch();
        endwin();
        return 0;
}



地图效果图:

以上是关于Linux环境下,基于Ncurse图形库贪吃蛇小游戏(上)的主要内容,如果未能解决你的问题,请参考以下文章

Linux环境下,基于Ncurse图形库贪吃蛇小游戏(上)

Linux环境下,基于Ncurse图形库贪吃蛇小游戏(上)

Linux环境下,基于Ncurse图形库贪吃蛇小游戏(下)

Linux环境下,基于Ncurse图形库贪吃蛇小游戏(下)

2021-10-18 Python 使用curses库贪吃蛇小游戏走过的坑

小项目特供 贪吃蛇游戏(基于C语言)