20
figures.h
20
figures.h
@@ -1,15 +1,15 @@
|
|||||||
const char base_figure[6][8] = {{"======="},\
|
const char base_figure[6][8] = {{"======="}, \
|
||||||
{"I "},\
|
{"I "}, \
|
||||||
{"I "},\
|
{"I "}, \
|
||||||
{"I "},\
|
{"I "}, \
|
||||||
{"I "},\
|
{"I "}, \
|
||||||
{"I\\ "}};
|
{"I\\ "}};
|
||||||
|
|
||||||
const char figure[6][5] = {{" O "},\
|
const char figure[6][5] = {{" O "}, \
|
||||||
{" I "},\
|
{" I "}, \
|
||||||
{"\\I "},\
|
{"\\I "}, \
|
||||||
{"\\I/"},\
|
{"\\I/"}, \
|
||||||
{"/ "},\
|
{"/ "}, \
|
||||||
{"/ \\"}};
|
{"/ \\"}};
|
||||||
|
|
||||||
|
|
||||||
|
27
hangman.c
27
hangman.c
@@ -84,7 +84,7 @@ int main(int argc, char **argv) {
|
|||||||
initGuessWord(gs, filename);
|
initGuessWord(gs, filename);
|
||||||
initAlphabet(gs);
|
initAlphabet(gs);
|
||||||
drawAlphabet(gs, 0);
|
drawAlphabet(gs, 0);
|
||||||
drawFigure(gs);
|
drawFigure(gs, 0);
|
||||||
startGame(gs);
|
startGame(gs);
|
||||||
|
|
||||||
getch();
|
getch();
|
||||||
@@ -278,6 +278,7 @@ int stackWrongCharacter(game_state *gs, char wrongchar) {
|
|||||||
if (!alreadyUsed) {
|
if (!alreadyUsed) {
|
||||||
gs->wrongCharacters[strlen(gs->wrongCharacters)] = wrongchar;
|
gs->wrongCharacters[strlen(gs->wrongCharacters)] = wrongchar;
|
||||||
drawAlphabet(gs, wrongchar);
|
drawAlphabet(gs, wrongchar);
|
||||||
|
drawFigure(gs, 1);
|
||||||
return 1;
|
return 1;
|
||||||
} else {
|
} else {
|
||||||
return 0;
|
return 0;
|
||||||
@@ -374,12 +375,15 @@ 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 - 1;
|
int j = 0, k = gs->maxx, sec, usec;
|
||||||
|
sec = 1;
|
||||||
|
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(8000);
|
usleep(usec); //8000
|
||||||
mvprintw(5, j, " ");
|
mvprintw(5, j, " ");
|
||||||
mvprintw(5, k, " ");
|
mvprintw(5, k, " ");
|
||||||
|
|
||||||
@@ -388,17 +392,24 @@ void trollHitScreen(game_state *gs, int hits) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void drawFigure(game_state *gs) {
|
void drawFigure(game_state *gs, int drawNext) {
|
||||||
int row = 6;
|
int row = 6;
|
||||||
int length = 10;
|
int length = 8;
|
||||||
int i;
|
int i;
|
||||||
static init = 0;
|
static int state = 0;
|
||||||
if (init) {
|
if (!state) {
|
||||||
for (i = 0; i < row; i++) {
|
for (i = 0; i < row; i++) {
|
||||||
mvprintw(i, gs->maxx - length - 1, "%s", base_figure[i]);
|
mvprintw(i, gs->maxx - length - 1, "%s", base_figure[i]);
|
||||||
}
|
}
|
||||||
init = 1;
|
state++;
|
||||||
|
} else {
|
||||||
|
/* Draw the stages */
|
||||||
|
if (drawNext) {
|
||||||
|
mvprintw(stages[state - 1] + 1, gs->maxx - 4, "%s", figure[state - 1]);
|
||||||
|
state++;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -47,4 +47,4 @@ void showHelp(game_state *gs);
|
|||||||
int centerDiff(int coordinate, char *str);
|
int centerDiff(int coordinate, char *str);
|
||||||
void readRandomLine(char *file, char *result);
|
void readRandomLine(char *file, char *result);
|
||||||
void trollHitScreen(game_state *gs, int hits);
|
void trollHitScreen(game_state *gs, int hits);
|
||||||
void drawFigure(game_state *gs);
|
void drawFigure(game_state *gs, int drawNext);
|
||||||
|
Reference in New Issue
Block a user