/* Defined macros */ #define DEFAULTTRIES 9 #define MAXWORDLENGTH 100 #define ALPHABET 26 #define ALPHABET_NUM 36 /* Data structures */ typedef struct { int moves; //Only wrong moves int allowedMoves; int guesses; //All guesses included valid moves int maxy; int maxx; int centery; int centerx; char guessWord[MAXWORDLENGTH]; int wordLength; char currentWord[MAXWORDLENGTH]; char wrongCharacters[DEFAULTTRIES]; int trollEnabled; char *alphabet; } game_state; typedef struct word { char character; struct word *next; } word; /* Function prototypes */ void quitProgram(void); void updateScreen(game_state *gs); void initCoordinates(game_state *gs); void initGuessWord(game_state *gs, char *filename); void initAlphabet(game_state *gs); void drawAlphabet(game_state *gs, char usedchar); void drawGuessWord(game_state *gs); int playerInput(game_state *gs); int fillCurrentWord(game_state *gs, char validchar); int stackWrongCharacter(game_state *gs, char wrongchar); int checkWin(game_state *gs); void printGameStats(game_state *gs); void toLowerCase(char *str); void showStartScreen(game_state *gs); void startGame(game_state *gs); void showHelp(game_state *gs); int centerDiff(int coordinate, char *str); void readRandomLine(char *file, char *result); void trollHitScreen(game_state *gs, int hits); void drawFigure(game_state *gs, int drawNext);