📄 board.java
字号:
// Block the opponent from a forced win. for (int i=0; i<18; i++) { if (outside_four[i][0] == -1) { human = 0; machine = 0; for (int j=2; j<6; j++) { if (occupied[outside_four[i][j]] == MACHINE) machine++; else if (occupied[outside_four[i][j]] == HUMAN) human++; } if (debug) System.out.println("machine = " + machine); if (debug) System.out.println("human = " + human); if (human == 3 && machine == 1) { if (debug) System.out.println("human == 3 && machine == 1"); for (int j=2; j<18; j++) { pos = faces[i][j]; if (occupied[pos] == 0) { for (int k=0; k<76; k++) { if (combinations[i][0] == 2 & combinations[i][1] == HUMAN) { for (int l=0; l<4; l++) { if (combinations[i][l] == pos) { occupied[pos] = MACHINE; positions.set(pos, MACHINE); player = update_logic_arrays(pos); if (debug) System.out.println("check_face_three: true"); return true; } } } } } } } } } if (debug) System.out.println("check_face_three: false"); return false; } /** * Block inside four */ public boolean block_inside_four() { int pos; int index = 0; int max = 0; // Block the opponent, if necessary. for (int i=0; i<18; i++) { if (inside_four[i][0] > 0 && inside_four[i][1] == HUMAN) { if(inside_four[i][0] > max) { index = i; max = inside_four[i][0]; } } } if (max > 0) { for (int j=2; j<6; j++) { pos = inside_four[index][j]; if (occupied[pos] == 0) { occupied[pos] = MACHINE; positions.set(pos, MACHINE); player = update_logic_arrays(pos); if (debug) System.out.println("block_inside_four: true"); return true; } } } if (debug) System.out.println("block_inside_four: false"); return false; } public boolean block_chair_move() { int pos; int ncorners = 0; // Number of corners owned by human int corner = 0; // Corner owned by machine if (debug) System.out.println("inside block_chair_move"); // Loop through all of the faces. for(int i=0; i<18; i++) { // Determine which corners the human owns. if (occupied[faces[i][2]] == HUMAN) ncorners++; else if (occupied[faces[i][2]] == MACHINE) corner = 2; if (occupied[faces[i][5]] == HUMAN) ncorners++; else if (occupied[faces[i][5]] == MACHINE) corner = 5; if (occupied[faces[i][14]] == HUMAN) ncorners++; else if (occupied[faces[i][14]] == MACHINE) corner = 14; if (occupied[faces[i][17]] == HUMAN) ncorners++; else if (occupied[faces[i][17]] == MACHINE) corner = 17; // If the human owns three corners, continue with the search. if (ncorners == 3) { if (corner == 2) { if (occupied[faces[i][ 3]] == HUMAN && occupied[faces[i][ 7]] == 0 && occupied[faces[i][ 8]] == 0 && occupied[faces[i][11]] == 0 && occupied[faces[i][15]] == 0 && occupied[faces[i][16]] == 0) { pos = faces[i][11]; occupied[pos] = MACHINE; positions.set(pos, MACHINE); player = update_logic_arrays(pos); if (debug) System.out.println("block_chair_move: found"); return true; } if (occupied[faces[i][ 4]] == HUMAN && occupied[faces[i][ 8]] == 0 && occupied[faces[i][11]] == 0 && occupied[faces[i][12]] == 0 && occupied[faces[i][15]] == 0 && occupied[faces[i][16]] == 0) { pos = faces[i][12]; occupied[pos] = MACHINE; positions.set(pos, MACHINE); player = update_logic_arrays(pos); if (debug) System.out.println("block_chair_move: found"); return true; } if (occupied[faces[i][ 6]] == HUMAN && occupied[faces[i][ 7]] == 0 && occupied[faces[i][ 8]] == 0 && occupied[faces[i][ 9]] == 0 && occupied[faces[i][11]] == 0 && occupied[faces[i][13]] == 0) { pos = faces[i][8]; occupied[pos] = MACHINE; positions.set(pos, MACHINE); player = update_logic_arrays(pos); if (debug) System.out.println("block_chair_move: found"); return true; } if (occupied[faces[i][10]] == HUMAN && occupied[faces[i][ 8]] == 0 && occupied[faces[i][ 9]] == 0 && occupied[faces[i][11]] == 0 && occupied[faces[i][12]] == 0 && occupied[faces[i][13]] == 0) { pos = faces[i][11]; occupied[pos] = MACHINE; positions.set(pos, MACHINE); player = update_logic_arrays(pos); if (debug) System.out.println("block_chair_move: found"); return true; } if (occupied[faces[i][ 7]] == HUMAN && occupied[faces[i][ 3]] == 0 && occupied[faces[i][ 8]] == 0 && occupied[faces[i][11]] == 0 && occupied[faces[i][15]] == 0 && occupied[faces[i][16]] == 0) { pos = faces[i][11]; occupied[pos] = MACHINE; positions.set(pos, MACHINE); player = update_logic_arrays(pos); if (debug) System.out.println("block_chair_move: found"); return true; } if (occupied[faces[i][12]] == HUMAN && occupied[faces[i][ 4]] == 0 && occupied[faces[i][ 8]] == 0 && occupied[faces[i][11]] == 0 && occupied[faces[i][15]] == 0 && occupied[faces[i][16]] == 0) { pos = faces[i][16]; occupied[pos] = MACHINE; positions.set(pos, MACHINE); player = update_logic_arrays(pos); if (debug) System.out.println("block_chair_move: found"); return true; } } else if (corner == 5) { if (occupied[faces[i][ 9]] == HUMAN && occupied[faces[i][ 6]] == 0 && occupied[faces[i][ 7]] == 0 && occupied[faces[i][ 8]] == 0 && occupied[faces[i][10]] == 0 && occupied[faces[i][12]] == 0) { pos = faces[i][7]; occupied[pos] = MACHINE; positions.set(pos, MACHINE); player = update_logic_arrays(pos); if (debug) System.out.println("block_chair_move: found"); return true; } if (occupied[faces[i][13]] == HUMAN && occupied[faces[i][ 7]] == 0 && occupied[faces[i][ 7]] == 0 && occupied[faces[i][10]] == 0 && occupied[faces[i][11]] == 0 && occupied[faces[i][12]] == 0) { pos = faces[i][12]; occupied[pos] = MACHINE; positions.set(pos, MACHINE); player = update_logic_arrays(pos); if (debug) System.out.println("block_chair_move: found"); return true; } if (occupied[faces[i][ 4]] == HUMAN && occupied[faces[i][ 8]] == 0 && occupied[faces[i][11]] == 0 && occupied[faces[i][12]] == 0 && occupied[faces[i][15]] == 0 && occupied[faces[i][16]] == 0) { pos = faces[i][12]; occupied[pos] = MACHINE; positions.set(pos, MACHINE); player = update_logic_arrays(pos); if (debug) System.out.println("block_chair_move: found"); return true; } if (occupied[faces[i][ 3]] == HUMAN && occupied[faces[i][ 7]] == 0 && occupied[faces[i][11]] == 0 && occupied[faces[i][12]] == 0 && occupied[faces[i][15]] == 0 && occupied[faces[i][16]] == 0) { pos = faces[i][7]; occupied[pos] = MACHINE; positions.set(pos, MACHINE); player = update_logic_arrays(pos); if (debug) System.out.println("block_chair_move: found"); return true; } if (occupied[faces[i][ 8]] == HUMAN && occupied[faces[i][ 4]] == 0 && occupied[faces[i][11]] == 0 && occupied[faces[i][12]] == 0 && occupied[faces[i][15]] == 0 && occupied[faces[i][16]] == 0) { pos = faces[i][12]; occupied[pos] = MACHINE; positions.set(pos, MACHINE); player = update_logic_arrays(pos); if (debug) System.out.println("block_chair_move: found"); return true; } if (occupied[faces[i][11]] == HUMAN && occupied[faces[i][ 3]] == 0 && occupied[faces[i][ 7]] == 0 && occupied[faces[i][12]] == 0 && occupied[faces[i][15]] == 0 && occupied[faces[i][16]] == 0) { pos = faces[i][ 7]; occupied[pos] = MACHINE; positions.set(pos, MACHINE); player = update_logic_arrays(pos); if (debug) System.out.println("block_chair_move: found"); return true; } } else if (corner == 14) { if (occupied[faces[i][ 6]] == HUMAN && occupied[faces[i][ 7]] == 0 && occupied[faces[i][ 8]] == 0 && occupied[faces[i][ 9]] == 0 && occupied[faces[i][11]] == 0 && occupied[faces[i][13]] == 0) { pos = faces[i][7]; occupied[pos] = MACHINE; positions.set(pos, MACHINE); player = update_logic_arrays(pos); if (debug) System.out.println("block_chair_move: found"); return true; } if (occupied[faces[i][10]] == HUMAN && occupied[faces[i][ 8]] == 0 && occupied[faces[i][ 9]] == 0 && occupied[faces[i][11]] == 0 && occupied[faces[i][12]] == 0 && occupied[faces[i][13]] == 0) { pos = faces[i][12]; occupied[pos] = MACHINE; positions.set(pos, MACHINE); player = update_logic_arrays(pos); if (debug) System.out.println("block_chair_move: found"); return true; } if (occupied[faces[i][15]] == HUMAN && occupied[faces[i][ 3]] == 0 && occupied[faces[i][ 4]] == 0 && occupied[faces[i][ 7]] == 0 && occupied[faces[i][11]] == 0 && occupied[faces[i][12]] == 0) { pos = faces[i][3]; occupied[pos] = MACHINE; positions.set(pos, MACHINE); player = update_logic_arrays(pos); if (debug) System.out.println("block_chair_move: found"); return true; } if (occupied[faces[i][16]] == HUMAN && occupied[faces[i][ 3]] == 0 && occupied[faces[i][ 4]] == 0 && occupied[faces[i][ 7]] == 0 && occupied[faces[i][ 8]] == 0 && occupied[faces[i][12]] == 0) { pos = faces[i][12]; occupied[pos] = MACHINE; positions.set(pos, MACHINE); player = update_logic_arrays(pos); if (debug) System.out.println("block_chair_move: found"); return true; } if (occupied[faces[i][11]] == HUMAN && occupied[faces[i][ 3]] == 0 && occupied[faces[i][ 4]] == 0 && occupied[faces[i][ 7]] == 0 && occupied[faces[i][12]] == 0 && occupied[faces[i][15]] == 0) { pos = faces[i][7]; occupied[pos] = MACHINE; positions.set(pos, MACHINE); player = update_logic_arrays(pos); if (debug) System.out.println("block_chair_move: found"); return true; } if (occupied[faces[i][ 8]] == HUMAN && occupied[faces[i][ 6]] == 0 && occupied[faces[i][ 7]] == 0 && occupied[faces[i][ 9]] == 0 && occupied[faces[i][12]] == 0 && occupied[faces[i][13]] == 0) { pos = faces[i][7]; occupied[pos] = MACHINE;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -