initAlphabet, drawAlphabet, macros added #8
This commit is contained in:
33
hangman.c
33
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) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
@@ -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);
|
||||
|
Reference in New Issue
Block a user