From c664c70a3713ff03efb9660ee1588cab455a1749 Mon Sep 17 00:00:00 2001 From: structix Date: Thu, 4 May 2017 21:56:04 +0200 Subject: [PATCH] initAlphabet, drawAlphabet, macros added #8 --- hangman.c | 33 ++++++++++++++++++++++++++++++++- hangman.h | 5 +++++ makefile | 2 +- 3 files changed, 38 insertions(+), 2 deletions(-) diff --git a/hangman.c b/hangman.c index 9cc6fa6..068c4d4 100644 --- a/hangman.c +++ b/hangman.c @@ -71,7 +71,8 @@ int main(int argc, char **argv) { /* start game */ initGuessWord(gs, filename); - + initAlphabet(gs); + drawAlphabet(gs); startGame(gs); @@ -149,6 +150,35 @@ void initGuessWord(game_state *gs, char *filename) { clear(); //clear the screen } +void initAlphabet(game_state *gs) { + int hasNumber = 0; + int i, j; + for (i = 0; i < MAXWORDLENGTH; i++) { + if (isdigit(gs->guessWord[i]) == 0) { + hasNumber = 1; + break; + } + } + + gs->alphabet = malloc(sizeof(char) * hasNumber ? ALPHABET : ALPHABET_NUM); + + for (i = 'a', j = 0; i <= 'z'; i++, j++) { + gs->alphabet[j] = i; + } + if (hasNumber) { + j++; + for (i = 0; i < 10; i++, j++) { + gs->alphabet[j] = i; + } + } + +} + +void drawAlphabet(game_state *gs) { + int start = centerDiff(gs->centerx, gs->alphabet); + mvprintw(1, start, "%s", gs->alphabet); +} + void toLowerCase(char *str) { int length = strlen(str); int i; @@ -342,5 +372,6 @@ void trollHitScreen(game_state *gs, int hits) { } } } + diff --git a/hangman.h b/hangman.h index a7e752c..823b602 100644 --- a/hangman.h +++ b/hangman.h @@ -1,6 +1,8 @@ /* Defined macros */ #define DEFAULTTRIES 9 #define MAXWORDLENGTH 100 +#define ALPHABET 26 +#define ALPHABET_NUM 36 /* Data structures */ typedef struct { @@ -16,6 +18,7 @@ typedef struct { char currentWord[MAXWORDLENGTH]; char wrongCharacters[DEFAULTTRIES]; int trollEnabled; + char *alphabet; } game_state; typedef struct word { @@ -29,6 +32,8 @@ 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); void drawGuessWord(game_state *gs); int playerInput(game_state *gs); int fillCurrentWord(game_state *gs, char validchar); diff --git a/makefile b/makefile index 97c4583..c112925 100644 --- a/makefile +++ b/makefile @@ -2,7 +2,7 @@ VERSION = 1.0 -CC = /usr/bin/gcc +CC = gcc CFLAGS = -Wall -g -D_REENTRANT -DVERSION=\"$(VERSION)\" #LDFLAGS = -lm -lpthread `gtk-config --cflags` `gtk-config --libs` -lgthread LDFLAGS = -lncurses