1. 项目演示(132.1)
承上启下:
- 上:C语言基础、数据结构链表基础,C变量、流程控制、函数、指针、结构体等
- 下:Linux系统编程,文件编程、进程、线程、通信、第三方包等
2. 基础要求(133.2)
- C编程基础
- Linux基本操作
3. 为什么需要ncurse(134.3)
- gets()、scanf()、getchar() 都需要回车来执行
- ncurse按键响应及时
4. curse输入输出(审核不过/贪吃蛇)
4.1安装ncurse:
sudo apt-get install libncurses5-dev
4.2 代码
- cursedemo.c
#include <curses.h>
int main()
{
initscr();//ncurse界面的初始化函数
printw("this is a test.\n");//在ncurse模式下的printf
getch();//等待用户输入,如果没有这句话,程序就退出了,看不到运行的结果,也就是看不到上面那句话
endwin();//程序退出,调用改函数来恢复shell终端的显示,如果没有这句话,shell终端字乱码,坏掉。
return 0;
}
- cursedemo1.c
#include <curses.h>
int main()
{
char c;
initscr();
printw("Please input:\n");
c=getch();
printw("\nWhat you input is :%c\n",c);
getch();
endwin();
return 0;
}
5. ncurse上下左右键获取(135.5)
5.1 nurse的上下左右键值
5.2 代码
- cursedemo2.c
#include <curses.h>
int main()
{
//char c; //1byte 8bit 128
int key;
initscr();//ncurse界面的初始化函数
keypad(stdscr,1);//从标准的stdscr中接受功能键,1代表是接受
while(1){
key=getch();
switch(key){
/*case 0402:
printw("DOWN\n");
break;
case 0403:
printw("UP\n");
break;
case 0404:
printw("LEFT\n");
break;
case 0405:
printw("RIGHT\n");
break;*/
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;
}
6. 地图规划(136.6)
7. 地图实现一(137.7)
- snake1.c
#include <curses.h>
void initNcurse()
{
initscr();
keypad(stdscr,1);
}
void gamePic()
{
int line;
int list;
for(line=0;line<20;line++){
for(list=0;list<20;list++){
printw("##");
}
printw("\n");
}
}
int main()
{
initNcurse();
gamePic();
getch();
return 0;
}
- snake2.c
#include <curses.h>
void initNcurse()
{
initscr();
keypad(stdscr,1);
}
void gamePic()
{
int line;
int list;
for(line=0;line<20;line++){
if(line==0){
for(list=0;list<20;list++){
printw("--");
}
printw("\n");
for(list=0;list<=20;list++){
if(list==0 || list==20){
printw("|");
}
else{
printw(" ");
}
}
}
printw("\n");
}
}
int main()
{
initNcurse();
gamePic();
getch();
endwin();
return 0;
}
8. 贪吃蛇地图实现结束(138.8)
- snake3.c
#include <curses.h>
void initNcurse()
{
initscr();
keypad(stdscr,1);
}
void gamePic()
{
int line;
int list;
for(line=0;line<20;line++){
if(line==0){
for(list=0;list<20;list++){
printw("--");
}
printw("\n");
for(list=0;list<=20;list++){
if(list==0 || list==20){
printw("|");
}
else{
printw(" ");
}
}
printw("\n");
}
if(line>0 && line<=19){
for(list=0;list<=20;list++){
if(list==0 || list==20){
printw("|");
}
else{
printw(" ");
}
}
printw("\n");
}
if(line==19){
for(list=0;list<20;list++){
printw("--");
}
printw("\nBy Jessie\n");
}
}
}
int main()
{
initNcurse();
gamePic();
getch();
endwin();
return 0;
}
9. 贪吃蛇地图优化及算法说明(139.9)
- snake3.c
#include <curses.h>
void initNcurse()
{
initscr();
keypad(stdscr,1);
}
void gamePic()
{
int line;
int list;
for(line=0;line<20;line++){
if(line==0){
for(list=0;list<20;list++){
printw("--");
}
printw("\n");
for(list=0;list<=20;list++){
if(list==0 || list==20){
printw("|");
}
else{
printw(" ");
}
}
printw("\n");
}
if(line>0 && line<=19){
for(list=0;list<=20;list++){
if(list==0 || list==20){
printw("|");
}
else{
printw(" ");
}
}
printw("\n");
}
if(line==19){
for(list=0;list<20;list++){
printw("--");
}
printw("\nBy Jessie\n");
}
}
}
int main()
{
initNcurse();
gamePic();
getch();
endwin();
return 0;
}