Merge remote-tracking branch 'origin/master'
# Conflicts: # client/src/main/java/fr/lnl/game/client/App.java # server/src/main/java/fr/lnl/game/server/games/Game.java # server/src/test/java/fr/lnl/game/server/Mock.java
@ -1,14 +1,9 @@
|
|||||||
package fr.lnl.game.client;
|
package fr.lnl.game.client;
|
||||||
|
import fr.lnl.game.client.view.*;
|
||||||
import fr.lnl.game.client.listener.UpdateViewEvent;
|
import fr.lnl.game.server.listener.GameFinishEvent;
|
||||||
import fr.lnl.game.client.view.AbstractView;
|
|
||||||
import fr.lnl.game.client.view.Terminal;
|
|
||||||
import fr.lnl.game.client.view.ViewManager;
|
|
||||||
import fr.lnl.game.client.view.Window;
|
|
||||||
import fr.lnl.game.server.games.Game;
|
import fr.lnl.game.server.games.Game;
|
||||||
import fr.lnl.game.server.games.grid.Grid;
|
import fr.lnl.game.server.games.grid.Grid;
|
||||||
import fr.lnl.game.server.games.player.*;
|
import fr.lnl.game.server.games.player.*;
|
||||||
import fr.lnl.game.server.listener.GameFinishEvent;
|
|
||||||
import fr.lnl.game.server.utils.CrashException;
|
import fr.lnl.game.server.utils.CrashException;
|
||||||
import fr.lnl.game.server.utils.Point;
|
import fr.lnl.game.server.utils.Point;
|
||||||
import javafx.application.Application;
|
import javafx.application.Application;
|
||||||
@ -43,7 +38,7 @@ public class App extends Application {
|
|||||||
public static void startGame(ViewLambda lambda) throws IllegalArgumentException, InvocationTargetException, NoSuchMethodException,
|
public static void startGame(ViewLambda lambda) throws IllegalArgumentException, InvocationTargetException, NoSuchMethodException,
|
||||||
InstantiationException, IllegalAccessException {
|
InstantiationException, IllegalAccessException {
|
||||||
List<Player> players = parsePlayers();
|
List<Player> players = parsePlayers();
|
||||||
game = new Game(new Grid(12, 12, players), players, new UpdateViewEvent(), new GameFinishEvent());
|
game = new Game(new Grid(12, 12, players), players, new GameFinishEvent());
|
||||||
for (Player player : game.getPlayers()) {
|
for (Player player : game.getPlayers()) {
|
||||||
playerList.put(player, new ClientPlayer(player, lambda.createViewLambda(player)));
|
playerList.put(player, new ClientPlayer(player, lambda.createViewLambda(player)));
|
||||||
}
|
}
|
||||||
@ -58,7 +53,6 @@ public class App extends Application {
|
|||||||
throw new CrashException(e.getMessage(), e);
|
throw new CrashException(e.getMessage(), e);
|
||||||
}
|
}
|
||||||
viewManager = new ViewManager(playerList, game);
|
viewManager = new ViewManager(playerList, game);
|
||||||
new Thread(() -> game.play()).start();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void launchTerminal() {
|
public static void launchTerminal() {
|
||||||
@ -69,7 +63,6 @@ public class App extends Application {
|
|||||||
throw new CrashException(e.getMessage(), e);
|
throw new CrashException(e.getMessage(), e);
|
||||||
}
|
}
|
||||||
viewManager = new ViewManager(playerList, game);
|
viewManager = new ViewManager(playerList, game);
|
||||||
new Thread(() -> game.play()).start();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static List<Player> parsePlayers() throws IllegalArgumentException, NoSuchMethodException,
|
public static List<Player> parsePlayers() throws IllegalArgumentException, NoSuchMethodException,
|
||||||
|
@ -1,12 +1,21 @@
|
|||||||
package fr.lnl.game.client.listener;
|
package fr.lnl.game.client.listener;
|
||||||
|
|
||||||
import fr.lnl.game.client.App;
|
import fr.lnl.game.client.App;
|
||||||
|
import fr.lnl.game.server.games.Game;
|
||||||
import fr.lnl.game.server.listener.AbstractModelListening;
|
import fr.lnl.game.server.listener.AbstractModelListening;
|
||||||
import fr.lnl.game.server.listener.ModelListener;
|
import fr.lnl.game.server.listener.ModelListener;
|
||||||
|
import javafx.scene.control.Alert;
|
||||||
|
import javafx.scene.control.Dialog;
|
||||||
|
|
||||||
public class ButtonListener extends AbstractModelListening {
|
public class ButtonListener extends AbstractModelListening {
|
||||||
|
|
||||||
|
|
||||||
|
private final Game game;
|
||||||
|
|
||||||
|
public ButtonListener(Game game) {
|
||||||
|
this.game = game;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void addListener(ModelListener e) {
|
public void addListener(ModelListener e) {
|
||||||
this.listeners.add(e);
|
this.listeners.add(e);
|
||||||
@ -20,6 +29,12 @@ public class ButtonListener extends AbstractModelListening {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void updateModel(Object event) {
|
public void updateModel(Object event) {
|
||||||
App.viewManager.setNeedUpdate(true);
|
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.setContentText("Il a joué l'action: " + game.getSelectedAction());
|
||||||
|
alert.showAndWait();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,12 +0,0 @@
|
|||||||
package fr.lnl.game.client.listener;
|
|
||||||
|
|
||||||
import fr.lnl.game.client.App;
|
|
||||||
import fr.lnl.game.server.listener.AbstractModelListening;
|
|
||||||
|
|
||||||
public class UpdateViewEvent extends AbstractModelListening {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void updateModel(Object obj) {
|
|
||||||
App.viewManager.setNeedUpdate(true);
|
|
||||||
}
|
|
||||||
}
|
|
@ -4,6 +4,7 @@ import fr.lnl.game.server.games.grid.Bomb;
|
|||||||
import fr.lnl.game.server.games.grid.EnergyBall;
|
import fr.lnl.game.server.games.grid.EnergyBall;
|
||||||
import fr.lnl.game.server.games.grid.Mine;
|
import fr.lnl.game.server.games.grid.Mine;
|
||||||
import fr.lnl.game.server.games.player.Player;
|
import fr.lnl.game.server.games.player.Player;
|
||||||
|
import fr.lnl.game.server.utils.Cardinal;
|
||||||
import javafx.scene.image.Image;
|
import javafx.scene.image.Image;
|
||||||
import javafx.scene.image.ImageView;
|
import javafx.scene.image.ImageView;
|
||||||
import javafx.scene.layout.StackPane;
|
import javafx.scene.layout.StackPane;
|
||||||
@ -36,17 +37,34 @@ public class Cell extends Rectangle {
|
|||||||
if(object instanceof Player){
|
if(object instanceof Player){
|
||||||
image = new Image("file:resources/images/player.png");
|
image = new Image("file:resources/images/player.png");
|
||||||
}
|
}
|
||||||
if(object instanceof EnergyBall){
|
else if(object instanceof EnergyBall){
|
||||||
image = new Image("file:resources/images/energyBall.png");
|
image = new Image("file:resources/images/energyBall.png");
|
||||||
}
|
}
|
||||||
if(object instanceof Bomb){
|
else if(object instanceof Bomb){
|
||||||
image = new Image("file:resources/images/bomb.jpg");
|
image = new Image("file:resources/images/bomb.jpg");
|
||||||
}
|
}
|
||||||
if(object instanceof Mine){
|
else if(object instanceof Mine){
|
||||||
image = new Image("file:resources/images/mine.webp");
|
image = new Image("file:resources/images/mine.webp");
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
image = new Image("file:resources/images/wall.jpg");
|
//test
|
||||||
|
if(((Wall)object).getCardinal()== Cardinal.NORTH){
|
||||||
|
image = new Image("file:resources/topWall.png");
|
||||||
|
}else if(((Wall)object).getCardinal()== Cardinal.SOUTH) {
|
||||||
|
image = new Image("file:resources/bottomWall.png");
|
||||||
|
}else if(((Wall)object).getCardinal()== Cardinal.EAST) {
|
||||||
|
image = new Image("file:resources/rightWall.png");
|
||||||
|
}else if(((Wall)object).getCardinal()== Cardinal.WEST) {
|
||||||
|
image = new Image("file:resources/leftWall.png");
|
||||||
|
}else if(((Wall)object).getCardinal()== Cardinal.NORTH_EAST) {
|
||||||
|
image = new Image("file:resources/topRightWall.png");
|
||||||
|
}else if(((Wall)object).getCardinal()== Cardinal.NORTH_WEST) {
|
||||||
|
image = new Image("file:resources/topLeftWall.png");
|
||||||
|
}else if(((Wall)object).getCardinal()== Cardinal.SOUTH_EAST) {
|
||||||
|
image = new Image("file:resources/bottomRightWall.png");
|
||||||
|
}else{
|
||||||
|
image = new Image("file:resources/bottomLeftWall.png");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ImageView iv = new ImageView(image);
|
ImageView iv = new ImageView(image);
|
||||||
|
@ -49,9 +49,8 @@ public class GUI {
|
|||||||
private Parent createContent() {
|
private Parent createContent() {
|
||||||
Pane principalPane = new Pane();
|
Pane principalPane = new Pane();
|
||||||
principalPane.setPrefSize(width * cellSize, height * cellSize);
|
principalPane.setPrefSize(width * cellSize, height * cellSize);
|
||||||
//PARTIE1
|
|
||||||
//à définir avec n pour moduler la taille du plateau
|
|
||||||
|
|
||||||
|
//à définir avec n pour moduler la taille du plateau
|
||||||
for (int i = 0; i < 16; i++) {
|
for (int i = 0; i < 16; i++) {
|
||||||
for (int j = 0; j < 16; j++) {
|
for (int j = 0; j < 16; j++) {
|
||||||
Cell cell = new Cell(i, j);
|
Cell cell = new Cell(i, j);
|
||||||
@ -59,7 +58,6 @@ public class GUI {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//PARTIE2
|
|
||||||
board = grid.getBoard();
|
board = grid.getBoard();
|
||||||
for (int i = 0; i < 16; i++) {
|
for (int i = 0; i < 16; i++) {
|
||||||
for (int j = 0; j < 16; j++) {
|
for (int j = 0; j < 16; j++) {
|
||||||
@ -68,11 +66,20 @@ public class GUI {
|
|||||||
addToPrincipalPanel(value.getA(), principalPane, i, j);
|
addToPrincipalPanel(value.getA(), principalPane, i, j);
|
||||||
}
|
}
|
||||||
if (value.getB() instanceof Wall || value.getB() instanceof EnergyBall || value.getB() instanceof Mine || value.getB() instanceof Bomb) {
|
if (value.getB() instanceof Wall || value.getB() instanceof EnergyBall || value.getB() instanceof Mine || value.getB() instanceof Bomb) {
|
||||||
|
System.out.println(value.getB());
|
||||||
addToPrincipalPanel(value.getB(), principalPane, i, j);
|
addToPrincipalPanel(value.getB(), principalPane, i, j);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//PARTIE3
|
|
||||||
|
Rectangle shape = new Rectangle();
|
||||||
|
shape.setX(700);
|
||||||
|
shape.setY(20);
|
||||||
|
shape.setWidth(200);
|
||||||
|
shape.setHeight(600);
|
||||||
|
shape.setFill(javafx.scene.paint.Color.WHITE);
|
||||||
|
|
||||||
|
|
||||||
Button followingButton = new Button("SUIVANT");
|
Button followingButton = new Button("SUIVANT");
|
||||||
followingButton.setLayoutX(775);
|
followingButton.setLayoutX(775);
|
||||||
followingButton.setLayoutY(600);
|
followingButton.setLayoutY(600);
|
||||||
@ -81,6 +88,7 @@ public class GUI {
|
|||||||
//add un eventListener au button
|
//add un eventListener au button
|
||||||
|
|
||||||
principalPane.getChildren().add(followingButton);
|
principalPane.getChildren().add(followingButton);
|
||||||
|
//pas compris le principe
|
||||||
return principalPane;
|
return principalPane;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,19 +0,0 @@
|
|||||||
package fr.lnl.game.client.view;
|
|
||||||
|
|
||||||
import fr.lnl.game.client.App;
|
|
||||||
import javafx.concurrent.ScheduledService;
|
|
||||||
import javafx.concurrent.Task;
|
|
||||||
|
|
||||||
public class TimerService extends ScheduledService<Integer> {
|
|
||||||
@Override
|
|
||||||
protected Task<Integer> createTask() {
|
|
||||||
return new Task<>() {
|
|
||||||
protected Integer call() {
|
|
||||||
if(App.viewManager.getNeedUpdate()) {
|
|
||||||
App.viewManager.updateView();
|
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
}
|
|
@ -12,27 +12,14 @@ public class ViewManager {
|
|||||||
|
|
||||||
private final HashMap<Player, ClientPlayer> players;
|
private final HashMap<Player, ClientPlayer> players;
|
||||||
private final Game game;
|
private final Game game;
|
||||||
private Boolean needUpdate = true;
|
|
||||||
|
|
||||||
public ViewManager(HashMap<Player, ClientPlayer> players, Game game) {
|
public ViewManager(HashMap<Player, ClientPlayer> players, Game game) {
|
||||||
this.players = players;
|
this.players = players;
|
||||||
this.game = game;
|
this.game = game;
|
||||||
TimerService timer = new TimerService();
|
|
||||||
timer.setPeriod(Duration.millis(30));
|
|
||||||
updateView();
|
updateView();
|
||||||
timer.start();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void updateView() {
|
public void updateView() {
|
||||||
players.get(game.getCurrentPlayer()).getView().show();
|
players.get(game.getCurrentPlayer()).getView().show();
|
||||||
setNeedUpdate(false);
|
|
||||||
}
|
|
||||||
|
|
||||||
public Boolean getNeedUpdate() {
|
|
||||||
return needUpdate;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setNeedUpdate(Boolean needUpdate) {
|
|
||||||
this.needUpdate = needUpdate;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -22,9 +22,10 @@ public class Window extends AbstractView {
|
|||||||
String javaVersion = System.getProperty("java.version");
|
String javaVersion = System.getProperty("java.version");
|
||||||
String javafxVersion = System.getProperty("javafx.version");
|
String javafxVersion = System.getProperty("javafx.version");
|
||||||
Label l = new Label("Hello, JavaFX version " + javafxVersion + ", running on Java " + javaVersion + ".");
|
Label l = new Label("Hello, JavaFX version " + javafxVersion + ", running on Java " + javaVersion + ".");
|
||||||
Label l2 = new Label("I'm " + player.getClass().getSimpleName() + " num " + player.getId() + " my class is " + player.getClassPlayer().toString());
|
Label l2 = new Label("I'm " + player.getClass().getSimpleName() + " num " + player.getId() + "" +
|
||||||
Button b = new Button("Click to see others players informations");
|
" my class is " + player.getClassPlayer().toString() + ", my remaining energy is " + player.getEnergy());
|
||||||
b.setOnAction(new ClientEventHandler(new ButtonListener()));
|
Button b = new Button("Click to continue the game");
|
||||||
|
b.setOnAction(new ClientEventHandler(new ButtonListener(game)));
|
||||||
GridPane grid = new GridPane();
|
GridPane grid = new GridPane();
|
||||||
grid.add(l, 0, 0);
|
grid.add(l, 0, 0);
|
||||||
grid.add(l2, 0, 1);
|
grid.add(l2, 0, 1);
|
||||||
|
BIN
client/src/main/resources/images/bottomLeftWall.PNG
Normal file
After Width: | Height: | Size: 5.9 KiB |
BIN
client/src/main/resources/images/bottomRightWall.PNG
Normal file
After Width: | Height: | Size: 6.0 KiB |
BIN
client/src/main/resources/images/bottomWall.PNG
Normal file
After Width: | Height: | Size: 4.7 KiB |
BIN
client/src/main/resources/images/rightWall.PNG
Normal file
After Width: | Height: | Size: 6.0 KiB |
BIN
client/src/main/resources/images/topLeftWall.PNG
Normal file
After Width: | Height: | Size: 5.5 KiB |
BIN
client/src/main/resources/images/topRightWall.PNG
Normal file
After Width: | Height: | Size: 6.2 KiB |
BIN
client/src/main/resources/images/topWall.PNG
Normal file
After Width: | Height: | Size: 4.6 KiB |
@ -5,92 +5,76 @@ import fr.lnl.game.server.games.grid.Grid;
|
|||||||
import fr.lnl.game.server.games.player.ComputerPlayer;
|
import fr.lnl.game.server.games.player.ComputerPlayer;
|
||||||
import fr.lnl.game.server.games.player.HumanPlayer;
|
import fr.lnl.game.server.games.player.HumanPlayer;
|
||||||
import fr.lnl.game.server.games.player.Player;
|
import fr.lnl.game.server.games.player.Player;
|
||||||
import fr.lnl.game.server.listener.AwakeGame;
|
|
||||||
import fr.lnl.game.server.listener.ModelListener;
|
import fr.lnl.game.server.listener.ModelListener;
|
||||||
import fr.lnl.game.server.utils.CrashException;
|
import fr.lnl.game.server.utils.CrashException;
|
||||||
|
import fr.lnl.game.server.utils.Point;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.concurrent.TimeUnit;
|
|
||||||
import java.util.stream.Stream;
|
import java.util.stream.Stream;
|
||||||
|
|
||||||
public class Game {
|
public class Game {
|
||||||
|
|
||||||
private final Grid grid;
|
private final Grid grid;
|
||||||
private final List<Player> players;
|
private final List<Player> players;
|
||||||
private final ModelListener viewUpdateEvent;
|
|
||||||
private final ModelListener gameFinishEvent;
|
private final ModelListener gameFinishEvent;
|
||||||
private Player currentPlayer;
|
private Player currentPlayer;
|
||||||
private InterfaceAction interfaceAction;
|
|
||||||
private Action selectedAction = null;
|
private Action selectedAction = null;
|
||||||
ModelListener awakeEvent;
|
|
||||||
private final Object lock = new Object();
|
|
||||||
|
|
||||||
public Game(Grid grid, List<Player> players, ModelListener viewUpdate, ModelListener gameFinishEvent) throws IllegalArgumentException {
|
public Game(Grid grid, List<Player> players, ModelListener gameFinishEvent) throws IllegalArgumentException {
|
||||||
if(players.size() < 2 || grid.getNumberNeutralBox() < players.size())
|
if(players.size() < 2)
|
||||||
throw new IllegalArgumentException("The game need 2 or more player to start");
|
throw new IllegalArgumentException("The game need 2 or more player to start");
|
||||||
this.players = players;
|
this.players = players;
|
||||||
this.currentPlayer = players.get(0);
|
this.currentPlayer = players.get(0);
|
||||||
this.grid = grid;
|
this.grid = grid;
|
||||||
this.viewUpdateEvent = viewUpdate;
|
|
||||||
this.gameFinishEvent = gameFinishEvent;
|
this.gameFinishEvent = gameFinishEvent;
|
||||||
grid.initPlacePlayers();
|
placePlayersBRUT();
|
||||||
|
currentPlayer.setActions(generateAndGetPlayerActions(currentPlayer));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @deprecated utiliser pour le moment, nécessite une meilleure implémentation pour savoir ou placé les joueurs
|
* @deprecated utiliser pour le moment, nécessite une meilleure implémentation pour savoir ou placé les joueurs
|
||||||
*/
|
*/
|
||||||
|
@Deprecated
|
||||||
|
public void placePlayersBRUT(){
|
||||||
|
grid.getBoard().get(new Point(7,7)).setA(grid.getPlayers().get(0));
|
||||||
|
grid.getPlayers().get(0).setPosition(new Point(7, 7));
|
||||||
|
grid.getBoard().get(new Point(7,8)).setA(grid.getPlayers().get(1));
|
||||||
|
grid.getPlayers().get(1).setPosition(new Point(7, 8));
|
||||||
|
}
|
||||||
|
|
||||||
public void play() {
|
public void play() {
|
||||||
while(!isOver()) {
|
if (currentPlayer instanceof ComputerPlayer player) {
|
||||||
awakeEvent = new AwakeGame(this);
|
selectedAction = player.choseAction();
|
||||||
currentPlayer.setActions(generateAndGetPlayerActions(currentPlayer));
|
}
|
||||||
if(currentPlayer instanceof HumanPlayer) {
|
|
||||||
interfaceAction = InterfaceAction.SELECT_ACTION;
|
|
||||||
waitForInterfaceEvent();
|
|
||||||
selectedAction.doAction();
|
selectedAction.doAction();
|
||||||
} else {
|
|
||||||
ComputerPlayer player = (ComputerPlayer) currentPlayer;
|
|
||||||
Action action = player.choseAction();
|
|
||||||
action.doAction();
|
|
||||||
waitNSeconds(2);
|
|
||||||
}
|
|
||||||
selectedAction = null;
|
|
||||||
nextCurrentPlayer();
|
nextCurrentPlayer();
|
||||||
viewUpdateEvent.updateModel(null);
|
currentPlayer.setActions(generateAndGetPlayerActions(currentPlayer));
|
||||||
}
|
if(isOver()) {
|
||||||
gameFinishEvent.updateModel(null);
|
gameFinishEvent.updateModel(null);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
private void waitForInterfaceEvent() {
|
private void waitForInterfaceEvent() {
|
||||||
synchronized (lock){
|
|
||||||
try {
|
|
||||||
wait();
|
|
||||||
} catch (InterruptedException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
private void waitNSeconds(int n) {
|
|
||||||
synchronized (this){
|
synchronized (this){
|
||||||
try {
|
try {
|
||||||
wait(TimeUnit.SECONDS.toMillis(n));
|
wait();
|
||||||
} catch (InterruptedException e) {
|
} catch (InterruptedException e) {
|
||||||
throw new CrashException(e.getMessage(), e);
|
throw new CrashException(e.getMessage(), e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void resumeThread() {
|
public void resumeThread() {
|
||||||
synchronized (lock) {
|
synchronized (this) {
|
||||||
lock.notifyAll();
|
notifyAll();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected List<Action> generateAndGetPlayerActions(Player player) {
|
public List<Action> generateAndGetPlayerActions(Player player) {
|
||||||
List<Action> actions = new ArrayList<>();
|
List<Action> actions = new ArrayList<>();
|
||||||
for(Direction direction : Direction.values()) {
|
for(Direction direction : Direction.values()) {
|
||||||
try {
|
try {
|
||||||
@ -155,7 +139,7 @@ public class Game {
|
|||||||
return players;
|
return players;
|
||||||
}
|
}
|
||||||
|
|
||||||
public InterfaceAction getInterfaceAction() {
|
public Action getSelectedAction() {
|
||||||
return interfaceAction;
|
return selectedAction;
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -2,6 +2,7 @@ package fr.lnl.game.server.games;
|
|||||||
|
|
||||||
public enum InterfaceAction {
|
public enum InterfaceAction {
|
||||||
|
|
||||||
SELECT_ACTION
|
SELECT_ACTION,
|
||||||
|
DIALOG_TO_CONTINUE_COMPUTER_IA
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,17 +0,0 @@
|
|||||||
package fr.lnl.game.server.listener;
|
|
||||||
|
|
||||||
import fr.lnl.game.server.games.Game;
|
|
||||||
|
|
||||||
public class AwakeGame extends AbstractModelListening {
|
|
||||||
|
|
||||||
private final Game game;
|
|
||||||
|
|
||||||
public AwakeGame(Game game) {
|
|
||||||
this.game = game;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void updateModel(Object obj) {
|
|
||||||
game.resumeThread();
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,7 +1,6 @@
|
|||||||
package fr.lnl.game.server;
|
package fr.lnl.game.server;
|
||||||
|
|
||||||
import fr.lnl.game.server.games.Game;
|
import fr.lnl.game.server.games.Game;
|
||||||
import fr.lnl.game.server.games.MockViewUpdate;
|
|
||||||
import fr.lnl.game.server.games.grid.EnergyBall;
|
import fr.lnl.game.server.games.grid.EnergyBall;
|
||||||
import fr.lnl.game.server.games.grid.Grid;
|
import fr.lnl.game.server.games.grid.Grid;
|
||||||
import fr.lnl.game.server.games.grid.Wall;
|
import fr.lnl.game.server.games.grid.Wall;
|
||||||
@ -23,8 +22,11 @@ public class Mock {
|
|||||||
public Mock() {
|
public Mock() {
|
||||||
List<Player> players = Arrays.asList(new RandomComputerPlayer(1,null, ClassPlayer.DEFAULT),
|
List<Player> players = Arrays.asList(new RandomComputerPlayer(1,null, ClassPlayer.DEFAULT),
|
||||||
new RandomComputerPlayer(2,null, ClassPlayer.DEFAULT));
|
new RandomComputerPlayer(2,null, ClassPlayer.DEFAULT));
|
||||||
this.grid = new Grid(16,16, players, 0.80F,0.95F);
|
this.grid = new Grid(16,16, players);
|
||||||
game = new Game(grid, players, new MockViewUpdate(), new GameFinishEvent());
|
placePlayersBRUT();
|
||||||
|
placeEnergyBallBRUT();
|
||||||
|
placeInternWallBRUT();
|
||||||
|
game = new Game(grid, players, new GameFinishEvent());
|
||||||
}
|
}
|
||||||
|
|
||||||
public void placePlayersBRUT(){
|
public void placePlayersBRUT(){
|
||||||
|
@ -1,10 +0,0 @@
|
|||||||
package fr.lnl.game.server.games;
|
|
||||||
|
|
||||||
import fr.lnl.game.server.listener.AbstractModelListening;
|
|
||||||
|
|
||||||
public class MockViewUpdate extends AbstractModelListening {
|
|
||||||
@Override
|
|
||||||
public void updateModel(Object obj) {
|
|
||||||
// no op
|
|
||||||
}
|
|
||||||
}
|
|