Пример #1
0
/*
 * 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();
}
Пример #2
0
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;
}