diff --git a/app/src/main/java/org/toop/app/Server.java b/app/src/main/java/org/toop/app/Server.java index 527e38b..dc688ab 100644 --- a/app/src/main/java/org/toop/app/Server.java +++ b/app/src/main/java/org/toop/app/Server.java @@ -19,7 +19,7 @@ import org.toop.framework.networking.connection.events.NetworkEvents; import org.toop.framework.networking.connection.types.NetworkingConnector; import org.toop.framework.game.players.ArtificialPlayer; import org.toop.framework.game.players.OnlinePlayer; -import org.toop.framework.game.players.RandomAI; +import org.toop.framework.game.players.ai.RandomAI; import org.toop.framework.networking.server.gateway.NettyGatewayServer; import org.toop.local.AppContext; diff --git a/app/src/main/java/org/toop/app/gameControllers/GenericGameController.java b/app/src/main/java/org/toop/app/gameControllers/GenericGameController.java index 1b20204..e55722d 100644 --- a/app/src/main/java/org/toop/app/gameControllers/GenericGameController.java +++ b/app/src/main/java/org/toop/app/gameControllers/GenericGameController.java @@ -10,7 +10,7 @@ import org.toop.app.widget.view.GameView; import org.toop.framework.eventbus.EventFlow; import org.toop.framework.eventbus.GlobalEventBus; import org.toop.framework.gameFramework.controller.GameController; -import org.toop.framework.gameFramework.model.game.SupportsOnlinePlay; +import org.toop.framework.gameFramework.model.game.threadBehaviour.SupportsOnlinePlay; import org.toop.framework.gameFramework.model.game.TurnBasedGame; import org.toop.framework.gameFramework.model.game.threadBehaviour.ThreadBehaviour; import org.toop.framework.gameFramework.model.player.Player; diff --git a/app/src/main/java/org/toop/app/widget/view/LocalMultiplayerView.java b/app/src/main/java/org/toop/app/widget/view/LocalMultiplayerView.java index b6eb549..d773c06 100644 --- a/app/src/main/java/org/toop/app/widget/view/LocalMultiplayerView.java +++ b/app/src/main/java/org/toop/app/widget/view/LocalMultiplayerView.java @@ -6,8 +6,6 @@ import org.toop.app.gameControllers.ReversiBitController; import org.toop.app.gameControllers.TicTacToeBitController; import org.toop.framework.gameFramework.controller.GameController; import org.toop.framework.gameFramework.model.player.Player; -import org.toop.framework.game.games.reversi.BitboardReversi; -import org.toop.framework.game.games.tictactoe.BitboardTicTacToe; import org.toop.framework.game.players.ArtificialPlayer; import org.toop.framework.game.players.LocalPlayer; import org.toop.app.widget.Primitive; @@ -15,8 +13,8 @@ import org.toop.app.widget.complex.PlayerInfoWidget; import org.toop.app.widget.complex.ViewWidget; import org.toop.app.widget.popup.ErrorPopup; import org.toop.app.widget.tutorial.*; -import org.toop.framework.game.players.MiniMaxAI; -import org.toop.framework.game.players.RandomAI; +import org.toop.framework.game.players.ai.MiniMaxAI; +import org.toop.framework.game.players.ai.RandomAI; import org.toop.local.AppContext; import javafx.geometry.Pos; diff --git a/framework/src/main/java/org/toop/framework/game/gameThreads/OnlineThreadBehaviour.java b/framework/src/main/java/org/toop/framework/game/gameThreads/OnlineThreadBehaviour.java index 9942d44..fde7606 100644 --- a/framework/src/main/java/org/toop/framework/game/gameThreads/OnlineThreadBehaviour.java +++ b/framework/src/main/java/org/toop/framework/game/gameThreads/OnlineThreadBehaviour.java @@ -4,7 +4,7 @@ import org.toop.framework.eventbus.EventFlow; import org.toop.framework.gameFramework.model.game.threadBehaviour.AbstractThreadBehaviour; import org.toop.framework.gameFramework.view.GUIEvents; import org.toop.framework.gameFramework.model.game.TurnBasedGame; -import org.toop.framework.gameFramework.model.game.SupportsOnlinePlay; +import org.toop.framework.gameFramework.model.game.threadBehaviour.SupportsOnlinePlay; import org.toop.framework.gameFramework.model.player.Player; import org.toop.framework.game.players.OnlinePlayer; diff --git a/framework/src/main/java/org/toop/framework/game/players/MiniMaxAI.java b/framework/src/main/java/org/toop/framework/game/players/ai/MiniMaxAI.java similarity index 99% rename from framework/src/main/java/org/toop/framework/game/players/MiniMaxAI.java rename to framework/src/main/java/org/toop/framework/game/players/ai/MiniMaxAI.java index 666d432..38aacbd 100644 --- a/framework/src/main/java/org/toop/framework/game/players/MiniMaxAI.java +++ b/framework/src/main/java/org/toop/framework/game/players/ai/MiniMaxAI.java @@ -1,4 +1,4 @@ -package org.toop.framework.game.players; +package org.toop.framework.game.players.ai; import org.toop.framework.gameFramework.GameState; import org.toop.framework.gameFramework.model.game.PlayResult; diff --git a/framework/src/main/java/org/toop/framework/game/players/RandomAI.java b/framework/src/main/java/org/toop/framework/game/players/ai/RandomAI.java similarity index 95% rename from framework/src/main/java/org/toop/framework/game/players/RandomAI.java rename to framework/src/main/java/org/toop/framework/game/players/ai/RandomAI.java index d78673d..91fd960 100644 --- a/framework/src/main/java/org/toop/framework/game/players/RandomAI.java +++ b/framework/src/main/java/org/toop/framework/game/players/ai/RandomAI.java @@ -1,4 +1,4 @@ -package org.toop.framework.game.players; +package org.toop.framework.game.players.ai; import org.toop.framework.gameFramework.model.game.TurnBasedGame; import org.toop.framework.gameFramework.model.player.AbstractAI; diff --git a/framework/src/main/java/org/toop/framework/gameFramework/model/game/BoardProvider.java b/framework/src/main/java/org/toop/framework/gameFramework/model/game/BoardProvider.java deleted file mode 100644 index fb70cf8..0000000 --- a/framework/src/main/java/org/toop/framework/gameFramework/model/game/BoardProvider.java +++ /dev/null @@ -1,5 +0,0 @@ -package org.toop.framework.gameFramework.model.game; - -public interface BoardProvider { - long[] getBoard(); -} diff --git a/framework/src/main/java/org/toop/framework/gameFramework/model/game/Playable.java b/framework/src/main/java/org/toop/framework/gameFramework/model/game/Playable.java deleted file mode 100644 index 21956b0..0000000 --- a/framework/src/main/java/org/toop/framework/gameFramework/model/game/Playable.java +++ /dev/null @@ -1,24 +0,0 @@ -package org.toop.framework.gameFramework.model.game; - -import org.toop.framework.gameFramework.GameState; - -/** - * Interface for turn-based games that can be played and queried for legal moves. - */ -public interface Playable { - - /** - * Returns the moves that are currently valid in the game. - * - * @return an array of integers representing legal moves - */ - long getLegalMoves(); - - /** - * Plays the given move and returns the resulting game state. - * - * @param move the move to apply - * @return the {@link GameState} and additional info after the move - */ - PlayResult play(long move); -} diff --git a/framework/src/main/java/org/toop/framework/gameFramework/model/game/PlayerProvider.java b/framework/src/main/java/org/toop/framework/gameFramework/model/game/PlayerProvider.java deleted file mode 100644 index 181edaa..0000000 --- a/framework/src/main/java/org/toop/framework/gameFramework/model/game/PlayerProvider.java +++ /dev/null @@ -1,7 +0,0 @@ -package org.toop.framework.gameFramework.model.game; - -import org.toop.framework.gameFramework.model.player.Player; - -public interface PlayerProvider { - Player getPlayer(int index); -} diff --git a/framework/src/main/java/org/toop/framework/gameFramework/model/game/TurnBasedGame.java b/framework/src/main/java/org/toop/framework/gameFramework/model/game/TurnBasedGame.java index 1e6642d..0fa536e 100644 --- a/framework/src/main/java/org/toop/framework/gameFramework/model/game/TurnBasedGame.java +++ b/framework/src/main/java/org/toop/framework/gameFramework/model/game/TurnBasedGame.java @@ -2,9 +2,12 @@ package org.toop.framework.gameFramework.model.game; import org.toop.framework.gameFramework.model.player.Player; -public interface TurnBasedGame extends Playable, PlayerProvider, BoardProvider, DeepCopyable { +public interface TurnBasedGame extends DeepCopyable { void init(Player[] players); + long[] getBoard(); int getCurrentTurn(); int getPlayerCount(); int getWinner(); + long getLegalMoves(); + PlayResult play(long move); } diff --git a/framework/src/main/java/org/toop/framework/gameFramework/model/game/threadBehaviour/AbstractThreadBehaviour.java b/framework/src/main/java/org/toop/framework/gameFramework/model/game/threadBehaviour/AbstractThreadBehaviour.java index 9dd6af7..dd3e6e7 100644 --- a/framework/src/main/java/org/toop/framework/gameFramework/model/game/threadBehaviour/AbstractThreadBehaviour.java +++ b/framework/src/main/java/org/toop/framework/gameFramework/model/game/threadBehaviour/AbstractThreadBehaviour.java @@ -4,6 +4,7 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.toop.framework.gameFramework.LongPairConsumer; import org.toop.framework.gameFramework.controller.GameController; +import org.toop.framework.gameFramework.controller.SupportsOnlinePlay; import org.toop.framework.gameFramework.model.game.TurnBasedGame; import java.util.concurrent.atomic.AtomicBoolean; diff --git a/framework/src/main/java/org/toop/framework/gameFramework/model/game/SupportsOnlinePlay.java b/framework/src/main/java/org/toop/framework/gameFramework/model/game/threadBehaviour/SupportsOnlinePlay.java similarity index 87% rename from framework/src/main/java/org/toop/framework/gameFramework/model/game/SupportsOnlinePlay.java rename to framework/src/main/java/org/toop/framework/gameFramework/model/game/threadBehaviour/SupportsOnlinePlay.java index 965056e..4b391f5 100644 --- a/framework/src/main/java/org/toop/framework/gameFramework/model/game/SupportsOnlinePlay.java +++ b/framework/src/main/java/org/toop/framework/gameFramework/model/game/threadBehaviour/SupportsOnlinePlay.java @@ -1,4 +1,4 @@ -package org.toop.framework.gameFramework.model.game; +package org.toop.framework.gameFramework.model.game.threadBehaviour; /** * Interface for games that support online multiplayer play. diff --git a/framework/src/main/java/org/toop/framework/gameFramework/model/player/AI.java b/framework/src/main/java/org/toop/framework/gameFramework/model/player/AI.java index afacfbf..5a92dfe 100644 --- a/framework/src/main/java/org/toop/framework/gameFramework/model/player/AI.java +++ b/framework/src/main/java/org/toop/framework/gameFramework/model/player/AI.java @@ -3,5 +3,6 @@ package org.toop.framework.gameFramework.model.player; import org.toop.framework.gameFramework.model.game.DeepCopyable; import org.toop.framework.gameFramework.model.game.TurnBasedGame; -public interface AI extends MoveProvider, DeepCopyable { +public interface AI extends DeepCopyable { + long getMove(TurnBasedGame game); } diff --git a/framework/src/main/java/org/toop/framework/gameFramework/model/player/MoveProvider.java b/framework/src/main/java/org/toop/framework/gameFramework/model/player/MoveProvider.java deleted file mode 100644 index 159addd..0000000 --- a/framework/src/main/java/org/toop/framework/gameFramework/model/player/MoveProvider.java +++ /dev/null @@ -1,7 +0,0 @@ -package org.toop.framework.gameFramework.model.player; - -import org.toop.framework.gameFramework.model.game.TurnBasedGame; - -public interface MoveProvider { - long getMove(TurnBasedGame game); -} diff --git a/framework/src/main/java/org/toop/framework/gameFramework/model/player/NameProvider.java b/framework/src/main/java/org/toop/framework/gameFramework/model/player/NameProvider.java deleted file mode 100644 index 850f0f2..0000000 --- a/framework/src/main/java/org/toop/framework/gameFramework/model/player/NameProvider.java +++ /dev/null @@ -1,5 +0,0 @@ -package org.toop.framework.gameFramework.model.player; - -public interface NameProvider { - String getName(); -} diff --git a/framework/src/main/java/org/toop/framework/gameFramework/model/player/Player.java b/framework/src/main/java/org/toop/framework/gameFramework/model/player/Player.java index 35ea2b2..4cd906a 100644 --- a/framework/src/main/java/org/toop/framework/gameFramework/model/player/Player.java +++ b/framework/src/main/java/org/toop/framework/gameFramework/model/player/Player.java @@ -1,5 +1,9 @@ package org.toop.framework.gameFramework.model.player; import org.toop.framework.gameFramework.model.game.DeepCopyable; +import org.toop.framework.gameFramework.model.game.TurnBasedGame; -public interface Player extends NameProvider, MoveProvider, DeepCopyable {} +public interface Player extends DeepCopyable { + String getName(); + long getMove(TurnBasedGame game); +}