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 */
|
/* start game */
|
||||||
initGuessWord(gs, filename);
|
initGuessWord(gs, filename);
|
||||||
|
initAlphabet(gs);
|
||||||
|
drawAlphabet(gs);
|
||||||
startGame(gs);
|
startGame(gs);
|
||||||
|
|
||||||
|
|
||||||
@@ -149,6 +150,35 @@ void initGuessWord(game_state *gs, char *filename) {
|
|||||||
clear(); //clear the screen
|
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) {
|
void toLowerCase(char *str) {
|
||||||
int length = strlen(str);
|
int length = strlen(str);
|
||||||
int i;
|
int i;
|
||||||
@@ -344,3 +374,4 @@ void trollHitScreen(game_state *gs, int hits) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@@ -1,6 +1,8 @@
|
|||||||
/* Defined macros */
|
/* Defined macros */
|
||||||
#define DEFAULTTRIES 9
|
#define DEFAULTTRIES 9
|
||||||
#define MAXWORDLENGTH 100
|
#define MAXWORDLENGTH 100
|
||||||
|
#define ALPHABET 26
|
||||||
|
#define ALPHABET_NUM 36
|
||||||
|
|
||||||
/* Data structures */
|
/* Data structures */
|
||||||
typedef struct {
|
typedef struct {
|
||||||
@@ -16,6 +18,7 @@ typedef struct {
|
|||||||
char currentWord[MAXWORDLENGTH];
|
char currentWord[MAXWORDLENGTH];
|
||||||
char wrongCharacters[DEFAULTTRIES];
|
char wrongCharacters[DEFAULTTRIES];
|
||||||
int trollEnabled;
|
int trollEnabled;
|
||||||
|
char *alphabet;
|
||||||
} game_state;
|
} game_state;
|
||||||
|
|
||||||
typedef struct word {
|
typedef struct word {
|
||||||
@@ -29,6 +32,8 @@ void quitProgram(void);
|
|||||||
void updateScreen(game_state *gs);
|
void updateScreen(game_state *gs);
|
||||||
void initCoordinates(game_state *gs);
|
void initCoordinates(game_state *gs);
|
||||||
void initGuessWord(game_state *gs, char *filename);
|
void initGuessWord(game_state *gs, char *filename);
|
||||||
|
void initAlphabet(game_state *gs);
|
||||||
|
void drawAlphabet(game_state *gs);
|
||||||
void drawGuessWord(game_state *gs);
|
void drawGuessWord(game_state *gs);
|
||||||
int playerInput(game_state *gs);
|
int playerInput(game_state *gs);
|
||||||
int fillCurrentWord(game_state *gs, char validchar);
|
int fillCurrentWord(game_state *gs, char validchar);
|
||||||
|
2
makefile
2
makefile
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
|
|
||||||
VERSION = 1.0
|
VERSION = 1.0
|
||||||
CC = /usr/bin/gcc
|
CC = gcc
|
||||||
CFLAGS = -Wall -g -D_REENTRANT -DVERSION=\"$(VERSION)\"
|
CFLAGS = -Wall -g -D_REENTRANT -DVERSION=\"$(VERSION)\"
|
||||||
#LDFLAGS = -lm -lpthread `gtk-config --cflags` `gtk-config --libs` -lgthread
|
#LDFLAGS = -lm -lpthread `gtk-config --cflags` `gtk-config --libs` -lgthread
|
||||||
LDFLAGS = -lncurses
|
LDFLAGS = -lncurses
|
||||||
|
Reference in New Issue
Block a user