ANIM_DURATION added #12; ASCII Hangman finished, reduced tries to 5
This commit is contained in:
21
hangman.c
21
hangman.c
@@ -88,6 +88,7 @@ int main(int argc, char **argv) {
|
|||||||
startGame(gs);
|
startGame(gs);
|
||||||
|
|
||||||
getch();
|
getch();
|
||||||
|
clear();
|
||||||
free(gs);
|
free(gs);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -116,10 +117,10 @@ void showStartScreen(game_state *gs) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void updateScreen(game_state *gs) {
|
void updateScreen(game_state *gs) {
|
||||||
mvprintw(1, 1, "Remaining wrong guesses: %i", (gs->allowedMoves - gs->moves));
|
mvprintw(0, 1, "Remaining wrong guesses: %i", (gs->allowedMoves - gs->moves));
|
||||||
mvprintw(gs->maxy - 1, 1, "Press ctrl + c to exit.");
|
mvprintw(gs->maxy - 1, 1, "Press ctrl + c to exit.");
|
||||||
drawGuessWord(gs);
|
drawGuessWord(gs);
|
||||||
mvprintw(2, 1, "Wrong characters: %s", gs->wrongCharacters);
|
mvprintw(1, 1, "Wrong characters: %s", gs->wrongCharacters);
|
||||||
refresh();
|
refresh();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -133,7 +134,7 @@ void initCoordinates(game_state *gs) {
|
|||||||
|
|
||||||
void initGuessWord(game_state *gs, char *filename) {
|
void initGuessWord(game_state *gs, char *filename) {
|
||||||
int i;
|
int i;
|
||||||
mvprintw(1, 1, "Please enter your word: ");
|
mvprintw(0, 1, "Please enter your word: ");
|
||||||
if (strlen(gs->guessWord) == 0) { /* Word can be set by arguments */
|
if (strlen(gs->guessWord) == 0) { /* Word can be set by arguments */
|
||||||
if (strlen(filename) == 0) {
|
if (strlen(filename) == 0) {
|
||||||
/* Manual input */
|
/* Manual input */
|
||||||
@@ -297,7 +298,12 @@ int checkWin(game_state *gs) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void printGameStats(game_state *gs) {
|
void printGameStats(game_state *gs) {
|
||||||
clear();
|
//clear();
|
||||||
|
int i;
|
||||||
|
for (i = 0; i < gs->maxx; i++) {
|
||||||
|
mvprintw(gs->centery, i, " ");
|
||||||
|
mvprintw(gs->centery + 1, i, " ");
|
||||||
|
}
|
||||||
if (gs->moves >= gs->allowedMoves) {
|
if (gs->moves >= gs->allowedMoves) {
|
||||||
mvprintw(gs->centery, gs->centerx - 10, "Game lost. Solution:");
|
mvprintw(gs->centery, gs->centerx - 10, "Game lost. Solution:");
|
||||||
mvprintw(gs->centery + 1, gs->centerx - (gs->wordLength / 2), gs->guessWord);
|
mvprintw(gs->centery + 1, gs->centerx - (gs->wordLength / 2), gs->guessWord);
|
||||||
@@ -375,15 +381,14 @@ void trollHitScreen(game_state *gs, int hits) {
|
|||||||
mvprintw(5, centerDiff(gs->centerx, strings[i]), strings[i]);
|
mvprintw(5, centerDiff(gs->centerx, strings[i]), strings[i]);
|
||||||
refresh();
|
refresh();
|
||||||
/* sleep and vanish */
|
/* sleep and vanish */
|
||||||
int j = 0, k = gs->maxx, sec, usec;
|
int j = 0, k = gs->maxx, usec;
|
||||||
sec = 1;
|
usec = (ANIM_DURATION * 1000000) / gs->maxx;
|
||||||
usec = (sec * 1000000) / gs->maxx;
|
|
||||||
|
|
||||||
for (j = 0; j <= gs->centerx; j++, k--) {
|
for (j = 0; j <= gs->centerx; j++, k--) {
|
||||||
mvprintw(5, j, "!");
|
mvprintw(5, j, "!");
|
||||||
mvprintw(5, k, "!");
|
mvprintw(5, k, "!");
|
||||||
refresh();
|
refresh();
|
||||||
usleep(usec); //8000
|
usleep(usec);
|
||||||
mvprintw(5, j, " ");
|
mvprintw(5, j, " ");
|
||||||
mvprintw(5, k, " ");
|
mvprintw(5, k, " ");
|
||||||
|
|
||||||
|
@@ -1,8 +1,9 @@
|
|||||||
/* Defined macros */
|
/* Defined macros */
|
||||||
#define DEFAULTTRIES 9
|
#define DEFAULTTRIES 6
|
||||||
#define MAXWORDLENGTH 100
|
#define MAXWORDLENGTH 100
|
||||||
#define ALPHABET 26
|
#define ALPHABET 26
|
||||||
#define ALPHABET_NUM 36
|
#define ALPHABET_NUM 36
|
||||||
|
#define ANIM_DURATION 1
|
||||||
|
|
||||||
/* Data structures */
|
/* Data structures */
|
||||||
typedef struct {
|
typedef struct {
|
||||||
|
Reference in New Issue
Block a user