/* * Initialize board display. */ bdisp_init() { register int i, j; /* top border */ for (i = 1; i < BSZ1; i++) { move(0, 2 * i + 1); addch(letters[i]); } /* left and right edges */ for (j = BSZ1; --j > 0; ) { move(20 - j, 0); printw("%2d ", j); move(20 - j, 2 * BSZ1 + 1); printw("%d ", j); } /* bottom border */ for (i = 1; i < BSZ1; i++) { move(20, 2 * i + 1); addch(letters[i]); } bdwho(0); move(0, 47); addstr("# black white"); lastline = 0; bdisp(); }
int main (void) { initialize_curses(); initialize_field_window(); bdinit (_board); // Randomly choose who goes first enum { USER, // get input from standard input PROGRAM // get input from program }; unsigned input[2]; _humanPlayer = nrand(2); input[_humanPlayer] = USER; input[!_humanPlayer] = PROGRAM; _plyr[_humanPlayer] = "you"; _plyr[!_humanPlayer] = "me"; for (unsigned color = BLACK;; color = !color) { bdisp(); unsigned curmove; if (input[color] == USER) curmove = _lastHumanMove = usermove(); else curmove = _lastComputerMove = pickmove (color); int mv = makemove(color, curmove); if (mv != MOVEOK) { // Game finished. Display result and quit. if (mv != RESIGN) display_game_result_message (mv, input[color] == USER); break; } } return EXIT_SUCCESS; }