Linux环境下基于Ncurse图形库的贪吃蛇小游戏
这个小游戏的意义?
这个小游戏对C语言基础、数据结构链表基础、C变量、流程控制、函数、指针、结构体等有一个很好的知识汇总学习。也是对Linux基础操作的一个简单学习。 linux环境下代码如何编写,如何编译,如何运行,如何简单的创建程序和文件夹。有利于后续的Linux系统编程的学习
这个小游戏是对C语言基础和Linux系统编程的学习起到一个承上启下的作用。
为什么要基于Ncurse图形库? 因为Ncurses有可以快速获取键盘的输入,用于控制蛇身的移动,按键响应快速。
Ncurses的使用方法:
#include <curses.h>
initscr();
printw("Hello Ncurses\n");
getch();
endwin();
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;
}
地图效果图:
|