贪吃蛇(三)绘制蛇身

绘制蛇身的逻辑不难,存储上面使用结构体。

  1. 第一行和第十九行绘制--
  2. 其它行,绘制|,分别在头尾处。
    (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;
}

学习打卡

在这里插入图片描述
在这里插入图片描述

相关推荐

  1. 贪吃小游戏

    2023-12-21 15:08:04       36 阅读
  2. 贪吃游戏

    2023-12-21 15:08:04       27 阅读
  3. python贪吃

    2023-12-21 15:08:04       35 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-21 15:08:04       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-21 15:08:04       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-21 15:08:04       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-21 15:08:04       20 阅读

热门阅读

  1. 【AI-1】卷积神经网络

    2023-12-21 15:08:04       28 阅读
  2. 创建局域网git裸仓库

    2023-12-21 15:08:04       35 阅读
  3. Shell脚本应用(二)

    2023-12-21 15:08:04       37 阅读
  4. Docker Swarm集群的深度总结

    2023-12-21 15:08:04       37 阅读
  5. c# 使用OpenCV

    2023-12-21 15:08:04       37 阅读
  6. Vue3使用 xx UI解决布局高度自适应

    2023-12-21 15:08:04       44 阅读
  7. MySQL8_rpm方式安装过程中常见问题处理

    2023-12-21 15:08:04       35 阅读
  8. 拾玖[19],拟合线,函数FitLineContourXld

    2023-12-21 15:08:04       40 阅读
  9. PHP函数里面写JQ CSS HTML的写法案例

    2023-12-21 15:08:04       28 阅读
  10. 随心玩玩(十一)Selenium从入门到入土

    2023-12-21 15:08:04       42 阅读
  11. mysql的慢查询日志使用步骤

    2023-12-21 15:08:04       40 阅读
  12. Android app发送日志到Elastic Search

    2023-12-21 15:08:04       50 阅读