Java コードをコンパイルしようとすると、説明できないエラーが発生します。
error: constructor MinimaxThread in class MinimaxThread cannot be applied to given types;
MinimaxThread mmt = new MinimaxThread(board.clone(), 2, true);
^
required: no arguments
found: MCBoard,int,boolean
reason: actual and formal argument lists differ in length
MCBoard、int、およびブール値を取るコンストラクターがあるため、エラーは意味がありません。
public class MinimaxThread implements Runnable {
public MCBoard board;
public int depth;
public HashMap<Tuple, Integer> moveEvals;
boolean cont = true;
boolean verbose = false;
public MinimaxThread(MCBoard board, int initialDepth, boolean verbose) {
this.board = board;
depth = initialDepth;
moveEvals = new HashMap<Tuple, Integer>();
for (Tuple t : board.legalMoves) {
moveEvals.put(t, new Integer(0));
}
this.verbose = verbose;
}
これはオーバーロードされたコンストラクターです (MCBoard のみのコンストラクターと、MCBoard と int のコンストラクターがあります) が、それがどのように重要なのかわかりません。何か案は?呼び出しコードは次のとおりです。
public static void testMinimax(){
MCBoard board = new MCBoard();
board.move(5,0);
board.move(4,0);
board.move(5,2);
MinimaxThread mmt = new MinimaxThread(board.clone(), 2, true);
mmt.run();
}
編集:board.clone()
オーバーライドされます:
public MCBoard clone() {
// irrelevant code removed
return new MCBoard(gridClone, turn, legalMovesClone, moveListClone);
}
編集#2:再現性のために、これが私のgitリポジトリです: https://github.com/cowpig/MagneticCave