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图形库贪吃蛇小游戏(上)的主要内容,如果未能解决你的问题,请参考以下文章