diff options
| author | Mario Kilies <MarioKilies@GMX.net> | 2011-01-05 01:24:48 +0100 |
|---|---|---|
| committer | Mario Kilies <MarioKilies@GMX.net> | 2011-01-05 01:24:48 +0100 |
| commit | fc1b80c1422af16310bb1f38c59b255a2fc5daf7 (patch) | |
| tree | 3781506c1c8bb8fa5d17171724cca754c6b15073 | |
| parent | b79a48243ff05d9cac333627500c3bd93937e543 (diff) | |
| parent | 5846e235529688c11d6d95395e7e4c4d3ccaa3ba (diff) | |
Merge branch 'master' of ssh://schnippi@wg.reiner-h.de:30022/data/src/oxen
| -rw-r--r-- | src/display.c | 1 | ||||
| -rw-r--r-- | src/game.c | 49 | ||||
| -rw-r--r-- | src/game.h | 2 |
3 files changed, 52 insertions, 0 deletions
diff --git a/src/display.c b/src/display.c index a0c9ff9..8ed3d73 100644 --- a/src/display.c +++ b/src/display.c @@ -110,6 +110,7 @@ void display_init(void) } raw(); // Line buffering disabled keypad(stdscr, true); // We get F1, F2 etc.. + nodelay(stdscr, true); // Non-blocking input noecho(); // Don't echo() while we do getch curs_set(0); // Make the cursor invisible @@ -3,6 +3,7 @@ #include <stdlib.h> #include <stdbool.h> #include <time.h> +#include <unistd.h> void init_mainstack(card* stack, const uint32_t size) { @@ -26,6 +27,8 @@ void start_game(void) bool running = true; int cards = MAX_CARD - MIN_CARD + 1; card mainstack[cards]; + gamestate state = STATE_DEALCARDS; + int input; srand(time(0)); @@ -34,7 +37,53 @@ void start_game(void) // main game loop while(running) { + input = getch(); // ERR if no key pressed + switch(state) + { + case STATE_DEALCARDS: // deal cards to players + // dealcards(mainstack); + state = STATE_SELECTCARD; + break; + case STATE_SELECTCARD: // player has to select own card + // if(input != ERR) + // cardselect(input); + // if(input == '\n') + // { + // get_selected_card(); + // state = STATE_WAIT_OPPONENTCARDS + // } + break; + case STATE_WAIT_OPPONENTCARDS: // wait until all opponents have selected their cards + // if(opponent_cards_rdy()) + // { + // if(lowest_card_player() == own_id) + // state = STATE_SELECTSTACK; + // else + // state = STATE_WAIT_OPPONENTSTACK; + // } + break; + case STATE_WAIT_OPPONENTSTACK: // wait until opponent has selected a stack + break; + case STATE_SELECTSTACK: // player has to select a stack + //if(input != ERR) + // stackselect(input); + //if(input == '\n') + //{ + // get_selected_stack(); + // update_stack(); + // + // if(players_remaining()) + // state = STATE_WAIT_OPPONENTSTACK; + // else + // state = STATE_SELECTCARD; + //} + break; + default: + assert(false); // should never happen + } + + usleep(1000); } } @@ -4,6 +4,8 @@ #define MIN_CARD 1 #define MAX_CARD 104 +enum gamestate { STATE_DEALCARDS, STATE_SELECTCARD, STATE_WAIT_OPPONENTCARDS, STATE_WAIT_OPPONENTSTACK, STATE_SELECTSTACK } + void start_game(void); #endif // OXEN_GAME_H |
