55 lines
1.1 KiB
C
55 lines
1.1 KiB
C
/*
|
|
* snake.h
|
|
*
|
|
* Created on: Jul 10, 2025
|
|
* Author: user
|
|
*/
|
|
|
|
#ifndef SRC_SNAKE_H_
|
|
#define SRC_SNAKE_H_
|
|
|
|
|
|
#include "main.h"
|
|
extern osMutexId_t displayHandle;
|
|
extern osMessageQueueId_t pressesHandle;
|
|
// Flash storage address for highscore
|
|
#define FLASH_USER_ADDR ((uint32_t)0x0803F000) // Adjusted to your sector layout
|
|
|
|
// Highscore flash functions
|
|
void Flash_Write_HighScore(uint32_t highscore);
|
|
uint32_t Flash_Read_HighScore(void);
|
|
|
|
// Snake movement direction enum
|
|
enum Direction {
|
|
STOP = 0, LEFT, RIGHT, UP, DOWN
|
|
};
|
|
|
|
// Snake structure definition
|
|
struct Snake {
|
|
int x, y;
|
|
int fruitCordX, fruitCordY;
|
|
int playerScore;
|
|
int TailX[100], TailY[100];
|
|
int TailLen;
|
|
enum Direction Dir;
|
|
int gamesizewidth;
|
|
int gamesizeheight;
|
|
int TailPendingDeletionX;
|
|
int TailPendingDeletionY;
|
|
int TailGrowPending;
|
|
int isGameOver;
|
|
};
|
|
|
|
// External instance of the snake object
|
|
extern struct Snake snake;
|
|
|
|
|
|
// Game functions
|
|
void GameInit(void);
|
|
void UpdateGame(void);
|
|
void GameRender(void);
|
|
int isGameOver();
|
|
|
|
|
|
#endif /* SRC_SNAKE_H_ */
|