From a5020346858557a3cdf85567daebe5d2049e73cd Mon Sep 17 00:00:00 2001 From: ramollia <> Date: Wed, 17 Sep 2025 17:25:54 +0200 Subject: [PATCH] add: cli ui connection with server --- src/main/java/org/toop/ConsoleGui.java | 50 ++++++++++++++++++++++---- src/main/java/org/toop/Main.java | 32 ----------------- 2 files changed, 44 insertions(+), 38 deletions(-) diff --git a/src/main/java/org/toop/ConsoleGui.java b/src/main/java/org/toop/ConsoleGui.java index 5d0f6e0..abeb926 100644 --- a/src/main/java/org/toop/ConsoleGui.java +++ b/src/main/java/org/toop/ConsoleGui.java @@ -7,6 +7,10 @@ import org.toop.eventbus.GlobalEventBus; import org.toop.game.*; import org.toop.game.tictactoe.*; +import com.google.errorprone.annotations.Keep; + +import org.toop.eventbus.*; + import java.util.*; import java.util.concurrent.CompletableFuture; import java.util.concurrent.ExecutionException; @@ -20,8 +24,12 @@ public class ConsoleGui { private TicTacToe game; private MinMaxTicTacToe ai; - String ai1 = null; - String ai2 = null; + private String ai1 = null; + private String ai2 = null; + + private String serverId = null; + private String connectionId = null; + private String ticTacToeGameId = null; public ConsoleGui() throws ExecutionException, InterruptedException { scanner = new Scanner(System.in); @@ -94,6 +102,19 @@ public class ConsoleGui { game = new TicTacToe(player1, player2); ai = new MinMaxTicTacToe(); + + CompletableFuture serverIdFuture = new CompletableFuture<>(); + GlobalEventBus.post(new Events.ServerEvents.StartServerRequest("5001", "tictactoe", serverIdFuture)); + serverId = serverIdFuture.get(); + + CompletableFuture connectionIdFuture = new CompletableFuture<>(); + GlobalEventBus.post(new Events.ServerEvents.StartConnectionRequest("127.0.0.1", "5001", connectionIdFuture)); + connectionId = connectionIdFuture.get(); + + CompletableFuture ticTacToeGame = new CompletableFuture<>(); + GlobalEventBus.post(new Events.ServerEvents.CreateTicTacToeGameRequest(serverId, player1, player2, ticTacToeGame)); + ticTacToeGameId = ticTacToeGame.get(); + GlobalEventBus.post(new Events.ServerEvents.RunTicTacToeGame(serverId, ticTacToeGameId)); } public void print() { @@ -134,6 +155,7 @@ public class ConsoleGui { } GameBase.State state = game.play(move); + boolean keepRunning = true; switch (state) { case INVALID: { @@ -143,17 +165,33 @@ public class ConsoleGui { case DRAW: { System.out.println("Game ended in a draw."); - return false; + keepRunning = false; + break; } case WIN: { - System.out.printf("%s has won the game.\n", game.getCurrentPlayer().name()); - return false; + System.out.printf("%s has won the game.\n", current.name()); + keepRunning = false; + break; } case NORMAL: - default: return true; + default: { + keepRunning = true; + break; + } } + + GlobalEventBus.post(new Events.ServerEvents.SendCommand( + connectionId, + "gameid " + ticTacToeGameId, current.name(), "MOVE", String.valueOf(move) + )); + + if (!keepRunning) { + GlobalEventBus.post(new Events.ServerEvents.EndTicTacToeGame(serverId, ticTacToeGameId)); + } + + return keepRunning; } public GameBase getGame() { return game; } diff --git a/src/main/java/org/toop/Main.java b/src/main/java/org/toop/Main.java index 5ba1913..14977bf 100644 --- a/src/main/java/org/toop/Main.java +++ b/src/main/java/org/toop/Main.java @@ -20,41 +20,9 @@ public class Main { private static final Logger logger = LogManager.getLogger(Main.class); public static void main(String[] args) throws ExecutionException, InterruptedException { - initSystems(); - CompletableFuture serverIdFuture = new CompletableFuture<>(); - GlobalEventBus.post(new Events.ServerEvents.StartServerRequest("5001", "tictactoe", serverIdFuture)); - String serverId = serverIdFuture.get(); - - CompletableFuture connectionIdFuture = new CompletableFuture<>(); - GlobalEventBus.post(new Events.ServerEvents.StartConnectionRequest("127.0.0.1", "5001", connectionIdFuture)); - String connectionId = connectionIdFuture.get(); - - CompletableFuture ticTacToeGame = new CompletableFuture<>(); - GlobalEventBus.post(new Events.ServerEvents.CreateTicTacToeGameRequest(serverId, "J", "P", ticTacToeGame)); - String ticTacToeGameId = ticTacToeGame.get(); - GlobalEventBus.post(new Events.ServerEvents.RunTicTacToeGame(serverId, ticTacToeGameId)); - - GlobalEventBus.post(new Events.ServerEvents.SendCommand( - connectionId, - "gameid " + ticTacToeGameId, "player J", "MOVE", "0" - )); - GlobalEventBus.post(new Events.ServerEvents.SendCommand( - connectionId, - "gameid " + ticTacToeGameId, "player P", "MOVE", "1" - )); - -// for (int x = 0; x < 20000000; x++) { -// CompletableFuture ticTacToeGame = new CompletableFuture<>(); -// GlobalEventBus.post(new Events.ServerEvents.CreateTicTacToeGameRequest(serverId, "J"+x, "P"+x, ticTacToeGame)); -// String ticTacToeGameId = ticTacToeGame.get(); -// GlobalEventBus.post(new Events.ServerEvents.RunTicTacToeGame(serverId, ticTacToeGameId)); -// GlobalEventBus.post(new Events.ServerEvents.Command(connectionId, "MOVE", "" + x)); -// } - ConsoleGui console = new ConsoleGui(); - GameBase.State state = GameBase.State.INVALID; do { console.print();