• 大小: 3KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-16
  • 语言: 其他
  • 标签: STM32  贪吃蛇  

资源简介

用STM32开发板开发的贪吃蛇游戏,用链表实现

资源截图

代码片段和文件信息

/***************************************************************
Snake 
****************************************************************/
#include “snake.h“

/* Private variables ---------------------------------------------------------*/
SnakeNode *pSnakeHead;
SnakeNode *stRandNode;
volatile Direction CurrentDir=UP;
volatile Direction NewDir;
extern volatile FlagStatus bIntrFlag;
extern volatile uint16_t count;
static uint8_t score=0;
volatile FlagStatus bReadPos1Flag = RESET;
volatile FlagStatus bReadPos0Flag = RESET;
volatile FlagStatus bEnReadFlag = RESET;
extern volatile FlagStatus bEnDirFlag;
extern volatile FlagStatus bRunFlag;
extern volatile uint32_t OS_TimeMS;
uint16_t Xpos[2]Ypos[2];

/* Private function prototypes -----------------------------------------------*/


/*******************************************************************************
* Function Name  : SnakeListInit
* Description    : Initialize the SnakeList with 2 SnakeNode
* Input          : SnakeList
* Output         : None
* Return         : None
*******************************************************************************/
void SnakeListInit(void)

  SnakeNode *stSnakeNode1=(SnakeList)malloc(sizeof(SnakeNode));
      SnakeNode *stSnakeNode2=(SnakeList)malloc(sizeof(SnakeNode));
  stRandNode = (SnakeList)malloc(sizeof(SnakeNode));
  pSnakeHead = (SnakeList)malloc(sizeof(SnakeNode));
  stSnakeNode1->x = 20;
  stSnakeNode1->y = 30;
  stSnakeNode1->color = GUI_BLACK;
  stSnakeNode1->next =stSnakeNode2;

  stSnakeNode2->x = 20;
  stSnakeNode2->y = 29;
  stSnakeNode2->color = GUI_RED;
  stSnakeNode2->next = NULL;  
  
  pSnakeHead->next= stSnakeNode1;
  stRandNode->x = 20;
  stRandNode->y = 20;
  stRandNode->color = GUI_BLUE;
  //DrawNode(stRandNode);     
}
/*******************************************************************************
* Function Name  : DrawPoint
* Description    : Draw a Point  
* Input          : SnakeNode nodeBitOperation Action
* Output         : None
* Return         : None
*******************************************************************************/
void DrawNode(SnakeNode *nodeBitOperation Action)
{
uint8_t ij;
if(node->x > RECT_XSIZE || node->y > RECT_YSIZE)return ;
if(Action==DRAW)
{
GUI_SetColor(node->color);
for(i=0;i for(j=0;j GUI_DrawPoint(node->x*LINEWIDTH+inode->y*LINEWIDTH+j+16);
}
else 
{
GUI_SetColor(GUI_GRAY);
for(i=0;i for(j=0;j GUI_DrawPoint(node->x*LINEWIDTH+inode->y*LINEWIDTH+j+16);
}
}

/*******************************************************************************
* Function Name  : DrawSnake
* Description    : Draw the Snake
* Input          : SnakeAction
* Output         : None
* Return         : None
*******************************************************************************/
void DrawSnake(SnakeNode *SnakeBitOperation Act

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       9750  2012-10-30 21:22  贪吃蛇\snake.c

     文件       1289  2012-10-30 15:20  贪吃蛇\snake.h

     目录          0  2012-10-31 12:35  贪吃蛇

----------- ---------  ---------- -----  ----

                11039                    3


评论

共有 条评论