Skip to content

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;
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;
Unused import 'de.fhdw.gaming.ipspiel23.gst.strategies.impl.GstKopplungNegaMax'.
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.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(); } }