/* * 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_ */