贪吃蛇(三)绘制蛇身
2023-12-20 23:30:25
绘制蛇身的逻辑不难,存储上面使用结构体。
- 第一行和第十九行绘制
--
- 其它行,绘制
|
,分别在头尾处。
(1) 扫描蛇身,如果扫描到则绘制[]
。
(2) 扫描蛇身,如果扫描不到则绘制空白。
#include"curses.h"
struct SnakeNode
{
int row;
int col;
struct SnakeNode* next;
};
struct SnakeNode node1 = {2,2,NULL};
struct SnakeNode node2 = {2,3,NULL};
struct SnakeNode node3 = {2,4,NULL};
void cursesinit()
{
initscr();
keypad(stdscr,1);
}
int hasSnake(int row,int col)
{
struct SnakeNode* p = &node1;
while(p!=NULL)
{
if(row == p->row && col == p->col)
return 1;
p = p->next;
}
return 0;
}
void mapinit()
{
int row;
int col;
for(row = 0;row < 20;row++)
{
// one
if(row == 0 || row == 19)
{
for(col = 0;col < 20;col++)
printw("----");
}
else if(hasSnake(row,col))
{
printw("[]");
}
// two
else
{
printw("|");
for(col = 0;col < 20-2;col++)
{
if(hasSnake(row,col))
{
printw("[]");
printw(" ");
}
else
{
printw(" "); // 4 spaces;
}
}
printw(" |"); // 4 + 3 len;
}
printw("\n");
}
getch();
}
int main()
{
node1.next = &node2;
node2.next = &node3;
cursesinit();
mapinit();
endwin();
return 0;
}
学习打卡
文章来源:https://blog.csdn.net/qq_17802895/article/details/135119137
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!