Some changes.
This commit is contained in:
parent
802350e051
commit
ce8400740a
15
src/game.c
15
src/game.c
@ -11,7 +11,6 @@
|
|||||||
#include "deck.h"
|
#include "deck.h"
|
||||||
#include "draw.h"
|
#include "draw.h"
|
||||||
#include "cursor.h"
|
#include "cursor.h"
|
||||||
#include "curses.h"
|
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
|
|
||||||
static int foundation_begin_x(int x) {
|
static int foundation_begin_x(int x) {
|
||||||
@ -22,7 +21,7 @@ static int foundation_begin_x(int x) {
|
|||||||
case 3: return(FOUNDATION_3_BEGIN_X);
|
case 3: return(FOUNDATION_3_BEGIN_X);
|
||||||
default:
|
default:
|
||||||
endwin();
|
endwin();
|
||||||
end_game();
|
game_end();
|
||||||
assert(false && "invalid stack");
|
assert(false && "invalid stack");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -38,7 +37,7 @@ static int maneuvre_begin_x(int x) {
|
|||||||
case 6: return(MANEUVRE_6_BEGIN_X);
|
case 6: return(MANEUVRE_6_BEGIN_X);
|
||||||
default:
|
default:
|
||||||
endwin();
|
endwin();
|
||||||
end_game();
|
game_end();
|
||||||
assert(false && "maneuvre_begin_x called x < 0 || x > 6");
|
assert(false && "maneuvre_begin_x called x < 0 || x > 6");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -160,13 +159,9 @@ static void deal_cards(struct deck *deck) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void initialize_game() {
|
void game_init() {
|
||||||
clear();
|
|
||||||
refresh();
|
|
||||||
|
|
||||||
allocate_cursor(&cursor);
|
allocate_cursor(&cursor);
|
||||||
initialize_cursor(cursor);
|
initialize_cursor(cursor);
|
||||||
|
|
||||||
allocate_deck(&deck);
|
allocate_deck(&deck);
|
||||||
initialize_deck(deck);
|
initialize_deck(deck);
|
||||||
|
|
||||||
@ -188,7 +183,7 @@ void initialize_game() {
|
|||||||
draw_deck(deck);
|
draw_deck(deck);
|
||||||
}
|
}
|
||||||
|
|
||||||
void end_game() {
|
void game_end() {
|
||||||
free_deck(deck);
|
|
||||||
free_cursor(cursor);
|
free_cursor(cursor);
|
||||||
|
free_deck(deck);
|
||||||
}
|
}
|
||||||
|
@ -35,7 +35,7 @@ bool maneuvre_stack(struct stack *);
|
|||||||
bool valid_move(struct stack *, struct stack *);
|
bool valid_move(struct stack *, struct stack *);
|
||||||
void move_card(struct stack **, struct stack **);
|
void move_card(struct stack **, struct stack **);
|
||||||
void greet_player();
|
void greet_player();
|
||||||
void initialize_game();
|
void game_init();
|
||||||
void end_game();
|
void game_end();
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -6,7 +6,6 @@
|
|||||||
#include "game.h"
|
#include "game.h"
|
||||||
#include "cursor.h"
|
#include "cursor.h"
|
||||||
#include "draw.h"
|
#include "draw.h"
|
||||||
#include "curses.h"
|
|
||||||
|
|
||||||
static struct stack **cursor_stack(struct cursor *cursor) {
|
static struct stack **cursor_stack(struct cursor *cursor) {
|
||||||
if (cursor->y == CURSOR_BEGIN_Y) {
|
if (cursor->y == CURSOR_BEGIN_Y) {
|
||||||
@ -20,7 +19,7 @@ static struct stack **cursor_stack(struct cursor *cursor) {
|
|||||||
case CURSOR_INVALID_SPOT_X: return(NULL);
|
case CURSOR_INVALID_SPOT_X: return(NULL);
|
||||||
default:
|
default:
|
||||||
endwin();
|
endwin();
|
||||||
end_game();
|
game_end();
|
||||||
assert(false && "invalid stack");
|
assert(false && "invalid stack");
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@ -34,7 +33,7 @@ static struct stack **cursor_stack(struct cursor *cursor) {
|
|||||||
case CURSOR_MANEUVRE_6_X: return(&(deck->maneuvre[6]));
|
case CURSOR_MANEUVRE_6_X: return(&(deck->maneuvre[6]));
|
||||||
default:
|
default:
|
||||||
endwin();
|
endwin();
|
||||||
end_game();
|
game_end();
|
||||||
assert(false && "invalid stack");
|
assert(false && "invalid stack");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -122,7 +121,7 @@ static void handle_card_movement(struct cursor *cursor) {
|
|||||||
case 'q':
|
case 'q':
|
||||||
case 'Q':
|
case 'Q':
|
||||||
endwin();
|
endwin();
|
||||||
end_game();
|
game_end();
|
||||||
exit(0);
|
exit(0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -9,15 +9,14 @@ const char *program_name;
|
|||||||
|
|
||||||
int main(int argc, const char *argv[]) {
|
int main(int argc, const char *argv[]) {
|
||||||
program_name = *argv;
|
program_name = *argv;
|
||||||
int key;
|
|
||||||
|
|
||||||
setlocale(LC_ALL, "en_US.utf-8"); /* Support unicode characters. */
|
setlocale(LC_ALL, ""); /* Support unicode characters. */
|
||||||
initscr();
|
initscr();
|
||||||
raw(); /* Disable line buffers. */
|
raw(); /* Disable line buffers. */
|
||||||
noecho();
|
noecho();
|
||||||
keypad(stdscr, TRUE); /* Enable arrow keys. */
|
keypad(stdscr, TRUE); /* Give us keyboard key symbols. */
|
||||||
start_color(); /* I want colors. */
|
start_color();
|
||||||
curs_set(FALSE); /* Invisible cursor. */
|
curs_set(FALSE); /* We have our own cursor. */
|
||||||
set_escdelay(0);
|
set_escdelay(0);
|
||||||
assume_default_colors(COLOR_WHITE, COLOR_GREEN);
|
assume_default_colors(COLOR_WHITE, COLOR_GREEN);
|
||||||
init_pair(1, COLOR_BLACK, COLOR_WHITE);
|
init_pair(1, COLOR_BLACK, COLOR_WHITE);
|
||||||
@ -27,27 +26,29 @@ int main(int argc, const char *argv[]) {
|
|||||||
|
|
||||||
draw_greeting();
|
draw_greeting();
|
||||||
|
|
||||||
while (key != KEY_SPACEBAR) {
|
int key;
|
||||||
|
do {
|
||||||
switch (key = getch()) {
|
switch (key = getch()) {
|
||||||
case KEY_SPACEBAR:
|
case KEY_SPACEBAR:
|
||||||
initialize_game();
|
clear();
|
||||||
|
refresh();
|
||||||
|
game_init();
|
||||||
break;
|
break;
|
||||||
case 'q':
|
case 'q':
|
||||||
case 'Q':
|
case 'Q':
|
||||||
endwin();
|
endwin();
|
||||||
return(0);
|
return(0);
|
||||||
}
|
}
|
||||||
}
|
} while (key != KEY_SPACEBAR);
|
||||||
|
|
||||||
while (1) {
|
do {
|
||||||
if ((key = getch()) == 'q' || key == 'Q') {
|
if ((key = getch()) == 'q' || key == 'Q') {
|
||||||
endwin();
|
endwin();
|
||||||
end_game();
|
game_end();
|
||||||
return(0);
|
|
||||||
} else {
|
} else {
|
||||||
handle_keyboard_event(key);
|
handle_keyboard_event(key);
|
||||||
}
|
}
|
||||||
}
|
} while (key != 'q' && key != 'Q');
|
||||||
|
|
||||||
return(0);
|
return(0);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user