我们之前的操作成功显示出了地图,但并不包括贪吃蛇的身子和食物。
我们为贪吃蛇设置结构体:
贪吃蛇身子节点
1.行坐标
2.列坐标
3.下一个节点的位置(地址/指针)
当然,我们使用链表构建贪吃蛇的身体。
struct Snake
{
int hang;
int lie;
struct Snake * next;
}
贪吃蛇身子显示
如何设置蛇身子的一个节点:
设该节点:行坐标2,列坐标2
if(hang == x.hang && lie == x.lie)
{
printw("[]");
}
即扫描时如果行节点与贪吃蛇的行节点相同并且列节点与贪吃蛇的列节点相同,那么就打印贪吃蛇的身体。
#include <curses.h>
struct Snake
{
int hang;
int lie;
struct Snake * next;
};
struct Snake node1 = {2,2,NULL};
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 if(node1.hang == hang && node1.lie == lie) printw("[]");
else printw(" ");
}
printw("\n");
}
if(hang == 19)
{
for(lie = 0;lie < 20;lie ++)
{
printw("--");
}
printw("\n");
printw("by beiweiqiuAC");
}
}
}
int main()
{
initNcurse();
gamePic();
getch();//防止程序退出
endwin();
return 0;
}
在终端上运行该程序可以发现地图上已经成功显示了贪吃蛇的一个身体节点