Linux环境下,基于Ncurse图形库贪吃蛇小游戏(上)
Posted 橙子果果
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux环境下,基于Ncurse图形库贪吃蛇小游戏(上)相关的知识,希望对你有一定的参考价值。
Linux环境下基于Ncurse图形库的贪吃蛇小游戏
这个小游戏的意义?
这个小游戏对C语言基础、数据结构链表基础、C变量、流程控制、函数、指针、结构体等有一个很好的知识汇总学习。也是对Linux基础操作的一个简单学习。
linux环境下代码如何编写,如何编译,如何运行,如何简单的创建程序和文件夹。有利于后续的Linux系统编程的学习
这个小游戏是对C语言基础和Linux系统编程的学习起到一个承上启下的作用。
为什么要基于Ncurse图形库?
因为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图形库贪吃蛇小游戏(上)的主要内容,如果未能解决你的问题,请参考以下文章