diff --git a/app/src/main/java/org/toop/app/Server.java b/app/src/main/java/org/toop/app/Server.java index 527e38b..b6b48c7 100644 --- a/app/src/main/java/org/toop/app/Server.java +++ b/app/src/main/java/org/toop/app/Server.java @@ -11,6 +11,7 @@ import org.toop.app.widget.popup.ErrorPopup; import org.toop.app.widget.popup.SendChallengePopup; import org.toop.app.widget.view.ServerView; import org.toop.framework.eventbus.EventFlow; +import org.toop.framework.game.players.LocalPlayer; import org.toop.framework.gameFramework.controller.GameController; import org.toop.framework.eventbus.GlobalEventBus; import org.toop.framework.gameFramework.model.player.Player; @@ -202,33 +203,24 @@ public final class Server { final GameInformation information = new GameInformation(type); //information.players[0] = playerInformation; information.players[0].name = user; - information.players[0].isHuman = false; - information.players[0].computerDifficulty = 5; - information.players[0].computerThinkTime = 1; + information.players[0].isHuman = true; // Make false and uncomment/comment code at lines HERE To make use of AI. +// information.players[0].computerDifficulty = 5; // HERE +// information.players[0].computerThinkTime = 1; // HERE information.players[1].name = response.opponent(); - /*switch (type){ - case TICTACTOE ->{ - players[myTurn] = new ArtificialPlayer<>(new TicTacToeAIR(9), user); - } - case REVERSI ->{ - players[myTurn] = new ArtificialPlayer<>(new ReversiAIR(), user); - } - }*/ - - - switch (type) { - case TICTACTOE ->{ - Player[] players = new Player[2]; - players[(myTurn + 1) % 2] = new OnlinePlayer(response.opponent()); - players[myTurn] = new ArtificialPlayer(new RandomAI(), user); - gameController = new TicTacToeBitController(players); + case TICTACTOE -> { + Player[] players = new Player[2]; + players[Math.abs(myTurn-1)] = new OnlinePlayer(response.opponent()); + players[myTurn] = new LocalPlayer(user); // HERE +// players[myTurn] = new ArtificialPlayer(new RandomAI(), user); // HERE + gameController = new TicTacToeBitController(players); } case REVERSI -> { Player[] players = new Player[2]; - players[(myTurn + 1) % 2] = new OnlinePlayer(response.opponent()); - players[myTurn] = new ArtificialPlayer(new RandomAI(), user); + players[Math.abs(myTurn-1)] = new OnlinePlayer(response.opponent()); + players[myTurn] = new LocalPlayer(user); // HERE +// players[myTurn] = new ArtificialPlayer(new RandomAI(), user); // HERE gameController = new ReversiBitController(players);} default -> new ErrorPopup("Unsupported game type."); diff --git a/app/src/main/java/org/toop/app/gameControllers/ReversiBitController.java b/app/src/main/java/org/toop/app/gameControllers/ReversiBitController.java index 9cd62f3..1ea8109 100644 --- a/app/src/main/java/org/toop/app/gameControllers/ReversiBitController.java +++ b/app/src/main/java/org/toop/app/gameControllers/ReversiBitController.java @@ -8,16 +8,16 @@ import org.toop.framework.game.gameThreads.OnlineThreadBehaviour; import org.toop.framework.game.games.reversi.BitboardReversi; import org.toop.framework.game.players.OnlinePlayer; +import java.util.Arrays; + public class ReversiBitController extends GenericGameController { public ReversiBitController(Player[] players) { BitboardReversi game = new BitboardReversi(); game.init(players); - ThreadBehaviour thread = new LocalThreadBehaviour(game); - for (Player player : players) { - if (player instanceof OnlinePlayer){ - thread = new OnlineThreadBehaviour(game); - } - } + + ThreadBehaviour thread = Arrays.stream(players).anyMatch(e -> e instanceof OnlinePlayer) ? + new OnlineThreadBehaviour(game) : new LocalThreadBehaviour(game); + super(new ReversiBitCanvas(), game, thread, "Reversi"); } } diff --git a/app/src/main/java/org/toop/app/gameControllers/TicTacToeBitController.java b/app/src/main/java/org/toop/app/gameControllers/TicTacToeBitController.java index 18acdfc..9ef825c 100644 --- a/app/src/main/java/org/toop/app/gameControllers/TicTacToeBitController.java +++ b/app/src/main/java/org/toop/app/gameControllers/TicTacToeBitController.java @@ -7,17 +7,18 @@ import org.toop.framework.game.gameThreads.LocalThreadBehaviour; import org.toop.framework.game.gameThreads.OnlineThreadBehaviour; import org.toop.framework.game.games.tictactoe.BitboardTicTacToe; import org.toop.framework.game.players.OnlinePlayer; +import org.toop.framework.networking.server.OnlineGame; + +import java.util.Arrays; public class TicTacToeBitController extends GenericGameController { public TicTacToeBitController(Player[] players) { BitboardTicTacToe game = new BitboardTicTacToe(); game.init(players); - ThreadBehaviour thread = new LocalThreadBehaviour(game); - for (Player player : players) { - if (player instanceof OnlinePlayer){ - thread = new OnlineThreadBehaviour(game); - } - } + + ThreadBehaviour thread = Arrays.stream(players).anyMatch(e -> e instanceof OnlinePlayer) ? + new OnlineThreadBehaviour(game) : new LocalThreadBehaviour(game); + super(new TicTacToeBitCanvas(), game, thread , "TicTacToe"); } } diff --git a/framework/src/main/java/org/toop/framework/networking/server/Server.java b/framework/src/main/java/org/toop/framework/networking/server/Server.java index 129bc17..c474121 100644 --- a/framework/src/main/java/org/toop/framework/networking/server/Server.java +++ b/framework/src/main/java/org/toop/framework/networking/server/Server.java @@ -136,7 +136,6 @@ public class Server implements GameServer { players[i] = new ServerPlayer(clients[i]); clients[i].setGame(new ImmutablePair<>(game, players[i])); } - System.out.println("Starting OnlineTurnBasedGame"); game.game().init(players); gameStore.add(game);