diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml index 655cfae..e0e273b 100644 --- a/.idea/inspectionProfiles/Project_Default.xml +++ b/.idea/inspectionProfiles/Project_Default.xml @@ -2,7 +2,7 @@ diff --git a/app/src/main/java/org/toop/app/Server.java b/app/src/main/java/org/toop/app/Server.java index f6bcdec..43129e1 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.ArtificialPlayer; import org.toop.framework.game.players.OnlinePlayer; import org.toop.framework.gameFramework.controller.GameController; import org.toop.framework.eventbus.GlobalEventBus; @@ -20,8 +21,10 @@ import org.toop.framework.networking.connection.events.NetworkEvents; import org.toop.framework.networking.connection.types.NetworkingConnector; import org.toop.framework.networking.server.gateway.NettyGatewayServer; import org.toop.framework.game.players.LocalPlayer; +import org.toop.game.players.ai.MCTSAI3; import org.toop.local.AppContext; +import java.util.Arrays; import java.util.List; import java.util.concurrent.CopyOnWriteArrayList; import java.util.concurrent.Executors; @@ -117,7 +120,8 @@ public final class Server { return; } - primary = new ServerView(user, this::sendChallenge, clientId); + primary = new ServerView(user, this::sendChallenge, user, clientId); + WidgetContainer.getCurrentView().transitionNextCustom(primary, "disconnect", this::disconnect); a.unsubscribe("connecting"); @@ -159,7 +163,8 @@ public final class Server { .listen(NetworkEvents.GameResultResponse.class, this::handleGameResult, false, "game-result") .listen(NetworkEvents.GameMoveResponse.class, this::handleReceivedMove, false, "game-move") .listen(NetworkEvents.YourTurnResponse.class, this::handleYourTurn, false, "your-turn") - .listen(NetworkEvents.ClosedConnection.class, this::closedConnection, false, "closed-connection"); + .listen(NetworkEvents.ClosedConnection.class, this::closedConnection, false, "closed-connection") + .listen(NetworkEvents.TournamentResultResponse.class, this::handleTournamentResult, false, "tournament-result"); connectFlow = a; } @@ -205,7 +210,8 @@ public final class Server { information.players[opponentStartingTurn].name = response.opponent(); Player[] players = new Player[2]; - players[userStartingTurn] = new LocalPlayer(user); + + players[userStartingTurn] = new ArtificialPlayer(new MCTSAI3(1000), user); players[opponentStartingTurn] = new OnlinePlayer(response.opponent()); switch (type) { @@ -238,6 +244,13 @@ public final class Server { gameController.gameFinished(response); } + private void handleTournamentResult(NetworkEvents.TournamentResultResponse response) { + IO.println(response.gameType()); + IO.println(Arrays.toString(response.names())); + IO.println(Arrays.toString(response.scoreTypes())); + IO.println(Arrays.toString(response.scores().toArray())); + } + private void handleReceivedMove(NetworkEvents.GameMoveResponse response) { if (gameController == null) { return; @@ -337,7 +350,8 @@ public final class Server { private void gamesListFromServerHandler(NetworkEvents.GamelistResponse event) { gameList.clear(); - var gl = List.of(event.gamelist()); + var gl = new java.util.ArrayList<>(List.of(event.gamelist())); + gl.sort(String::compareTo); gameList.addAll(gl); primary.updateGameList(gl); } diff --git a/app/src/main/java/org/toop/app/widget/view/ServerView.java b/app/src/main/java/org/toop/app/widget/view/ServerView.java index 92c8101..9408b27 100644 --- a/app/src/main/java/org/toop/app/widget/view/ServerView.java +++ b/app/src/main/java/org/toop/app/widget/view/ServerView.java @@ -6,6 +6,8 @@ import javafx.scene.control.ComboBox; import org.toop.app.widget.Primitive; import org.toop.app.widget.complex.ViewWidget; +import java.io.Reader; +import java.util.ArrayList; import java.util.List; import java.util.Locale; import java.util.function.Consumer; @@ -15,6 +17,7 @@ import javafx.geometry.Pos; import javafx.scene.control.Button; import javafx.scene.control.ListView; import org.toop.framework.eventbus.EventFlow; +import org.toop.framework.eventbus.GlobalEventBus; import org.toop.framework.networking.connection.events.NetworkEvents; public final class ServerView extends ViewWidget { @@ -22,46 +25,65 @@ public final class ServerView extends ViewWidget { private final Consumer onPlayerClicked; private final long clientId; - private final ComboBox gameList; + private final ComboBox gameListSub; + private final ComboBox gameListTour; private final ListView