public class GameRuleLogic
Eine Sammlung an Funktionen, die die Spielregeln logisch umsetzen. Sie beinhalten primär Funktionen, um
den Spielstand zu modifizieren
mögliche Züge zu berechnen
und die Punkte einer Farbe zu berechnen.
public static int SUM_MAX_SQUARES
public static GameRuleLogic INSTANCE
Eine Sammlung an Funktionen, die die Spielregeln logisch umsetzen. Sie beinhalten primär Funktionen, um
den Spielstand zu modifizieren
mögliche Züge zu berechnen
und die Punkte einer Farbe zu berechnen.
@NotNull public org.slf4j.Logger getLogger()
@JvmStatic
public static int getPointsFromUndeployed(@NotNull
java.util.Collection<? extends sc.plugin2021.PieceShape> undeployed,
boolean monoLast)
Berechne den Punktestand anhand der gegebenen enum PieceShapes.
undeployed - eine Sammlung aller nicht gelegten enum PieceShapesmonoLast - ob der letzte gelegte Stein das Monomino warenum PieceShape@JvmStatic
public static void performMove(@NotNull
GameState gameState,
@NotNull
Move move)
@JvmStatic
public static void validateMoveColor(@NotNull
GameState gameState,
@NotNull
Move move)
Prüfe, ob die Farbe des gegebenen class Moves der aktiven Farbe des class GameStates entspricht.
class Move,
class GameState@JvmStatic
public static void validateSetMove(@NotNull
GameState gameState,
@NotNull
SetMove move)
Prüfe, ob der gegebene class SetMove gesetzt werden könnte.
InvalidMoveException - wenn der Zug nicht valide warclass SetMove@JvmStatic
public static void validateShape(@NotNull
GameState gameState,
@NotNull
PieceShape shape,
@NotNull
Color color)
Prüfe, ob der gegebene Spielstein auf dem Spielfeld platziert werden könnte. Fehler treten auf, wenn
im ersten Zug nicht der vorgegebene Stein
in nachfolgenden Zügen bereits gesetzte Steine gesetzt werden würde(n).
InvalidMoveException - wenn der Zug nicht valide war@JvmStatic
public static boolean isValidSetMove(@NotNull
GameState gameState,
@NotNull
SetMove move)
Prüfe, ob der gegebene class Move zulässig ist.
gameState - der aktuelle Spielstandmove - der zu überprüfende Zugclass Move@JvmStatic
public static void validateSetMove(@NotNull
Board board,
@NotNull
SetMove move)
Prüfe, ob der gegebene class SetMove auf dem class Board platziert werden kann.
InvalidMoveException - wenn der Zug nicht valide warclass SetMove,
class Board@JvmStatic
public static void validateSkipMove(@NotNull
GameState gameState)
Prüfe, ob die aktuelle Farbe den Zug überspringen kann.
InvalidMoveException - wenn der Zug nicht valide war@JvmStatic
public static boolean bordersOnColor(@NotNull
Board board,
@NotNull
Field field)
Prüfe, ob das gegebene class Field bereits an eins mit gleicher Farbe angrenzt.
class Field@JvmStatic
public static boolean cornersOnColor(@NotNull
Board board,
@NotNull
Field field)
Prüfe, ob das gegebene Feld an die Ecke eines Feldes gleicher Farbe angrenzt.
@JvmStatic
public static boolean isOnCorner(@NotNull
Coordinates position)
Prüfe, ob die gegebene Position eine Ecke des Spielfelds ist.
@JvmStatic
public static boolean isFirstMove(@NotNull
GameState gameState)
Gib zurück, ob sich der class GameState noch in der ersten Runde befindet.
class GameState@JvmStatic @NotNull public static PieceShape getRandomPentomino()
x one (Used to get a valid starting piece).@JvmStatic
public static void removeInvalidColors(@NotNull
GameState gameState)
Entferne alle Farben, die keine Steine mehr auf dem Feld platzieren können.
@JvmStatic
@NotNull
public static java.util.Collection<sc.plugin2021.SetMove> getPossibleMoves(@NotNull
GameState gameState)
Gib eine Sammlung an möglichen class SetMoves zurück.
class SetMove@JvmStatic
@NotNull
public static kotlin.sequences.Sequence<sc.plugin2021.SetMove> streamPossibleMoves(@NotNull
GameState gameState)
Gib eine Sequenz an möglichen class SetMoves zurück.
class SetMove@JvmStatic
@NotNull
public static kotlin.sequences.Sequence<sc.plugin2021.SetMove> streamAllPossibleMoves(@NotNull
GameState gameState)
@JvmStatic
@NotNull
public static java.util.Set<sc.plugin2021.SetMove> getPossibleMovesForShape(@NotNull
GameState gameState,
@NotNull
PieceShape shape)
Gib eine Sammlung aller möglichen class SetMoves für die gegebene enum PieceShape zurück.
class SetMove,
enum PieceShape@JvmStatic
@NotNull
public static kotlin.sequences.Sequence<sc.plugin2021.SetMove> streamPossibleMovesForShape(@NotNull
GameState gameState,
@NotNull
PieceShape shape,
@NotNull
java.util.Set<sc.plugin2021.Coordinates> validFields)
Gib eine Sequenz aller möglichen class SetMoves für die gegebene enum PieceShape zurück.
class SetMove,
enum PieceShape@JvmStatic
@NotNull
public static java.util.Set<sc.plugin2021.Coordinates> getValidFields(@NotNull
Board board,
@NotNull
Color color)
class Coordinates, auf die die aktuelle enum Color Steine platzieren könnte.@JvmStatic
@NotNull
public static java.util.Set<sc.plugin2021.Coordinates> getColoredFields(@NotNull
Board board,
@NotNull
Color color)
class Coordinates, deren Position auf dem class Board die gegebene enum Color hat.