資源簡介
用STM32開發(fā)板開發(fā)的貪吃蛇游戲,用鏈表實(shí)現(xiàn)

代碼片段和文件信息
/***************************************************************
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
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件???????9750??2012-10-30?21:22??貪吃蛇\(yùn)snake.c
?????文件???????1289??2012-10-30?15:20??貪吃蛇\(yùn)snake.h
?????目錄??????????0??2012-10-31?12:35??貪吃蛇
-----------?---------??----------?-----??----
????????????????11039????????????????????3
評(píng)論
共有 條評(píng)論