mirror of
https://github.com/2OOP/pism.git
synced 2026-02-04 10:54:51 +00:00
Fixed unittests. Formatting
This commit is contained in:
committed by
Bas Antonius de Jong
parent
c76b7a800e
commit
a94d83292e
@@ -1,57 +1,86 @@
|
||||
package org.toop;
|
||||
|
||||
import java.util.Arrays;
|
||||
import org.toop.app.gui.LocalServerSelector;
|
||||
import org.toop.framework.eventbus.EventFlow;
|
||||
import org.toop.framework.networking.events.NetworkEvents;
|
||||
import org.toop.framework.networking.NetworkingClientManager;
|
||||
import org.toop.framework.networking.NetworkingInitializationException;
|
||||
import org.toop.app.gui.LocalServerSelector;
|
||||
|
||||
import java.util.Arrays;
|
||||
import org.toop.framework.networking.events.NetworkEvents;
|
||||
|
||||
public class Main {
|
||||
static void main(String[] args) {
|
||||
initSystems();
|
||||
static void main(String[] args) {
|
||||
initSystems();
|
||||
|
||||
EventFlow a = new EventFlow()
|
||||
.addPostEvent(
|
||||
NetworkEvents.StartClient.class,
|
||||
"127.0.0.1",
|
||||
7789)
|
||||
.onResponse(Main::login)
|
||||
// .onResponse(Main::sendCommand)
|
||||
// .onResponse(Main::closeClient)
|
||||
.asyncPostEvent();
|
||||
EventFlow a =
|
||||
new EventFlow()
|
||||
.addPostEvent(NetworkEvents.StartClient.class, "127.0.0.1", 7789)
|
||||
.onResponse(Main::login)
|
||||
// .onResponse(Main::sendCommand)
|
||||
// .onResponse(Main::closeClient)
|
||||
.asyncPostEvent();
|
||||
|
||||
new Thread(() -> {
|
||||
while (a.getResult() == null) {
|
||||
try {
|
||||
Thread.sleep(2000);
|
||||
} catch (InterruptedException e) {}
|
||||
}
|
||||
long clid = (Long) a.getResult().get("clientId");
|
||||
new EventFlow()
|
||||
.addPostEvent(new NetworkEvents.SendCommand(clid, "get playerlist"))
|
||||
.listen(NetworkEvents.PlayerListResponse.class, response -> {
|
||||
if (response.clientId() == clid) System.out.println(Arrays.toString(response.playerlist()));
|
||||
})
|
||||
.asyncPostEvent();
|
||||
}).start();
|
||||
new Thread(
|
||||
() -> {
|
||||
while (a.getResult() == null) {
|
||||
try {
|
||||
Thread.sleep(2000);
|
||||
} catch (InterruptedException e) {
|
||||
}
|
||||
}
|
||||
long clid = (Long) a.getResult().get("clientId");
|
||||
new EventFlow()
|
||||
.addPostEvent(
|
||||
new NetworkEvents.SendSubscribe(clid, "tic-tac-toe"))
|
||||
.listen(
|
||||
NetworkEvents.PlayerlistResponse.class,
|
||||
response -> {
|
||||
if (response.clientId() == clid)
|
||||
System.out.println(
|
||||
Arrays.toString(response.playerlist()));
|
||||
})
|
||||
.listen(
|
||||
NetworkEvents.ChallengeResponse.class,
|
||||
response -> {
|
||||
if (response.clientId() == clid)
|
||||
System.out.println(response.challengeId());
|
||||
})
|
||||
.listen(
|
||||
NetworkEvents.ChallengeCancelledResponse.class,
|
||||
response -> {
|
||||
if (response.clientId() == clid)
|
||||
System.out.println(response.challengeId());
|
||||
})
|
||||
.listen(
|
||||
NetworkEvents.GamelistResponse.class,
|
||||
response -> {
|
||||
if (response.clientId() == clid)
|
||||
System.out.println(
|
||||
Arrays.toString(response.gamelist()));
|
||||
})
|
||||
.asyncPostEvent();
|
||||
})
|
||||
.start();
|
||||
|
||||
new Thread(() -> javax.swing.SwingUtilities.invokeLater(LocalServerSelector::new)).start();
|
||||
}
|
||||
new Thread(() -> javax.swing.SwingUtilities.invokeLater(LocalServerSelector::new)).start();
|
||||
}
|
||||
|
||||
private static void login(NetworkEvents.StartClientResponse event) {
|
||||
new Thread(() -> {
|
||||
try {
|
||||
Thread.sleep(1000);
|
||||
new EventFlow()
|
||||
.addPostEvent(new NetworkEvents.SendCommand(event.clientId(), "login bas"))
|
||||
.asyncPostEvent();
|
||||
} catch (InterruptedException e) {}
|
||||
}).start();
|
||||
}
|
||||
private static void login(NetworkEvents.StartClientResponse event) {
|
||||
new Thread(
|
||||
() -> {
|
||||
try {
|
||||
Thread.sleep(1000);
|
||||
new EventFlow()
|
||||
.addPostEvent(
|
||||
new NetworkEvents.SendCommand(
|
||||
event.clientId(), "login bas"))
|
||||
.asyncPostEvent();
|
||||
} catch (InterruptedException e) {
|
||||
}
|
||||
})
|
||||
.start();
|
||||
}
|
||||
|
||||
private static void initSystems() throws NetworkingInitializationException {
|
||||
new NetworkingClientManager();
|
||||
}
|
||||
}
|
||||
private static void initSystems() throws NetworkingInitializationException {
|
||||
new NetworkingClientManager();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,9 +7,9 @@ import javax.swing.*;
|
||||
import org.apache.logging.log4j.LogManager;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
import org.toop.framework.eventbus.EventFlow;
|
||||
import org.toop.framework.networking.NetworkingGameClientHandler;
|
||||
import org.toop.framework.networking.events.NetworkEvents;
|
||||
import org.toop.tictactoe.LocalTicTacToe;
|
||||
import org.toop.framework.networking.NetworkingGameClientHandler;
|
||||
import org.toop.tictactoe.gui.UIGameBoard;
|
||||
|
||||
public class RemoteGameSelector {
|
||||
@@ -55,36 +55,44 @@ public class RemoteGameSelector {
|
||||
&& !portTextField.getText().isEmpty()) {
|
||||
|
||||
AtomicReference<Long> clientId = new AtomicReference<>();
|
||||
new EventFlow().addPostEvent(
|
||||
NetworkEvents.StartClient.class,
|
||||
(Supplier<NetworkingGameClientHandler>)
|
||||
new NetworkingGameClientHandler(clientId.get()),
|
||||
"127.0.0.1",
|
||||
5001
|
||||
).onResponse(
|
||||
NetworkEvents.StartClientResponse.class,
|
||||
(response) -> {
|
||||
clientId.set(response.clientId());
|
||||
}
|
||||
).asyncPostEvent();
|
||||
new EventFlow()
|
||||
.addPostEvent(
|
||||
NetworkEvents.StartClient.class,
|
||||
(Supplier<NetworkingGameClientHandler>)
|
||||
new NetworkingGameClientHandler(clientId.get()),
|
||||
"127.0.0.1",
|
||||
5001)
|
||||
.onResponse(
|
||||
NetworkEvents.StartClientResponse.class,
|
||||
(response) -> {
|
||||
clientId.set(response.clientId());
|
||||
})
|
||||
.asyncPostEvent();
|
||||
|
||||
// GlobalEventBus.subscribeAndRegister(
|
||||
// NetworkEvents.ReceivedMessage.class,
|
||||
// event -> {
|
||||
// if (event.message().equalsIgnoreCase("ok")) {
|
||||
// logger.info("received ok from server.");
|
||||
// } else if (event.message().toLowerCase().startsWith("gameid")) {
|
||||
// String gameId =
|
||||
// event.message()
|
||||
// .toLowerCase()
|
||||
// .replace("gameid ", "");
|
||||
// GlobalEventBus.post(
|
||||
// new NetworkEvents.SendCommand(
|
||||
// "start_game " + gameId));
|
||||
// } else {
|
||||
// logger.info("{}", event.message());
|
||||
// }
|
||||
// });
|
||||
// GlobalEventBus.subscribeAndRegister(
|
||||
// NetworkEvents.ReceivedMessage.class,
|
||||
// event -> {
|
||||
// if
|
||||
// (event.message().equalsIgnoreCase("ok")) {
|
||||
// logger.info("received ok from
|
||||
// server.");
|
||||
// } else if
|
||||
// (event.message().toLowerCase().startsWith("gameid")) {
|
||||
// String gameId =
|
||||
// event.message()
|
||||
// .toLowerCase()
|
||||
// .replace("gameid
|
||||
// ", "");
|
||||
// GlobalEventBus.post(
|
||||
// new
|
||||
// NetworkEvents.SendCommand(
|
||||
// "start_game " +
|
||||
// gameId));
|
||||
// } else {
|
||||
// logger.info("{}",
|
||||
// event.message());
|
||||
// }
|
||||
// });
|
||||
frame.remove(mainMenu);
|
||||
UIGameBoard ttt = new UIGameBoard(localTicTacToe, this);
|
||||
localTicTacToe.startThreads();
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
package org.toop.tictactoe;
|
||||
|
||||
import java.util.concurrent.*;
|
||||
|
||||
import org.apache.logging.log4j.LogManager;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
import org.toop.framework.eventbus.EventFlow;
|
||||
@@ -10,11 +9,6 @@ import org.toop.game.Game;
|
||||
import org.toop.game.tictactoe.TicTacToe;
|
||||
import org.toop.game.tictactoe.TicTacToeAI;
|
||||
import org.toop.tictactoe.gui.UIGameBoard;
|
||||
import org.toop.framework.networking.NetworkingGameClientHandler;
|
||||
|
||||
import java.util.function.Supplier;
|
||||
|
||||
import static java.lang.Thread.sleep;
|
||||
|
||||
/**
|
||||
* A representation of a local tic-tac-toe game. Calls are made to a server for information about
|
||||
@@ -71,24 +65,25 @@ public class LocalTicTacToe { // TODO: Implement runnable
|
||||
* @param port The port of the server to connect to.
|
||||
*/
|
||||
private LocalTicTacToe(String ip, int port) {
|
||||
// this.receivedMessageListener =
|
||||
// GlobalEventBus.subscribe(this::receiveMessageAction);
|
||||
// GlobalEventBus.subscribe(this.receivedMessageListener);
|
||||
// this.connectionId = this.createConnection(ip, port); TODO: Refactor this
|
||||
// this.receivedMessageListener =
|
||||
// GlobalEventBus.subscribe(this::receiveMessageAction);
|
||||
// GlobalEventBus.subscribe(this.receivedMessageListener);
|
||||
// this.connectionId = this.createConnection(ip, port); TODO: Refactor this
|
||||
this.createGame("X", "O");
|
||||
this.isLocal = false;
|
||||
//this.executor.submit(this::remoteGameThread);
|
||||
// this.executor.submit(this::remoteGameThread);
|
||||
}
|
||||
|
||||
private LocalTicTacToe(boolean[] aiFlags) {
|
||||
this.isAiPlayer = aiFlags; // store who is AI
|
||||
this.isLocal = true;
|
||||
//this.executor.submit(this::localGameThread);
|
||||
// this.executor.submit(this::localGameThread);
|
||||
}
|
||||
public void startThreads(){
|
||||
|
||||
public void startThreads() {
|
||||
if (isLocal) {
|
||||
this.executor.submit(this::localGameThread);
|
||||
}else {
|
||||
} else {
|
||||
this.executor.submit(this::remoteGameThread);
|
||||
}
|
||||
}
|
||||
@@ -124,10 +119,10 @@ public class LocalTicTacToe { // TODO: Implement runnable
|
||||
state = this.ticTacToe.play(this.moveQueuePlayerA.take());
|
||||
} else {
|
||||
Game.Move bestMove = ai.findBestMove(this.ticTacToe, 9);
|
||||
assert bestMove != null;
|
||||
assert bestMove != null;
|
||||
|
||||
state = this.ticTacToe.play(bestMove);
|
||||
ui.setCell(bestMove.position(), "X");
|
||||
state = this.ticTacToe.play(bestMove);
|
||||
ui.setCell(bestMove.position(), "X");
|
||||
}
|
||||
if (state == Game.State.WIN || state == Game.State.DRAW) {
|
||||
ui.setState(state, "X");
|
||||
@@ -138,9 +133,9 @@ public class LocalTicTacToe { // TODO: Implement runnable
|
||||
state = this.ticTacToe.play(this.moveQueuePlayerB.take());
|
||||
} else {
|
||||
Game.Move bestMove = ai.findBestMove(this.ticTacToe, 9);
|
||||
assert bestMove != null;
|
||||
state = this.ticTacToe.play(bestMove);
|
||||
ui.setCell(bestMove.position(), "O");
|
||||
assert bestMove != null;
|
||||
state = this.ticTacToe.play(bestMove);
|
||||
ui.setCell(bestMove.position(), "O");
|
||||
}
|
||||
if (state == Game.State.WIN || state == Game.State.DRAW) {
|
||||
ui.setState(state, "O");
|
||||
@@ -166,8 +161,8 @@ public class LocalTicTacToe { // TODO: Implement runnable
|
||||
}
|
||||
|
||||
public char[] getCurrentBoard() {
|
||||
//return ticTacToe.getGrid();
|
||||
return new char[2];
|
||||
// return ticTacToe.getGrid();
|
||||
return new char[2];
|
||||
}
|
||||
|
||||
/** End the current game. */
|
||||
@@ -206,7 +201,7 @@ public class LocalTicTacToe { // TODO: Implement runnable
|
||||
|
||||
private void endTheGame() {
|
||||
this.sendCommand("end_game", this.gameId);
|
||||
// this.endListeners();
|
||||
// this.endListeners();
|
||||
}
|
||||
|
||||
private void receiveMessageAction(NetworkEvents.ReceivedMessage receivedMessage) {
|
||||
@@ -215,8 +210,7 @@ public class LocalTicTacToe { // TODO: Implement runnable
|
||||
}
|
||||
|
||||
try {
|
||||
logger.info(
|
||||
"Received message from {}: {}", this.clientId, receivedMessage.message());
|
||||
logger.info("Received message from {}: {}", this.clientId, receivedMessage.message());
|
||||
this.receivedQueue.put(receivedMessage.message());
|
||||
} catch (InterruptedException e) {
|
||||
logger.error("Error waiting for received Message", e);
|
||||
@@ -224,12 +218,14 @@ public class LocalTicTacToe { // TODO: Implement runnable
|
||||
}
|
||||
|
||||
private void sendCommand(String... args) {
|
||||
new EventFlow().addPostEvent(NetworkEvents.SendCommand.class, this.clientId, args).asyncPostEvent();
|
||||
new EventFlow()
|
||||
.addPostEvent(NetworkEvents.SendCommand.class, this.clientId, args)
|
||||
.asyncPostEvent();
|
||||
}
|
||||
|
||||
// private void endListeners() {
|
||||
// GlobalEventBus.unregister(this.receivedMessageListener);
|
||||
// } TODO
|
||||
// private void endListeners() {
|
||||
// GlobalEventBus.unregister(this.receivedMessageListener);
|
||||
// } TODO
|
||||
|
||||
public void setUIReference(UIGameBoard uiGameBoard) {
|
||||
this.ui = uiGameBoard;
|
||||
|
||||
Reference in New Issue
Block a user