Fix terminal view + fix dialog incorrect computer id

This commit is contained in:
Quentin Legot 2021-12-02 18:44:57 +01:00
parent 623e6b5fb3
commit b6cc8f24f9
4 changed files with 28 additions and 8 deletions

View File

@ -52,7 +52,7 @@ public class App extends Application {
| IllegalAccessException e) {
throw new CrashException(e.getMessage(), e);
}
viewManager = new ViewManager(playerList, game);
viewManager = new ViewManager(playerList, game, Window.class);
}
public static void launchTerminal() {
@ -62,7 +62,7 @@ public class App extends Application {
| IllegalAccessException e) {
throw new CrashException(e.getMessage(), e);
}
viewManager = new ViewManager(playerList, game);
viewManager = new ViewManager(playerList, game, Terminal.class);
}
public static List<Player> parsePlayers() throws IllegalArgumentException, NoSuchMethodException,

View File

@ -2,6 +2,7 @@ package fr.lnl.game.client.listener;
import fr.lnl.game.client.App;
import fr.lnl.game.server.games.Game;
import fr.lnl.game.server.games.player.Player;
import fr.lnl.game.server.listener.AbstractModelListening;
import fr.lnl.game.server.listener.ModelListener;
import javafx.scene.control.Alert;
@ -29,11 +30,12 @@ public class ButtonListener extends AbstractModelListening {
@Override
public void updateModel(Object event) {
Player player = game.getCurrentPlayer();
game.play();
App.viewManager.updateView();
Alert alert = new Alert(Alert.AlertType.INFORMATION);
alert.setTitle("Un joueur ordinateur a joué");
alert.setHeaderText("Le joueur ordinateur numéro" + game.getCurrentPlayer().getId() + " a joué");
alert.setHeaderText("Le joueur ordinateur numéro" + player.getId() + " a joué");
alert.setContentText("Il a joué l'action: " + game.getSelectedAction());
alert.showAndWait();
}

View File

@ -3,7 +3,6 @@ package fr.lnl.game.client.view;
import fr.lnl.game.client.ClientPlayer;
import fr.lnl.game.server.games.Game;
import fr.lnl.game.server.games.player.Player;
import javafx.util.Duration;
import java.util.HashMap;
@ -13,13 +12,27 @@ public class ViewManager {
private final HashMap<Player, ClientPlayer> players;
private final Game game;
public ViewManager(HashMap<Player, ClientPlayer> players, Game game) {
public ViewManager(HashMap<Player, ClientPlayer> players, Game game, Class<? extends View> viewType) {
this.players = players;
this.game = game;
updateView();
if(viewType == Terminal.class) {
terminalView();
} else {
updateView();
}
}
public void updateView() {
players.get(game.getCurrentPlayer()).getView().show();
}
public void terminalView() {
while(true) {
Player player = game.getCurrentPlayer();
players.get(game.getCurrentPlayer()).getView().show();
game.play();
System.out.println("Le joueur ordinateur numéro" + player.getId() + " a joué");
System.out.println("Il a joué l'action: " + game.getSelectedAction());
}
}
}

View File

@ -1,16 +1,21 @@
package fr.lnl.game.server.listener;
import fr.lnl.game.server.utils.CrashException;
import java.util.concurrent.TimeUnit;
public class GameFinishEvent extends AbstractModelListening {
private final Object lock = new Object();
// TODO: 02/12/2021 méthode a revoir, notamment surement mettre un dialog sur la view Window et fermer dès que l'utilisateur a cliqué sur ok
@Override
public void updateModel(Object obj) {
synchronized (lock) {
try {
Thread.sleep(1000);
Thread.sleep(TimeUnit.SECONDS.toMillis(1));
} catch (InterruptedException e) {
e.printStackTrace();
throw new CrashException(e.getMessage(), e);
}
}
System.exit(0);