>>401
テストしてないけど
// 8 方向を探査
boolean flag = false;
for (int i:new int[]{-1,0,1}) {
for (int j:new int[]{-1,0,1}) {
if (i==0 && j==0) continue; // 方向なしは除外
if (board[nx+i][ny+j] == hand*(-1)) { // その方向に相手の石があれば挟めるか探査を行う
for (int k=1 ; k<8 ; k++) {
int ni = nx+i*k;
int nj = nx+j*k;
if (ni == 0 || ni == board.length-1) break;
if (nj == 0 || nj == board.length-1) break;
if (board[nx+i*k][ny+j*k] == hand) {
flag = true;
break
}
}
}
if (flag) break;
}
if (flag) break;
}

if (flag) {
nextmove[maxpoint++] = new Point(nx,ny);
}