package org.pixelgaffer.turnierserver.gamelogic; import java.util.ArrayList; import java.util.List; import org.pixelgaffer.turnierserver.gamelogic.interfaces.Ai; import org.pixelgaffer.turnierserver.gamelogic.interfaces.BuilderSolverAiObject; import org.pixelgaffer.turnierserver.gamelogic.interfaces.BuilderSolverGameState; import org.pixelgaffer.turnierserver.gamelogic.interfaces.Game; /** * @param <E> * Das AiObject * @param <G> * Der GameState * @param <B> * Die BuilderResponse * @param <S> * Die SolverResponse */ public abstract class AllBuilderAllSolverLogic<E extends BuilderSolverAiObject<G>, G extends BuilderSolverGameState<?, B, S>, B, S> extends BuilderSolverLogic<E, G, B, S> { @Override public List<Ai> getBuilder() { return new ArrayList<>(game.getAis()); } @Override public List<Ai> getSolver() { return new ArrayList<>(game.getAis()); } @Override public Ai getBuilder(Ai ai) { return game.getAis().get((ai.getIndex() - playedRounds) % game.getAis().size()); } @Override public void startGame(Game game) { super.startGame(game); maxTurns = game.getAis().size() - 1; } }