static void initialize_test_gameboards() { const HOLESTATE B = HOLESTATE.has_black; const HOLESTATE W = HOLESTATE.has_white; const HOLESTATE E = HOLESTATE.is_empty; board1 = new Pentago_GameBoard( new HOLESTATE[] { B, B, B, E, E, E, W, W, W, B, B, B, B, B, B, W, W, W, W, W, W, B, B, B, B, B, B, W, W, W, W, W, W, E, E, E } , Pentago_GameBoard.whites_turn, Pentago_GameBoard.turn_state_addpiece); board1r = new Pentago_GameBoard( new HOLESTATE[] { B, B, B, E, E, E, W, W, W, B, B, B, B, B, B, W, W, W, W, W, W, B, B, B, B, B, B, W, W, W, W, W, W, E, E, E } , Pentago_GameBoard.whites_turn, Pentago_GameBoard.turn_state_rotate); }
static void initialize_test_gameboards() { const Pentago_GameBoard.hole_state B = Pentago_GameBoard.hole_state.has_black; const Pentago_GameBoard.hole_state W = Pentago_GameBoard.hole_state.has_white; const Pentago_GameBoard.hole_state E = Pentago_GameBoard.hole_state.is_empty; board1 = new Pentago_GameBoard( new Pentago_GameBoard.hole_state[] { B, B, B, E, E, E, W, W, W, B, B, B, B, B, B, W, W, W, W, W, W, B, B, B, B, B, B, W, W, W, W, W, W, E, E, E } , Pentago_GameBoard.whites_turn, Pentago_GameBoard.turn_state_addpiece); board1r = new Pentago_GameBoard( new Pentago_GameBoard.hole_state[] { B, B, B, E, E, E, W, W, W, B, B, B, B, B, B, W, W, W, W, W, W, B, B, B, B, B, B, W, W, W, W, W, W, E, E, E } , Pentago_GameBoard.whites_turn, Pentago_GameBoard.turn_state_rotate); }
static void available_diamond(HOLESTATE[] gb, int square, out int available4whites, out int available4blacks) { available4whites = 0; available4blacks = 0; HOLESTATE H10 = gb[Pentago_GameBoard.board_position_to_index(1, 0, square)]; HOLESTATE H12 = gb[Pentago_GameBoard.board_position_to_index(1, 2, square)]; HOLESTATE H01 = gb[Pentago_GameBoard.board_position_to_index(0, 1, square)]; HOLESTATE H21 = gb[Pentago_GameBoard.board_position_to_index(2, 1, square)]; /* if (H10 != HOLESTATE.has_black) available4whites++; * if (H12 != HOLESTATE.has_black) available4whites++; * if (H01 != HOLESTATE.has_black) available4whites++; * if (H21 != HOLESTATE.has_black) available4whites++; * * if (H10 != HOLESTATE.has_white) available4blacks++; * if (H12 != HOLESTATE.has_white) available4blacks++; * if (H01 != HOLESTATE.has_white) available4blacks++; * if (H21 != HOLESTATE.has_white) available4blacks++;*/ if (H10 != HOLESTATE.has_black && H21 != HOLESTATE.has_black) { available4whites++; } if (H12 != HOLESTATE.has_black && H01 != HOLESTATE.has_black) { available4whites++; } if (H01 != HOLESTATE.has_black && H10 != HOLESTATE.has_black) { available4whites++; } if (H21 != HOLESTATE.has_black && H12 != HOLESTATE.has_black) { available4whites++; } if (H10 != HOLESTATE.has_white && H21 != HOLESTATE.has_white) { available4blacks++; } if (H12 != HOLESTATE.has_white && H01 != HOLESTATE.has_white) { available4blacks++; } if (H01 != HOLESTATE.has_white && H10 != HOLESTATE.has_white) { available4blacks++; } if (H21 != HOLESTATE.has_white && H12 != HOLESTATE.has_white) { available4blacks++; } }
static void available_mulcross(HOLESTATE[] gb, int square, out int available4whites, out int available4blacks) { available4whites = 0; available4blacks = 0; HOLESTATE H11 = gb[Pentago_GameBoard.board_position_to_index(1, 1, square)]; HOLESTATE H00 = gb[Pentago_GameBoard.board_position_to_index(0, 0, square)]; HOLESTATE H02 = gb[Pentago_GameBoard.board_position_to_index(0, 2, square)]; HOLESTATE H20 = gb[Pentago_GameBoard.board_position_to_index(2, 0, square)]; HOLESTATE H22 = gb[Pentago_GameBoard.board_position_to_index(2, 2, square)]; bool h11w = H11 != HOLESTATE.has_black; if (h11w && H00 != HOLESTATE.has_black) { available4whites++; } if (h11w && H02 != HOLESTATE.has_black) { available4whites++; } if (h11w && H20 != HOLESTATE.has_black) { available4whites++; } if (h11w && H22 != HOLESTATE.has_black) { available4whites++; } bool h11b = H11 != HOLESTATE.has_white; if (h11b && H00 != HOLESTATE.has_white) { available4blacks++; } if (h11b && H02 != HOLESTATE.has_white) { available4blacks++; } if (h11b && H20 != HOLESTATE.has_white) { available4blacks++; } if (h11b && H22 != HOLESTATE.has_white) { available4blacks++; } }
static void available_box2(HOLESTATE[] gb, int square, out int available4whites, out int available4blacks) { available4whites = 0; available4blacks = 0; HOLESTATE H00 = gb[Pentago_GameBoard.board_position_to_index(0, 0, square)]; HOLESTATE H02 = gb[Pentago_GameBoard.board_position_to_index(0, 2, square)]; HOLESTATE H20 = gb[Pentago_GameBoard.board_position_to_index(2, 0, square)]; HOLESTATE H22 = gb[Pentago_GameBoard.board_position_to_index(2, 2, square)]; HOLESTATE H10 = gb[Pentago_GameBoard.board_position_to_index(1, 0, square)]; HOLESTATE H12 = gb[Pentago_GameBoard.board_position_to_index(1, 2, square)]; HOLESTATE H01 = gb[Pentago_GameBoard.board_position_to_index(0, 1, square)]; HOLESTATE H21 = gb[Pentago_GameBoard.board_position_to_index(2, 1, square)]; if (H00 != HOLESTATE.has_black && H10 != HOLESTATE.has_black) { available4whites++; } if (H20 != HOLESTATE.has_black && H12 != HOLESTATE.has_black) { available4whites++; } if (H22 != HOLESTATE.has_black && H12 != HOLESTATE.has_black) { available4whites++; } if (H02 != HOLESTATE.has_black && H01 != HOLESTATE.has_black) { available4whites++; } if (H00 != HOLESTATE.has_white && H10 != HOLESTATE.has_white) { available4blacks++; } if (H20 != HOLESTATE.has_white && H12 != HOLESTATE.has_white) { available4blacks++; } if (H22 != HOLESTATE.has_white && H12 != HOLESTATE.has_white) { available4blacks++; } if (H02 != HOLESTATE.has_white && H01 != HOLESTATE.has_white) { available4blacks++; } }
HOLESTATE[] get_rotated_board_90deg_anticlockwise(HOLESTATE[] board) { HOLESTATE[] newboard = new HOLESTATE[36]; copy_square2(board, newboard, 0, 2); copy_square2(board, newboard, 1, 0); copy_square2(board, newboard, 2, 3); copy_square2(board, newboard, 3, 1); Pentago_Move rotsquares = new Pentago_Move(0, Pentago_Move.rotate_anticlockwise); rotsquares.move(newboard, true, Pentago_GameBoard.turn_state_rotate); rotsquares.square2rotate = 1; rotsquares.move(newboard, true, Pentago_GameBoard.turn_state_rotate); rotsquares.square2rotate = 2; rotsquares.move(newboard, true, Pentago_GameBoard.turn_state_rotate); rotsquares.square2rotate = 3; rotsquares.move(newboard, true, Pentago_GameBoard.turn_state_rotate); return(newboard); }
void available_box1_v2(HOLESTATE[] gb, int square, out int available4whites, out int available4blacks, out int made4whites, out int made4blacks, out int stronglymade4whites, out int stronglymade4blacks) { available4whites = 0; available4blacks = 0; made4whites = 0; made4blacks = 0; stronglymade4whites = 0; stronglymade4blacks = 0; HOLESTATE H00 = gb[Pentago_GameBoard.board_position_to_index(0, 0, square)]; HOLESTATE H02 = gb[Pentago_GameBoard.board_position_to_index(0, 2, square)]; HOLESTATE H20 = gb[Pentago_GameBoard.board_position_to_index(2, 0, square)]; HOLESTATE H22 = gb[Pentago_GameBoard.board_position_to_index(2, 2, square)]; HOLESTATE H10 = gb[Pentago_GameBoard.board_position_to_index(1, 0, square)]; HOLESTATE H12 = gb[Pentago_GameBoard.board_position_to_index(1, 2, square)]; HOLESTATE H01 = gb[Pentago_GameBoard.board_position_to_index(0, 1, square)]; HOLESTATE H21 = gb[Pentago_GameBoard.board_position_to_index(2, 1, square)]; if (H00 != HOLESTATE.has_black && H01 != HOLESTATE.has_black) { available4whites++; } if (H10 != HOLESTATE.has_black && H20 != HOLESTATE.has_black) { available4whites++; } if (H21 != HOLESTATE.has_black && H22 != HOLESTATE.has_black) { available4whites++; } if (H02 != HOLESTATE.has_black && H12 != HOLESTATE.has_black) { available4whites++; } if (H00 != HOLESTATE.has_white && H01 != HOLESTATE.has_white) { available4blacks++; } if (H10 != HOLESTATE.has_white && H20 != HOLESTATE.has_white) { available4blacks++; } if (H21 != HOLESTATE.has_white && H22 != HOLESTATE.has_white) { available4blacks++; } if (H02 != HOLESTATE.has_white && H12 != HOLESTATE.has_white) { available4blacks++; } if (!HEUR12RELAXED) { if (H00 == HOLESTATE.has_black && H01 == HOLESTATE.has_black) { made4blacks++; if (H02 != HOLESTATE.has_white) { stronglymade4blacks++; } } if (H10 == HOLESTATE.has_black && H20 == HOLESTATE.has_black) { made4blacks++; if (H00 != HOLESTATE.has_white) { stronglymade4blacks++; } } if (H21 == HOLESTATE.has_black && H22 == HOLESTATE.has_black) { made4blacks++; if (H20 != HOLESTATE.has_white) { stronglymade4blacks++; } } if (H02 == HOLESTATE.has_black && H12 == HOLESTATE.has_black) { made4blacks++; if (H22 != HOLESTATE.has_white) { stronglymade4blacks++; } } if (H00 == HOLESTATE.has_white && H01 == HOLESTATE.has_white) { made4whites++; if (H02 != HOLESTATE.has_black) { stronglymade4whites++; } } if (H10 == HOLESTATE.has_white && H20 == HOLESTATE.has_white) { made4whites++; if (H00 != HOLESTATE.has_black) { stronglymade4whites++; } } if (H21 == HOLESTATE.has_white && H22 == HOLESTATE.has_white) { made4whites++; if (H20 != HOLESTATE.has_black) { stronglymade4whites++; } } if (H02 == HOLESTATE.has_white && H12 == HOLESTATE.has_white) { made4whites++; if (H22 != HOLESTATE.has_black) { stronglymade4whites++; } } } else { if ((H00 == HOLESTATE.has_black || H01 == HOLESTATE.has_black) && H00 != HOLESTATE.has_white && H01 != HOLESTATE.has_white) { made4blacks++; if (H02 != HOLESTATE.has_white) { stronglymade4blacks++; } } if ((H10 == HOLESTATE.has_black || H20 == HOLESTATE.has_black) && H10 != HOLESTATE.has_white && H20 != HOLESTATE.has_white) { made4blacks++; if (H00 != HOLESTATE.has_white) { stronglymade4blacks++; } } if ((H21 == HOLESTATE.has_black || H22 == HOLESTATE.has_black) && H21 != HOLESTATE.has_white && H22 != HOLESTATE.has_white) { made4blacks++; if (H20 != HOLESTATE.has_white) { stronglymade4blacks++; } } if ((H02 == HOLESTATE.has_black || H12 == HOLESTATE.has_black) && H02 != HOLESTATE.has_white && H12 != HOLESTATE.has_white) { made4blacks++; if (H22 != HOLESTATE.has_white) { stronglymade4blacks++; } } if ((H00 == HOLESTATE.has_white || H01 == HOLESTATE.has_white) && H00 != HOLESTATE.has_black && H01 != HOLESTATE.has_black) { made4whites++; if (H02 != HOLESTATE.has_black) { stronglymade4whites++; } } if ((H10 == HOLESTATE.has_white || H20 == HOLESTATE.has_white) && H10 != HOLESTATE.has_black && H20 != HOLESTATE.has_black) { made4whites++; if (H00 != HOLESTATE.has_black) { stronglymade4whites++; } } if ((H21 == HOLESTATE.has_white || H22 == HOLESTATE.has_white) && H21 != HOLESTATE.has_black && H22 != HOLESTATE.has_black) { made4whites++; if (H20 != HOLESTATE.has_black) { stronglymade4whites++; } } if ((H02 == HOLESTATE.has_white || H12 == HOLESTATE.has_white) && H02 != HOLESTATE.has_black && H12 != HOLESTATE.has_black) { made4whites++; if (H22 != HOLESTATE.has_black) { stronglymade4whites++; } } } }
static void available_corners_v2(HOLESTATE[] gb, int square, out int available4whites, out int available4blacks, out int made4whites, out int made4blacks) { available4whites = 0; available4blacks = 0; made4whites = 0; made4blacks = 0; HOLESTATE H00 = gb[Pentago_GameBoard.board_position_to_index(0, 0, square)]; HOLESTATE H02 = gb[Pentago_GameBoard.board_position_to_index(0, 2, square)]; HOLESTATE H20 = gb[Pentago_GameBoard.board_position_to_index(2, 0, square)]; HOLESTATE H22 = gb[Pentago_GameBoard.board_position_to_index(2, 2, square)]; if (H00 != HOLESTATE.has_black) { available4whites++; } if (H02 != HOLESTATE.has_black) { available4whites++; } if (H20 != HOLESTATE.has_black) { available4whites++; } if (H22 != HOLESTATE.has_black) { available4whites++; } if (H00 != HOLESTATE.has_white) { available4blacks++; } if (H02 != HOLESTATE.has_white) { available4blacks++; } if (H20 != HOLESTATE.has_white) { available4blacks++; } if (H22 != HOLESTATE.has_white) { available4blacks++; } if (H00 == HOLESTATE.has_black) { made4blacks++; } if (H02 == HOLESTATE.has_black) { made4blacks++; } if (H20 == HOLESTATE.has_black) { made4blacks++; } if (H22 == HOLESTATE.has_black) { made4blacks++; } if (H00 == HOLESTATE.has_white) { made4whites++; } if (H02 == HOLESTATE.has_white) { made4whites++; } if (H20 == HOLESTATE.has_white) { made4whites++; } if (H22 == HOLESTATE.has_white) { made4whites++; } }
void available_mulcross_v2(HOLESTATE[] gb, int square, out int available4whites, out int available4blacks, out int made4whites, out int made4blacks, out int stronglymade4whites, out int stronglymade4blacks) { available4whites = 0; available4blacks = 0; made4whites = 0; made4blacks = 0; stronglymade4whites = 0; stronglymade4blacks = 0; HOLESTATE H11 = gb[Pentago_GameBoard.board_position_to_index(1, 1, square)]; HOLESTATE H00 = gb[Pentago_GameBoard.board_position_to_index(0, 0, square)]; HOLESTATE H02 = gb[Pentago_GameBoard.board_position_to_index(0, 2, square)]; HOLESTATE H20 = gb[Pentago_GameBoard.board_position_to_index(2, 0, square)]; HOLESTATE H22 = gb[Pentago_GameBoard.board_position_to_index(2, 2, square)]; bool h11w = H11 != HOLESTATE.has_black; if (h11w && H00 != HOLESTATE.has_black) { available4whites++; } if (h11w && H02 != HOLESTATE.has_black) { available4whites++; } if (h11w && H20 != HOLESTATE.has_black) { available4whites++; } if (h11w && H22 != HOLESTATE.has_black) { available4whites++; } bool h11b = H11 != HOLESTATE.has_white; if (h11b && H00 != HOLESTATE.has_white) { available4blacks++; } if (h11b && H02 != HOLESTATE.has_white) { available4blacks++; } if (h11b && H20 != HOLESTATE.has_white) { available4blacks++; } if (h11b && H22 != HOLESTATE.has_white) { available4blacks++; } bool h11hasB = H11 == HOLESTATE.has_black; if (!HEUR12RELAXED) { if (h11hasB && H00 == HOLESTATE.has_black) { made4blacks++; if (H22 != HOLESTATE.has_white) { stronglymade4blacks++; } } if (h11hasB && H02 == HOLESTATE.has_black) { made4blacks++; if (H20 != HOLESTATE.has_white) { stronglymade4blacks++; } } if (h11hasB && H20 == HOLESTATE.has_black) { made4blacks++; if (H02 != HOLESTATE.has_white) { stronglymade4blacks++; } } if (h11hasB && H22 == HOLESTATE.has_black) { made4blacks++; if (H00 != HOLESTATE.has_white) { stronglymade4blacks++; } } bool h11hasW = H11 == HOLESTATE.has_white; if (h11hasW && H00 == HOLESTATE.has_white) { made4whites++; if (H22 != HOLESTATE.has_black) { stronglymade4whites++; } } if (h11hasW && H02 == HOLESTATE.has_white) { made4whites++; if (H20 != HOLESTATE.has_black) { stronglymade4whites++; } } if (h11hasW && H20 == HOLESTATE.has_white) { made4whites++; if (H02 != HOLESTATE.has_black) { stronglymade4whites++; } } if (h11hasW && H22 == HOLESTATE.has_white) { made4whites++; if (H00 != HOLESTATE.has_black) { stronglymade4whites++; } } } else { if (h11hasB && H00 != HOLESTATE.has_white) { made4blacks++; if (H22 != HOLESTATE.has_white) { stronglymade4blacks++; } } if (h11hasB && H02 != HOLESTATE.has_white) { made4blacks++; if (H20 != HOLESTATE.has_white) { stronglymade4blacks++; } } if (h11hasB && H20 != HOLESTATE.has_white) { made4blacks++; if (H02 != HOLESTATE.has_white) { stronglymade4blacks++; } } if (h11hasB && H22 != HOLESTATE.has_white) { made4blacks++; if (H00 != HOLESTATE.has_white) { stronglymade4blacks++; } } bool h11hasW = H11 != HOLESTATE.has_white; if (h11hasW && H00 != HOLESTATE.has_black) { made4whites++; if (H22 != HOLESTATE.has_black) { stronglymade4whites++; } } if (h11hasW && H02 != HOLESTATE.has_black) { made4whites++; if (H20 != HOLESTATE.has_black) { stronglymade4whites++; } } if (h11hasW && H20 != HOLESTATE.has_black) { made4whites++; if (H02 != HOLESTATE.has_black) { stronglymade4whites++; } } if (h11hasW && H22 != HOLESTATE.has_black) { made4whites++; if (H00 != HOLESTATE.has_black) { stronglymade4whites++; } } } }