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