Content of file C4GSTMoveStrategy.java package de.fhdw.gaming.ipspiel23.c4.gststrategy;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Optional;
import de.fhdw.gaming.core.domain.GameException;
import de.fhdw.gaming.core.domain.Move;
Reports import statements that can be removed. They are either unused,
duplicated, or the members they import are already implicitly in scope,
because they're in java.lang, or the current package.
import java.io.File; // not used, can be removed
import java.util.Collections; // used below
import java.util.*; // so this one is not used
import java.lang.Object; // imports from java.lang, unnecessary
import java.lang.Object; // duplicate, unnecessary
public class Foo {
static Object emptyList() {
return Collections.emptyList();
}
}
See PMD documentation.
import de.fhdw.gaming.ipspiel23.c4.domain.IC4Player;
import de.fhdw.gaming.ipspiel23.c4.domain.IC4State;
import de.fhdw.gaming.ipspiel23.c4.moves.IC4Move;
import de.fhdw.gaming.ipspiel23.c4.moves.factory.IC4MoveFactory;
import de.fhdw.gaming.ipspiel23.c4.strategies.IC4Strategy;
import de.fhdw.gaming.ipspiel23.gst.domain.ICalculatorKopplung;
import de.fhdw.gaming.ipspiel23.gst.domain.IKopplung;
import de.fhdw.gaming.ipspiel23.gst.domain.impl.GstKopplungsMoveCalculator;
import de.fhdw.gaming.ipspiel23.gst.strategies.impl.GstKopplungNegaMax;
import de.fhdw.gaming.ipspiel23.gst.strategies.impl.GstKopplungNegaMaxMultithreading;
/**
* GSTMoveStrategy for C4 Game.
*/
public class C4GSTMoveStrategy implements IC4Strategy {
/**
* The calculator used for computing the next move.
*/
private ICalculatorKopplung<IC4Player, IC4State> calc;
/**
* The MoveFactory.
*/
private IC4MoveFactory moveFactory;
/**
* The C4-GST-Kopplung.
*/
private IKopplung<IC4Player, IC4State> c4Kopplung;
/**
* .
*/
private GstKopplungNegaMaxMultithreading<IC4Player, IC4State> negamax;
//private GstKopplungNegaMax<IC4Player, IC4State> negamax;
/**
* Creates new C4GSTMoveStrategy with given MoveFactory.
* @param moveFactory
*/
public C4GSTMoveStrategy(IC4MoveFactory moveFactory) {
this.moveFactory = moveFactory;
this.c4Kopplung = new C4GSTKopplung(moveFactory);
//this.negamax = new GstKopplungNegaMax<>();
this.negamax = new GstKopplungNegaMaxMultithreading<>();
this.calc = new GstKopplungsMoveCalculator<>();
}
@Override
public Optional<IC4Move> computeNextMove(int gameId, IC4Player player, IC4State state)
throws GameException, InterruptedException {
//final Collection<Move<IC4Player, IC4State>> possibleMoves = c4Kopplung.getPossibleMoves(state).get();
return Optional.of((IC4Move) calc.calculateMove(c4Kopplung, state, 1000, negamax));
}
@Override
public String toString() {
return C4GSTMoveStrategy.class.getSimpleName();
}
}