static unsigned usermove (void) { for (;;) { draw_panel(); int k = wgetch (_wmsg); unsigned n = parse_card_name (k); if (k == 'x' || k == KEY_F(10)) exit (EXIT_SUCCESS); else if (k == '?' || k == KEY_F(1)) instructions(); else if (k == KEY_RESIZE) initialize_windows(); else if (n >= ArraySize(c_CardNames)) waddstr (_wmsg, "I don't understand!\n"); else if (_hand[USER][n] < 1) wprintw (_wmsg, "You don't have any %s's!\n", c_CardNames[n]); else if (_hand[USER][n] >= SUITS) wprintw (_wmsg, "You have already completed a book of %s's.\n", c_CardNames[n]); else { wprintw (_wmsg, "\nYou ask me for %s. ", c_CardNames[n]); return n; } } }
/** Run registered CUnit tests using the curses interface. */ void CU_curses_run_tests(void) { setvbuf(stdout, NULL, _IONBF, 0); setvbuf(stderr, NULL, _IONBF, 0); f_szOptions = MAIN_OPTIONS; if (!initialize_windows()) { return; } if (!test_initialize()) { goto test_initialize_fail; } curses_registry_level_run(CU_get_registry()); /* THIS WAS COMMENTED OUT IN THE 1.1-1 SOURCE f_uiTotalTests = 3000; { int i; int iSucc = 0; for (i = 0; i < 3000; i++, iSucc++) { if (i && !(i%2000)) iSucc--; f_uiTestsRun = i + 1; f_uiTestsRunSuccessful = iSucc + 1; refresh_progress_window(); refresh_summary_window(); refresh_run_summary_window(); } } f_uiTestsRunSuccessful = f_uiTestsRun = 0; refresh_windows(); { int i; int iSucc = -1; for (i = 0; i < 3000; i++, iSucc++) { if (i && !(i%2000)) iSucc++; f_uiTestsRun = i + 1; f_uiTestsRunSuccessful = iSucc + 1; refresh_progress_window(); refresh_summary_window(); refresh_run_summary_window(); } } */ test_initialize_fail: uninitialize_windows(); }
int main (void) { initialize_curses(); initialize_windows(); shuffle_deck_and_deal(); instructions(); enum EPlayer player = nrand(NPLAYERS); printplayer (player); waddstr (_wmsg, "get to start.\n"); for (;;) { unsigned m = makemove (player); if (_hand[OTHER(player)][m]) goodmove (player, m); else if (!gofish (player, m)) player = OTHER(player); } return EXIT_SUCCESS; }