Compare commits

..

114 Commits

Author SHA1 Message Date
Katchan
b12dee698f Add rapport 2021-12-09 22:14:38 +01:00
063d57961b first delivery 2021-12-09 21:36:20 +01:00
a4e1831052 fix :client:run 2021-12-09 21:24:51 +01:00
681e8b798f fix build not working 2021-12-09 21:15:23 +01:00
Katchan
cdb11a2de6 Merge remote-tracking branch 'origin/master' 2021-12-09 21:02:06 +01:00
Katchan
06319283bb Imports optimization 2021-12-09 20:57:34 +01:00
Katchan
51a0498886 Add FactoryPattern Javadoc 2021-12-09 20:56:50 +01:00
dcd100cb76 Reworked how work Bomb and Mine, fix Bomb not exploding correctly when player walks on it 2021-12-09 20:26:26 +01:00
80b737ad5f fix DropBomb, DropMine and Shot not using the correct Direction implementation, delete debug messages 2021-12-09 19:55:16 +01:00
af5cbf80c1 add start bash and cmd files 2021-12-09 17:33:14 +01:00
2b77a2a566 Add support to 8 axis to shot action 2021-12-09 16:50:43 +01:00
1b556e5ac8 add javadoc to client.listener 2021-12-09 16:30:11 +01:00
fb408a3f78 update javadoc from package client.view 2021-12-09 16:07:03 +01:00
4caa131a4c add javadoc to client.view 2021-12-09 15:39:45 +01:00
94cd0bb030 Add javadoc to client package (no subpackage) 2021-12-09 14:48:27 +01:00
Katchan
4062f43c40 Merge remote-tracking branch 'origin/master' 2021-12-09 14:19:37 +01:00
Katchan
491f537cae Improve Window view 2021-12-09 14:19:08 +01:00
4098e01630 move playersList from App to ViewManager 2021-12-09 14:18:44 +01:00
5beaeacc1e fix special character not showing correctly in javafx on windows 2021-12-09 13:07:59 +01:00
35875a8107
Merge pull request #3 from quentinlegot/conflit-3
Added buttons when player is human
2021-12-09 12:52:30 +01:00
aacbd65b56
Merge branch 'master' into conflit-3 2021-12-09 12:51:10 +01:00
71f87a3f1c Added buttons when player is human 2021-12-09 12:47:41 +01:00
Katchan
17e63aa826 Add stage icon 2021-12-09 12:46:40 +01:00
Katchan
2670acc775 Improve window view 2021-12-09 12:39:12 +01:00
9771d397a8 add javadoc to server.utils and server.listener 2021-12-08 22:52:09 +01:00
Katchan
eaec044950 Merge remote-tracking branch 'origin/master'
# Conflicts:
#	server/src/main/java/fr/lnl/game/server/games/Game.java
2021-12-08 21:50:00 +01:00
Katchan
dab710597b Improve display in terminal view and add Shot icon in Window view 2021-12-08 21:47:34 +01:00
Katchan
417d311435 Improve StrategyComputerPlayer 2021-12-08 21:46:37 +01:00
f7b6f32ae2 add javadoc to Game.java, delete InterfaceAction (was useless), improved grid factory calls consistency 2021-12-08 21:18:55 +01:00
c856a03621 update README.txt 2021-12-08 19:55:29 +01:00
66cdda1304
Merge pull request #2 from quentinlegot/conflit-2
updated javadoc syntax in some places, add javadoc to game.player and…
2021-12-08 19:11:45 +01:00
3e2252a5ad
Merge branch 'master' into conflit-2 2021-12-08 19:11:18 +01:00
848fccbefd updated javadoc syntax in some places, add javadoc to game.player and game.weapon 2021-12-08 19:09:58 +01:00
Katchan
37d03e570a Add basis strategy on StrategyComputerPlayer and implementation on this player in the game, view. 2021-12-08 18:56:26 +01:00
Katchan
4c52bedc9f Improve display of classes in the view, add player shield icon 2021-12-08 18:54:52 +01:00
Katchan
2e99366e56 Add utils functions 2021-12-08 18:52:12 +01:00
8415739d18 add javadoc to grid's elements, deleted useless x and y parameters in Wall, adjustments to bombs timer and explosion size 2021-12-08 18:43:34 +01:00
ea07ca0c6a add comments to Grid package, delete arguments to GridFacotryBuilder's methods where it's unnecessary 2021-12-08 17:18:11 +01:00
03be6c2a78 add javadoc to actions, delete gradle.properties 2021-12-08 16:08:33 +01:00
938eefe387 Improve CrashException handler, fix java encoding, updated junit dependencies, add private methods to javadoc, renamed Error to ErrorMessage 2021-12-08 15:00:13 +01:00
Katchan
4305f8963b Add private view 2021-12-08 12:52:25 +01:00
609966d9af Rework ChoseAction when currentPlayer is Human(now respect M-VC(terminal) model), but not implemented with Window 2021-12-08 11:58:40 +01:00
74b8489854 fix NullPointerException error when using Terminal view, fix MVC model not respected to display winner 2021-12-08 11:32:16 +01:00
Valentin Lucas
6e13a3124e Correction de quelques propriétés de Cell et modification de Window 2021-12-08 09:12:45 +01:00
Katchan
2e5fcd2a05 Add human terminal choseAction 2021-12-07 21:38:59 +01:00
Katchan
a6b9b69d9b Fix player who stayed on the grid 2021-12-07 21:38:43 +01:00
Katchan
4958c7688e Add useful functions and class 2021-12-07 21:37:16 +01:00
bf37f32407 Reworked GridStrategy and renamed it to GridFactoryBuilder 2021-12-07 18:10:18 +01:00
cacf5ee8c3 fix tests 2021-12-07 17:37:32 +01:00
2a8eac9ea2 Merge branch 'master' of https://github.com/quentinlegot/legot-neveu-lucas 2021-12-07 16:05:46 +01:00
221aa3faec fix ButtonListener.java 2021-12-07 16:05:09 +01:00
Valentin Lucas
b0be4e1f68 Merge remote-tracking branch 'origin/master' 2021-12-07 16:03:28 +01:00
Valentin Lucas
422b0a4962 Correction du numéro du joueur + factorisation de quelques méthodes de window 2021-12-07 16:03:02 +01:00
c07266a763
add dialog when game finish (#1) 2021-12-07 16:02:20 +01:00
Katchan
db2e2e1f7a Merge remote-tracking branch 'origin/master' 2021-12-07 15:56:03 +01:00
Katchan
ca756c6e01 Fix explosives bugs 2021-12-07 15:55:51 +01:00
Valentin Lucas
486d3a2e2a Modification de ButtonListener 2021-12-07 15:32:09 +01:00
Katchan
0e8a46421f Merge remote-tracking branch 'origin/master' 2021-12-07 15:31:28 +01:00
Katchan
f4c3b09078 Fix actions and display bugs 2021-12-07 15:31:18 +01:00
7c00cd474b Add System.in as standard input 2021-12-07 15:13:27 +01:00
19dceafb7d Major improvement of windows (in terms of cpu, disk and ram performances), move ClientEventHandler.java to listener package 2021-12-07 12:19:31 +01:00
Valentin Lucas
1defc451aa Modification de putStatePlayerPane(), showStatePlayer(),showMoveText() (Reste à corriger certaines choses) 2021-12-07 10:07:38 +01:00
Valentin Lucas
bb44efd9fc Ajout de ShowMoveText() et showStatePlayers (à modifier) 2021-12-06 16:03:24 +01:00
e7740739d9 Add support to grid elements using a countdown like bomb 2021-12-06 13:02:55 +01:00
7dde04303c Move images, optimize imports, move GUI instructions to Window.java 2021-12-04 16:13:22 +01:00
Katchan
aea8ac654d Fix build function call 2021-12-04 15:36:47 +01:00
Katchan
87d4b6ca39 Fix Git add files 2021-12-04 15:20:12 +01:00
Katchan
f4477ac1e0 Add buildGrid Strategy Pattern 2021-12-04 15:17:41 +01:00
Katchan
daa07887f7 Deletion of the notion of cardinal for a wall 2021-12-03 15:45:09 +01:00
0a4e706e07 Fix images not loading 2021-12-03 15:30:38 +01:00
899f3ecebf Merge remote-tracking branch 'origin/master' 2021-12-03 15:25:13 +01:00
Katchan
3066ecf211 Fix critical bug 2021-12-03 15:22:00 +01:00
Katchan
7afd79b929 Conflict resolution 2021-12-02 20:11:23 +01:00
Katchan
e862e79a62 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
2021-12-02 20:06:53 +01:00
Katchan
a354d4fb21 Mock update and import optimization 2021-12-02 20:03:46 +01:00
Katchan
5201e73772 Add AbstractBox and lock case notion (to see if it is viable to keep it) 2021-12-02 20:01:49 +01:00
Katchan
c6f4dbffe3 Add random choose method in the Cardinal enum 2021-12-02 20:00:53 +01:00
Katchan
d40dedfc17 Add placement rules for walls, energyballs and players 2021-12-02 19:59:53 +01:00
Valentin Lucas
0876b4c773 Ajouts d'images et quelques modification de cell et Gui 2021-12-02 19:56:37 +01:00
b6cc8f24f9 Fix terminal view + fix dialog incorrect computer id 2021-12-02 18:44:57 +01:00
623e6b5fb3 Merge remote-tracking branch 'origin/master' 2021-12-02 18:33:36 +01:00
4c7017ff97 FINALLY fix the game with Window (currently not work with terminal) 2021-12-02 18:33:18 +01:00
Valentin Lucas
572a20bcf7 Modification de Cell et GUI, Affichage réussie de la grille mais image pas encore affichée 2021-12-02 16:12:30 +01:00
2ebd51f011 Move viewUpdate to ViewManager.java, renamed getPoint() to getPosition() in Player, View still not work 2021-12-01 23:31:51 +01:00
Valentin Valentin
1b8f9a2b30 Modification de cell et ajout d'un main temporaire + ajout d'images 2021-11-30 18:18:08 +01:00
de8c258322 Fix game not launching + add supprot to Computer Players (AI) + fix view not updating at each Game#play 's loop 2021-11-29 19:22:43 +01:00
f73dfc8bb9 Fix client only launching app on terminal view 2021-11-29 18:22:21 +01:00
b08139ebca Fix NullPointerException in App.java 2021-11-27 19:20:27 +01:00
9cfa56be8d implement Game#play 2021-11-27 17:47:05 +01:00
42b0c656f8 forgot to add module-info.java to last commit 2021-11-27 17:02:51 +01:00
21e571027f Move and updated listeners 2021-11-27 17:01:25 +01:00
b702a4030f Reworked dropBomb and DropMine + reordered tests 2021-11-26 16:04:27 +01:00
360a84c403 Fix ArrayOutOfBoundException when we didn't have a winner 2021-11-18 11:06:53 +01:00
e2bd1a8bf6 Improve Shot Action and shotActionTest 2021-11-18 10:58:46 +01:00
8ca2326c89 Added 1 test 2021-11-07 15:58:55 +01:00
cb4c020fe6 Improved actions consistency 2021-11-07 15:36:16 +01:00
4b5f9b719d Improved interaction with box 2021-11-07 15:15:27 +01:00
01d855435e Improved Move Action 2021-11-05 17:33:42 +01:00
Valentin Valentin
a2270d5de0 Ajout de la classe Cell et GUI, début d'implémentation de certaines de leurs méthodes. 2021-11-05 15:42:06 +01:00
Katchan
a7775f9c2a Optimize imports 2021-11-05 15:36:03 +01:00
Katchan
3ccc26592c Add differents ComputerPlayer class + refactor calls 2021-11-05 15:35:25 +01:00
a2ebb5195c Add players' classes (dps, tank and support) 2021-11-05 13:50:02 +01:00
Katchan
4ac571ad09 Optimize import 2021-10-28 23:23:10 +02:00
Katchan
8a35d22b58 Add basis Play test and Shot test 2021-10-28 23:21:53 +02:00
Katchan
2322462ab3 Add various changes on Pair toString, Firearm getter 2021-10-28 23:19:53 +02:00
Katchan
19e5f19b19 Add increment function 2021-10-28 23:18:31 +02:00
Katchan
785e28e6a9 Implement all action function 2021-10-28 23:17:12 +02:00
70439266e9 Fix encoding 2021-10-28 16:18:47 +02:00
5912b49356 Partially fix GridTest.java 2021-10-26 17:17:06 +02:00
3a31f8485d Merge branch 'testplay'
# Conflicts:
#	server/src/main/java/fr/lnl/game/server/games/Game.java
#	server/src/main/java/fr/lnl/game/server/games/action/DeployShield.java
#	server/src/main/java/fr/lnl/game/server/games/action/DropMine.java
2021-10-26 17:08:38 +02:00
2e86f71e94 Improved argument parser and fix a bug with grid not initialize on new instance 2021-10-26 16:04:12 +02:00
ad9ac682bb Create a view per player + improved arguments parser 2021-10-26 10:26:31 +02:00
4e2da3330a Added very basic view support + reworked players' fields in Game.java and Grid.java 2021-10-23 19:15:08 +02:00
Valentin Valentin
d6f2217554 Finalisation des classes DeployShield, DropBomb et DropMine 2021-10-22 08:17:50 +02:00
387 changed files with 31257 additions and 591 deletions

4
.gitignore vendored
View File

@ -7,4 +7,6 @@
.gradle .gradle
# Ignore Gradle build output directory # Ignore Gradle build output directory
build server/build
client/build
buildSrc/build

View File

@ -1,6 +1,44 @@
Projet de Conception Logiciel concu par : " Projet de Conception Logiciel conçu par :
LUCAS Valentin LUCAS Valentin
LEGOT Quentin LEGOT Quentin
NEVEU Thomas NEVEU Thomas
# Attention
Ce projet utilise la possibilité de séparé son projet en plusieurs modules en avec Gradle ainsi la disposition des dossiers demandé pour le rendu n'a pas pu être respecté
afin que le programme fonctionne.
# Dépendances
Le projet nécessite le ressources suivante pour fonctionner:
- Java 17 (téléchargeable depuis apt sur Debian 11 ou en téléchargeant sur Oracle ou openJDK)
- Gradle 7.3 ou supérieur (téléchargeable depuis https://gradle.org/releases/ puis en suivez les indications données sur cette page: https://docs.gradle.org/7.3.1/userguide/installation.html#installing_manually )
Accédez ensuite à la racine du projet (dossier livraison/ normalement ou du moins le dossier contenant le fichier settings.gradle) pour pouvoir execute le programme
# Les commandes
- `gradle :client:run --args="[ARGUMENTS]"` permet de lancer le jeu avec les arguments suivant la logique suivant
- le premier argument concerne le type de vue, indiquer `terminal` pour jouer en mode terminal ou `window` pour jouer en mode fenêtre avec JavaFX
- les arguments suivants concernent les joueurs, ils suivent une forme "<type du joueur> [classe du joueur]"
- `type du joueur` pour indiquer si le joueur est:
- `human` pour indiquer un joueur humain utilisant le clavier ou la souris
- `computer` indiquant un joueur ordinateur jouant des coups aléatoire
- `computerS` indiquant un joueur ordinateur semi-aléatoire
- `classe du joueur` est un paramètre facultatif correspond à:
- `tank` indiquant que le joueur est de type tank et qu'il subit moins de dégâts des explosions que les autres ses coups en energies pour faire des actions sont plus élevés
- `dps` ou `default` et un joueur standard, infligeant le plus de dégâts d'attaque et ayant un coup de déplacement équilibré, c'est la valeur par défaut si la classe de ce joueur n'est pas donné
- `support` est un joueur basé sur la pose d'explosif, n'allant que peu au combat direct, ses coups de déplacement sont standard mais ses coups en energies de pose de mine ou de bombes sont les plus faibles.
- Un exemple de ce que cela peux donner est: `window computer default human support computerS dps human tank`
- ici On joue en vue fenêtre avec 4 joueurs:
- computer de classe default (ou dps)
- human de classe support
- computerS de classe dps (ou default)
- human de classe tank
- `gradle build` permet de compiler, exécuter les tests et archiver les classes dans un fichier `.jar` pour chaque module (client et server)
- `gradle javadoc` pour générer la javadoc, une javadoc est générer par projet (soit 2 javadocs), nous vous mettons à disposition dans le dossier livraison un dossier javadoc pour faciliter la navigation
- Si vous voulez naviguer dans la nouvelle javadoc que vous aurez générer, vous pouvez y accéder en allant dans livraison/MODULE/build/doc/javadoc
- les modules étant `client` et `server`
- `gradle test` pour exécuter les tests unitaires

8
build.gradle Normal file
View File

@ -0,0 +1,8 @@
subprojects {
apply plugin: 'java'
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
javadoc {
options.memberLevel = JavadocMemberLevel.PRIVATE
}
}

View File

@ -6,6 +6,7 @@ plugins {
id 'application' id 'application'
id 'fr.lnl.game.java-application-conventions' id 'fr.lnl.game.java-application-conventions'
id 'org.openjfx.javafxplugin' version '0.0.10' id 'org.openjfx.javafxplugin' version '0.0.10'
id 'org.javamodularity.moduleplugin' version '1.8.10' apply false
} }
repositories { repositories {
@ -24,4 +25,9 @@ javafx {
application { application {
// Define the main class for the application. // Define the main class for the application.
mainClassName = 'fr.lnl.game.client.App' mainClassName = 'fr.lnl.game.client.App'
mainModule = "client"
}
run {
standardInput = System.in
} }

View File

@ -1,4 +0,0 @@
package fr.lnl.game.client;
public abstract class AbstractView implements View {
}

View File

@ -1,31 +1,203 @@
/*
* This Java source file was generated by the Gradle 'init' task.
*/
package fr.lnl.game.client; package fr.lnl.game.client;
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.grid.build.GridFactoryBuilder;
import fr.lnl.game.server.games.grid.build.LockGridFactoryBuilder;
import fr.lnl.game.server.games.player.*;
import fr.lnl.game.server.utils.CrashException;
import fr.lnl.game.server.utils.Point;
import javafx.application.Application; import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage; import javafx.stage.Stage;
import static fr.lnl.game.server.MessageUtils.getMessage; import java.lang.reflect.InvocationTargetException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.LinkedList;
import java.util.List;
/**
* Application starting point
*/
public class App extends Application { public class App extends Application {
private static LinkedList<String> argsList;
private static Game game;
private static ViewManager viewManager;
public static void main(String[] args) { public static void main(String[] args) {
String result = getMessage(); try {
System.out.println(result); argsList = new LinkedList<>(Arrays.asList(args));
launch(); argsList.removeIf(s -> s.startsWith("-D") || s.equals("fr.lnl.game.client.App")); // remove given parameters from gradle
Class<? extends AbstractView> clazz;
try {
clazz = parseView();
} catch (IllegalArgumentException e) {
throw new CrashException(e.getMessage(), e);
}
if(clazz.equals(Terminal.class)) {
launchTerminal();
} else {
launch();
}
} catch(CrashException e) {
System.err.println("Une erreur est survenue et l'application a été obligé de fermer");
System.err.println(e.getCause().toString());
for (StackTraceElement element : e.getStackTrace()) {
System.err.println(" at " + element.toString());
}
System.exit(1);
}
}
/**
* Parse players arguments and create a new instance of Game
* @throws IllegalArgumentException when given argument is unknown
* @throws InvocationTargetException when the creation of the player throw an exception
* @throws NoSuchMethodException when constructor with given parameter in {@link Class#getConstructor(Class[])}
* doesn't exist
* @throws InstantiationException when the instanciation of the player is impossible (like when class is abstract),
* is probably never called
* @throws IllegalAccessException when the instanciation of thr player is impossible (like a private constructor),
* is probably never called
*/
public static void startGame() throws IllegalArgumentException, InvocationTargetException, NoSuchMethodException,
InstantiationException, IllegalAccessException {
List<Player> players = parsePlayers();
GridFactoryBuilder builder = LockGridFactoryBuilder.create().energyProbability(0.95F).wallProbability(0.80F).gridDimensions(12, 12);
game = new Game(builder, players);
} }
@Override @Override
public void start(Stage stage) throws Exception { public void start(Stage stage) {
System.out.println("Launching stage"); try {
String javaVersion = System.getProperty("java.version"); startGame();
String javafxVersion = System.getProperty("javafx.version"); } catch (IllegalArgumentException | InvocationTargetException | NoSuchMethodException | InstantiationException
Label l = new Label("Hello, JavaFX version " + javafxVersion + ", running on Java " + javaVersion + "."); | IllegalAccessException e) {
Scene scene = new Scene(new StackPane(l), 640, 480); throw new CrashException(e.getMessage(), e);
stage.setScene(scene); }
stage.show(); viewManager = new ViewManager(game, Window.class, player -> new Window(stage, game, player));
viewManager.run();
}
public static void launchTerminal() {
try {
startGame();
} catch (IllegalArgumentException | InvocationTargetException | NoSuchMethodException | InstantiationException
| IllegalAccessException e) {
throw new CrashException(e.getMessage(), e);
}
viewManager = new ViewManager(game, Terminal.class, player -> new Terminal(game, player));
viewManager.run();
}
/**
* Parse players arguments and create instances for each player
* @throws IllegalArgumentException when given argument is unknown
* @throws InvocationTargetException when the creation of the player throw an exception
* @throws NoSuchMethodException when constructor with given parameter in {@link Class#getConstructor(Class[])}
* doesn't exist
* @throws InstantiationException when the instanciation of the player is impossible (like when class is abstract),
* is probably never called
* @throws IllegalAccessException when the instanciation of thr player is impossible (like a private constructor),
* is probably never called
*/
public static List<Player> parsePlayers() throws IllegalArgumentException, NoSuchMethodException,
InvocationTargetException, InstantiationException, IllegalAccessException {
List<Player> playerList = new ArrayList<>();
Class<? extends AbstractPlayer> playerClass = null;
ClassPlayer classPlayer = null;
for(String str : argsList) {
switch (str) {
case "human" -> {
if(playerClass != null) {
playerList.add(createNewPlayer(playerClass,
classPlayer != null ? classPlayer : ClassPlayer.DEFAULT, playerList.size())
);
classPlayer = null;
}
playerClass = HumanPlayer.class;
}
case "computer" -> {
if(playerClass != null) {
playerList.add(createNewPlayer(playerClass,
classPlayer != null ? classPlayer : ClassPlayer.DEFAULT, playerList.size())
);
classPlayer = null;
}
playerClass = RandomComputerPlayer.class;
}
case "computerS" -> {
if(playerClass != null) {
playerList.add(createNewPlayer(playerClass,
classPlayer != null ? classPlayer : ClassPlayer.DEFAULT, playerList.size())
);
classPlayer = null;
}
playerClass = StrategyComputerPlayer.class;
}
case "default" -> classPlayer = ClassPlayer.DEFAULT;
case "tank" -> classPlayer = ClassPlayer.TANK;
case "dps" -> classPlayer = ClassPlayer.DPS;
case "support" -> classPlayer = ClassPlayer.SUPPORT;
default -> throw new IllegalArgumentException("Unknown argument: " + str);
}
}
if(playerClass != null)
playerList.add(createNewPlayer(playerClass,
classPlayer != null ? classPlayer : ClassPlayer.DEFAULT, playerList.size())
);
return playerList;
}
/**
* create a new instance of the player
* @throws IllegalArgumentException when given argument is unknown (probably never called in production)
* @throws InvocationTargetException when the creation of the player throw an exception
* @throws NoSuchMethodException when constructor with given parameter in {@link Class#getConstructor(Class[])}
* doesn't exist
* @throws InstantiationException when the instanciation of the player is impossible (like when class is abstract),
* is probably never called
* @throws IllegalAccessException when the instanciation of thr player is impossible (like a private constructor),
* is probably never called
*/
private static Player createNewPlayer(Class<? extends AbstractPlayer> playerClass, ClassPlayer playerType,
int playerListSize) throws NoSuchMethodException, InvocationTargetException,
InstantiationException, IllegalAccessException {
return playerClass.getConstructor(Integer.class, Point.class, ClassPlayer.class)
.newInstance(playerListSize, null, playerType);
}
/**
* Parse the first argument given by user to know the view to use (Terminal or Window)
* @return The class of the View to use
* @throws IllegalArgumentException when given argument is unknown or no argument is given by user
*/
public static Class<? extends AbstractView> parseView() throws IllegalArgumentException {
Class<? extends AbstractView> clazz;
if(!argsList.isEmpty()) {
if(argsList.get(0).equals("terminal")) {
clazz = Terminal.class;
} else if(argsList.get(0).equals("window")){
clazz = Window.class;
} else {
throw new IllegalArgumentException("Unknown argument: " + argsList.get(0));
}
argsList.removeFirst();
} else {
throw new IllegalArgumentException("No argument given");
}
return clazz;
}
public static ViewManager getViewManager() {
return viewManager;
}
public static Game getGame() {
return game;
} }
} }

View File

@ -0,0 +1,18 @@
package fr.lnl.game.client;
import fr.lnl.game.client.view.View;
import fr.lnl.game.server.games.player.Player;
/**
* Store a view per player
*/
public record ClientPlayer(Player serverPlayer, View view) {
public Player getServerPlayer() {
return serverPlayer;
}
public View getView() {
return view;
}
}

View File

@ -1,4 +0,0 @@
package fr.lnl.game.client;
public interface View {
}

View File

@ -0,0 +1,19 @@
package fr.lnl.game.client;
import fr.lnl.game.client.view.View;
import fr.lnl.game.server.games.player.Player;
/**
* Used as Lambda expression to instantiate a {@link View} per {@link Player} stored in {@link ClientPlayer}
*/
@FunctionalInterface
public interface ViewLambda {
/**
* A lambda create an anonymous class which implements this interface
* @param player an instance of {@link Player} to store in {@link View}
* @return an instance of view (depending on the first argument when launching the program)
*/
View createViewLambda(Player player);
}

View File

@ -1,4 +0,0 @@
package fr.lnl.game.client;
public class Window extends AbstractView {
}

View File

@ -1,6 +0,0 @@
package fr.lnl.game.client.graphics;
import fr.lnl.game.client.AbstractView;
public class Terminal extends AbstractView {
}

View File

@ -0,0 +1,20 @@
package fr.lnl.game.client.listener;
import fr.lnl.game.server.listener.ModelListener;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
/**
* implementation of a listener from JavaFX {@link EventHandler}
*/
public record ClientEventHandler(ModelListener listener) implements EventHandler<ActionEvent> {
/**
* This method is call by JavaFX when we click to the button
* @param event event class created when clicking on the element
*/
@Override
public void handle(ActionEvent event) {
listener.updateModel(event);
}
}

View File

@ -0,0 +1,21 @@
package fr.lnl.game.client.listener;
import fr.lnl.game.client.App;
import fr.lnl.game.server.games.player.Player;
import fr.lnl.game.server.listener.AbstractModelListening;
/**
* Used to display the winner of the game
*/
public class DisplayWinnerEvent extends AbstractModelListening {
/**
* This method is call when the game is over
* @param obj contains the winner of the game, can be null
*/
@Override
public void updateModel(Object obj) {
Player winner = (Player) obj;
App.getViewManager().displayWinner(winner);
}
}

View File

@ -0,0 +1,40 @@
package fr.lnl.game.client.listener;
import fr.lnl.game.client.App;
import fr.lnl.game.server.games.Game;
import fr.lnl.game.server.listener.AbstractModelListening;
/**
* This method is call when the current player have selected an action to play (or if it's a computer player, will
* select it), then we call {@link Game#play()} and we update the view
*/
public class NextPlayerButtonListener extends AbstractModelListening {
private final Game game;
private final DisplayWinnerEvent displayWinnerEvent;
public NextPlayerButtonListener(Game game) {
this.game = game;
this.displayWinnerEvent = new DisplayWinnerEvent();
}
/**
* Call when clicking on "SUIVANT" button if current player is a computer player or after the human player selected
* action it want to play
*/
@Override
public void updateModel(Object event) {
// Player player = game.getCurrentPlayer();
boolean isOver = game.play();
/* Alert alert = new Alert(Alert.AlertType.INFORMATION);
alert.setTitle("Un joueur ordinateur a joué");
alert.setHeaderText("Le joueur ordinateur numéro" + player.getId() + " a joué");
alert.setContentText("Il a joué l'action: " + game.getSelectedAction()); */
App.getViewManager().updateView();
if(isOver) {
displayWinnerEvent.updateModel(game.getWinner());
System.exit(0);
}
//alert.showAndWait();
}
}

View File

@ -0,0 +1,38 @@
package fr.lnl.game.client.listener;
import fr.lnl.game.client.App;
import fr.lnl.game.client.view.Window;
import fr.lnl.game.server.games.Game;
import fr.lnl.game.server.games.action.ReunionSameAction;
import fr.lnl.game.server.listener.AbstractModelListening;
/**
* Used when the human player select type of action it want to play
*/
public class SelectActionButton extends AbstractModelListening {
private final Window window;
private final ReunionSameAction reunionSameAction;
private final Game game;
public SelectActionButton(Game game, Window window, ReunionSameAction reunionSameAction) {
this.game = game;
this.window = window;
this.reunionSameAction = reunionSameAction;
}
/**
* This method is call when the player select the type of action it want to play
* @param obj contain information about the event like the button where the player clicked
*/
@Override
public void updateModel(Object obj) {
if(reunionSameAction.getActions().size() == 1){
game.setSelectedAction(reunionSameAction.getActions().get(0));
window.getNextPlayerButtonListener().updateModel(obj);
} else {
window.setSelectedReunionAction(reunionSameAction);
App.getViewManager().updateView(); // update screen
}
}
}

View File

@ -0,0 +1,34 @@
package fr.lnl.game.client.listener;
import fr.lnl.game.client.view.Window;
import fr.lnl.game.server.games.Game;
import fr.lnl.game.server.games.action.Action;
import fr.lnl.game.server.listener.AbstractModelListening;
/**
* Call when the player selected the direction where it wants to play it
*/
public class SelectDirectionListener extends AbstractModelListening {
private final Game game;
private final Action action;
private final Window window;
public SelectDirectionListener(Game game, Window window, Action action) {
this.game = game;
this.window = window;
this.action = action;
}
/**
* This method is call when the player click on the button to select the direction of the previously selected action
* @param obj contain information about the event like the button where the player clicked
*/
@Override
public void updateModel(Object obj) {
game.setSelectedAction(action);
window.setSelectedReunionAction(null);
window.getNextPlayerButtonListener().updateModel(obj);
}
}

View File

@ -0,0 +1,4 @@
/**
* Package that contains every view listeners
*/
package fr.lnl.game.client.listener;

View File

@ -0,0 +1,4 @@
/**
* Client package
*/
package fr.lnl.game.client;

View File

@ -0,0 +1,18 @@
package fr.lnl.game.client.view;
import fr.lnl.game.server.games.Game;
import fr.lnl.game.server.games.player.Player;
/**
* Abstract class implemented by every view classes
*/
public abstract class AbstractView implements View {
protected final Player player;
protected Game game;
public AbstractView(Game game, Player player) {
this.game = game;
this.player = player;
}
}

View File

@ -0,0 +1,89 @@
package fr.lnl.game.client.view;
import fr.lnl.game.server.games.Game;
import fr.lnl.game.server.games.action.Shot;
import fr.lnl.game.server.games.grid.elements.Bomb;
import fr.lnl.game.server.games.grid.elements.EnergyBall;
import fr.lnl.game.server.games.grid.elements.Mine;
import fr.lnl.game.server.games.grid.elements.Wall;
import fr.lnl.game.server.games.player.Player;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.layout.*;
import javafx.scene.paint.Color;
import javafx.scene.shape.Rectangle;
/**
* classe qui a pour but de générer chaque case de la grid et de vérifier les entités présentes dessus
* (Mur, Joueur, Energie, Bombe, etc.)
*/
public class Cell extends Rectangle {
//Images libres de droit :
//https://www.minecraftforum.net/forums/mapping-and-modding-java-edition/resource-packs/1242533-pixel-perfection-now-with-polar-bears-1-11
//https://www.stocklib.fr/media-134367689/pixel-game-icons-vector-isolated-bombs-with-fire-graphics-of-retro-gaming-flat-style-of-weapon-with-flames-destruction-and-danger-explosive-substance.html?keyword=bomb%20pixel
private static final Image PLAYER_IMAGE = new Image("player.png");
private static final Image PLAYER_SHIELD_IMAGE = new Image("player_shield.png");
private static final Image PLAYER_SHOT_IMAGE = new Image("player_shot.png");
private static final Image ENERGY_BALL_IMAGE = new Image("energyBall.png");
private static final Image BOMB_IMAGE = new Image("bomb.png");
private static final Image MINE_IMAGE = new Image("mine.png");
private static final Image WALL_IMAGE = new Image("wall.png");
private static final Image BACKGROUND_IMAGE = new Image("background.png");
private static final BackgroundImage BG = new BackgroundImage(BACKGROUND_IMAGE,BackgroundRepeat.NO_REPEAT,BackgroundRepeat.NO_REPEAT,BackgroundPosition.DEFAULT,
BackgroundSize.DEFAULT);
public Cell(int x, int y){
setWidth(Window.cellSize);
setHeight(Window.cellSize);
relocate(x * Window.cellSize,y * Window.cellSize);
setFill(Color.WHITE);
setStroke(Color.DARKGRAY);
}
/**
* @param object the object we'll define the type
* @return a pane which contains an image depending on the type of the object
*/
public static StackPane setImageObject(Object object, Game game){
StackPane sp = new StackPane();
Image in;
BackgroundImage bg = BG;
if(object instanceof Player){
if(object.equals(game.getCurrentPlayer()) && game.getSelectedAction() instanceof Shot){
in = PLAYER_SHOT_IMAGE;
}
else if(((Player) object).isShieldDeploy()){
in = PLAYER_SHIELD_IMAGE;
}
else{
in = PLAYER_IMAGE;
}
} else if(object instanceof EnergyBall){
in = ENERGY_BALL_IMAGE;
} else if(object instanceof Bomb){
in = BOMB_IMAGE;
} else if(object instanceof Mine){
in = MINE_IMAGE;
}
else if(object instanceof Wall){
in = WALL_IMAGE;
bg = null;
}
else{
in = null;
}
ImageView iv = new ImageView(in);
iv.setFitHeight(Window.cellSize);
iv.setFitWidth(Window.cellSize);
sp.getChildren().add(iv);
sp.setBackground(new Background(bg));
return sp;
}
public static Image getPlayerImage() {
return PLAYER_IMAGE;
}
}

View File

@ -0,0 +1,113 @@
package fr.lnl.game.client.view;
import fr.lnl.game.server.games.Game;
import fr.lnl.game.server.games.action.*;
import fr.lnl.game.server.games.player.Player;
import fr.lnl.game.server.utils.Maths;
import java.util.List;
import java.util.Scanner;
/**
* View terminal, use standard input and output
*/
public class Terminal extends AbstractView {
/**
* Standard input
*/
public static Scanner scanner;
public Terminal(Game game, Player player) {
super(game, player);
}
/**
* Used to update view
*/
public void show() {
System.out.println(game.getGrid().privateView(player));
}
/**
* Used to display the winner of the game
* @param winner the player who win the game, can be Null
*/
@Override
public void displayWinner(Player winner) {
System.out.println("\n\033[0;31m====== FIN DU JEU ======\033[0m");
System.out.println(game.getGrid().toString());
if(winner == null) {
System.out.println("\n\033[0;Partie nulle, personne n'a gagné la partie\033[0m");
} else {
System.out.println("\n\033[0;33mVictoire de " + winner + " " + winner.getId() + "\033[0m");
}
}
/**
* Used when current player is an instance of {@link fr.lnl.game.server.games.player.HumanPlayer} and demand to it
* an action to do
* @return chosen action
* @see Terminal#choseReunionSameAction(List)
*/
public Action choseAction() {
List<ReunionSameAction> actions = player.generateAvailableActions();
List<Action> listActions = choseReunionSameAction(actions).getActions();
Action action = null;
String error = "Veuillez renseigner une valeur numérique comprise entre 1 et " + listActions.size();
do {
if(listActions.size() == 1){
return listActions.get(0);
}
System.out.println("Choisissez la cible :");
for (int i = 0; i < listActions.size(); i++) {
Action a = listActions.get(i);
if(a instanceof Move m){
System.out.println(i + 1 + " : " + m.getDirection());
}
else if(a instanceof DropObject o){
System.out.println(i + 1 + " : " + o.getDirection());
}
else if(a instanceof Shot s){
System.out.println(i + 1 + " : " + s.getPoint());
}
else{
System.out.println(i + 1 + " : " + a.getClass().getSimpleName());
}
}
String entry = scanner.next();
int value = Maths.testInteger(entry, scanner, error);
if (value >= 1 && value <= listActions.size()) {
action = listActions.get(value - 1);
}
} while (action == null);
return action;
}
/**
* Used when current player is an instance of {@link fr.lnl.game.server.games.player.HumanPlayer} and demand to it
* a type of action to do
* @param actions the list of actions possible
* @return the type of action to execute
* @see Terminal#choseAction()
*/
private ReunionSameAction choseReunionSameAction(List<ReunionSameAction> actions) {
ReunionSameAction reunion = null;
String error = "Veuillez renseigner une valeur numérique comprise entre 1 et " + actions.size();
Scanner scanner = new Scanner(System.in);
do {
System.out.println("Choisissez une action :");
for (int i = 0; i < actions.size(); i++) {
System.out.println(i + 1 + " : " + actions.get(i).getActionName());
}
String entry = scanner.next();
int value = Maths.testInteger(entry, scanner, error);
if (value >= 1 && value <= actions.size()) {
reunion = actions.get(value - 1);
}
}while (reunion == null) ;
return reunion;
}
}

View File

@ -0,0 +1,20 @@
package fr.lnl.game.client.view;
import fr.lnl.game.server.games.player.Player;
/**
* View interface, implemented by Terminal and Window.
*/
public interface View {
/**
* used to update screen
*/
void show();
/**
* Used to display the name of the winner
* @param winner the player who win the game, can be Null
*/
void displayWinner(/* Nullable */ Player winner);
}

View File

@ -0,0 +1,81 @@
package fr.lnl.game.client.view;
import fr.lnl.game.client.ClientPlayer;
import fr.lnl.game.client.ViewLambda;
import fr.lnl.game.client.listener.DisplayWinnerEvent;
import fr.lnl.game.server.games.Game;
import fr.lnl.game.server.games.player.HumanPlayer;
import fr.lnl.game.server.games.player.Player;
import java.util.HashMap;
import java.util.Scanner;
/**
* View manager, main access to every views
*/
public final class ViewManager {
private final Game game;
private final Class<? extends View> viewType;
public HashMap<Player, ClientPlayer> players = new HashMap<>();
public ViewManager(Game game, Class<? extends View> viewType, ViewLambda lambda) {
this.game = game;
this.viewType = viewType;
for (Player player : game.getPlayers()) {
players.put(player, new ClientPlayer(player, lambda.createViewLambda(player)));
}
}
/**
* Call when we need to change or update view
*/
public void updateView() {
players.get(game.getCurrentPlayer()).getView().show();
}
/**
* This method is call when the view is a terminal
*/
public void terminalView() {
Terminal.scanner = new Scanner(System.in);
DisplayWinnerEvent displayWinnerEvent = new DisplayWinnerEvent();
while (true) {
Player player = game.getCurrentPlayer();
System.out.println("\n\033[0;34m====== Tour n°" + game.getNbrTurn() + " =======\033[0m");
System.out.println("\nA \033[0;31m" + player + " " + player.getId() + "\033[0m de jouer");
players.get(game.getCurrentPlayer()).getView().show();
if (game.getCurrentPlayer() instanceof HumanPlayer human) {
game.setSelectedAction(((Terminal) players.get(human).getView()).choseAction());
}
boolean isOver = game.play();
System.out.println("\n\033[0;31m" + player + " " + player.getId() + "\033[0m utilise l'action \033[0;36m" +
game.getSelectedAction().getClass().getSimpleName() + "\033[0m");
if (isOver) {
displayWinnerEvent.updateModel(game.getWinner());
Terminal.scanner.close();
System.exit(0);
}
}
}
/**
* This method is call when the game is finish
* @param winner The winner of the game, can be null
*/
public void displayWinner(Player winner) {
players.get(game.getCurrentPlayer()).getView().displayWinner(winner);
}
/**
* This method is call after initialized view manager to display a first screen
*/
public void run() {
if (viewType == Terminal.class) {
terminalView();
} else {
updateView();
}
}
}

View File

@ -0,0 +1,302 @@
package fr.lnl.game.client.view;
import fr.lnl.game.client.App;
import fr.lnl.game.client.listener.ClientEventHandler;
import fr.lnl.game.client.listener.NextPlayerButtonListener;
import fr.lnl.game.client.listener.SelectActionButton;
import fr.lnl.game.client.listener.SelectDirectionListener;
import fr.lnl.game.server.games.Game;
import fr.lnl.game.server.games.action.*;
import fr.lnl.game.server.games.grid.Grid;
import fr.lnl.game.server.games.grid.elements.Box;
import fr.lnl.game.server.games.grid.elements.EnergyBall;
import fr.lnl.game.server.games.grid.elements.Explosive;
import fr.lnl.game.server.games.grid.elements.Wall;
import fr.lnl.game.server.games.player.HumanPlayer;
import fr.lnl.game.server.games.player.Player;
import fr.lnl.game.server.utils.Pair;
import fr.lnl.game.server.utils.Point;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.geometry.Insets;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.scene.control.Alert;
import javafx.scene.control.Button;
import javafx.scene.layout.*;
import javafx.scene.paint.Color;
import javafx.scene.shape.Rectangle;
import javafx.scene.text.Text;
import javafx.stage.Stage;
import java.util.List;
/**
* Window view, use mouse and keyboard to control interface
*/
public class Window extends AbstractView {
// il faut pouvoir trouver une formule responsive avec width et height
public static final int cellSize = 40;
public static final int width = 500;
public static final int height = 160;
private static final Color dark = Color.valueOf("1F1F1F");
private static final Background bg = new Background(new BackgroundFill(dark, CornerRadii.EMPTY, Insets.EMPTY));
private final Stage stage;
private Pane buttonPane;
private ReunionSameAction selectedReunionAction = null;
private final NextPlayerButtonListener nextPlayerButtonListener = new NextPlayerButtonListener(game);
public Window(Stage stage, Game game, Player player) {
super(game, player);
this.stage = stage;
}
/**
* used to update screen
*/
public void show() {
Scene scene = new Scene(createContent());
stage.setScene(scene);
stage.setTitle("Game");
stage.getIcons().add(Cell.getPlayerImage());
stage.setResizable(false);
stage.sizeToScene();
stage.show();
}
/**
* Used to display the name of the winner
* @param winner the player who win the game, can be Null
*/
@Override
public void displayWinner(Player winner) {
Alert alert = new Alert(Alert.AlertType.INFORMATION);
alert.setTitle("Fin du jeu");
alert.setHeaderText("La partie est termin\u00E9");
if(winner == null) {
alert.setContentText("La partie est nulle, personne n'a gagn\u00E9");
} else {
alert.setContentText("Le joueur " + winner + " " + winner.getId() + " a gagn\u00E9");
}
App.getViewManager().updateView();
alert.showAndWait();
}
/**
* Choose a direction between all possible from the previously selected action type
* @param selectedReunionAction previously selected type of action
* @see Window#choseReunionSameAction(List)
*/
public void choseDirectionAction(ReunionSameAction selectedReunionAction) {
for(int i = 0; i < selectedReunionAction.getActions().size(); ++i) {
Action action = selectedReunionAction.getActions().get(i);
if(action instanceof Move m){
addButtonToPane(m.getDirection().toString(),
new ClientEventHandler(new SelectDirectionListener(game, this, action)), buttonPane,
i * 100 + 50, 0);
}
else if(action instanceof DropObject o){
addButtonToPane(o.getDirection().toString(), new ClientEventHandler(new SelectDirectionListener(game, this, action)), buttonPane, i * 100 + 50, 0);
}
else if(action instanceof Shot s){
addButtonToPane(s.getPoint().toString(), new ClientEventHandler(new SelectDirectionListener(game, this, action)), buttonPane, i * 100 + 50, 0);
}
else{
addButtonToPane(action.getClass().getSimpleName(), new ClientEventHandler(new SelectDirectionListener(game, this, action)), buttonPane, i * 100 + 50, 0);
}
}
}
/**
* Used when {@link Game#getCurrentPlayer()} is an instance of {@link HumanPlayer}.
* Display button to demand to player to choose the type of action to execute
* @param actions the list of possible actions
* @see Window#choseDirectionAction(ReunionSameAction)
*/
private void choseReunionSameAction(List<ReunionSameAction> actions) {
for (int i = 0; i < actions.size(); i++) {
ReunionSameAction action = actions.get(i);
addButtonToPane(action.getActionName(), new ClientEventHandler(new SelectActionButton(game, this, action)),
buttonPane, i * 100 + 50, 0);
}
}
/**
* called when we add a button in the interface
* @param content content of the button
* @param listener listener of the button
* @param pane pane where we add the button
* @param offsetX move the button from the base position of the pane to the left (when offsetX is negative) or on
* the right (when offsetY is positive)
* @param offsetY move the button from the base position of the pane to the up (when offsetX is negative) or on
* the down (when offsetY is positive)
*/
private void addButtonToPane(String content, EventHandler<ActionEvent> listener, Pane pane, int offsetX, int offsetY) {
Button button = new Button(content);
button.setOnAction(listener);
button.setPrefSize(85, 35);
button.setStyle("-fx-background-color: #a96806;");
button.setTextFill(javafx.scene.paint.Color.WHITE);
button.setLayoutX(offsetX - button.getPrefWidth() / 2);
button.setLayoutY(offsetY);
pane.getChildren().add(button);
}
/**
* Create content of the stage
* @return the parent element to set to the stage
*/
private Parent createContent() {
Pane principalPane = new Pane();
principalPane.setPrefSize(game.getGrid().getRow() * cellSize + width, game.getGrid().getColumn() * cellSize + height); // TODO: 04/12/2021 A corriger -> doit plutôt s'adapter à la taille de la grid (grid.getRow() et grid.getColumn())
for (int i = 0; i < game.getGrid().getRow(); i++) {
for (int j = 0; j < game.getGrid().getColumn(); j++) {
Cell cell = new Cell(i, j);
principalPane.getChildren().add(cell);
}
}
Grid grid = game.getGrid();
for (int i = 0; i < grid.getRow(); i++) {
for (int j = 0; j < grid.getColumn(); j++) {
Pair<Player, Box> value = grid.getBoard().get(new Point(i, j));
if (value.getB() instanceof Wall || value.getB() instanceof EnergyBall) {
addToPrincipalPanel(value.getB(), principalPane, i, j);
}
else if(value.getB() instanceof Explosive){
if(((Explosive) value.getB()).getPlayer().equals(player)){
addToPrincipalPanel(value.getB(), principalPane, i, j);
}
else{
addToPrincipalPanel(null,principalPane, i, j);
}
}
else if (value.getA() != null) {
addToPrincipalPanel(value.getA(), principalPane, i, j);
}
else{
addToPrincipalPanel(null,principalPane, i, j);
}
}
}
putStatePlayerPane(principalPane);
putMoveTextPane(principalPane);
this.buttonPane = new Pane();
buttonPane.setLayoutX(0);
buttonPane.setLayoutY(600);
if(game.getCurrentPlayer() instanceof HumanPlayer) {
if(this.selectedReunionAction == null) {
choseReunionSameAction(player.generateAvailableActions());
} else {
choseDirectionAction(selectedReunionAction);
}
} else {
addButtonToPane("SUIVANT", new ClientEventHandler(nextPlayerButtonListener), buttonPane, (int) (principalPane.getPrefWidth() / 2), 0);
}
principalPane.getChildren().add(buttonPane);
principalPane.setBackground(bg);
return principalPane;
}
/**
* Add grid element to the principal pane
* @param object object to add to the pane
* @param principalPane pane where we'll add the object
* @param i
* @param j
*/
public void addToPrincipalPanel(Object object, Pane principalPane, int i, int j) {
StackPane sp = Cell.setImageObject(object, game);
sp.setLayoutY(i * cellSize);
sp.setLayoutX(j * cellSize);
principalPane.getChildren().add(sp);
}
/**
* Create the right pane
* @param principalPane principal pane where we'll add the left down pane
*/
public void putStatePlayerPane(Pane principalPane){
int Y = 0;
for(int i=0;i<game.getPlayers().size();i++){
StackPane sp = showStatePlayer(game.getPlayers().get(i).toString(),i);
sp.setLayoutX(480);
sp.setLayoutY(Y);
Y+=90;
principalPane.getChildren().add(sp);
}
}
/**
* Build left down pane (list all players information)
* @param type
* @param playerNumber
* @return
*/
public StackPane showStatePlayer(String type, int playerNumber){
StackPane subSp = new StackPane();
String s = type + " " + (playerNumber+1) + "\n" +
"Energie : " + game.getPlayers().get(playerNumber).getEnergy() + "\n" +
"Arme : " + game.getPlayers().get(playerNumber).getWeapon().getClass().getSimpleName() + "\n";
Text t = new Text(s);
Rectangle r = new Rectangle();
r.setWidth(500);
r.setHeight(90);
if(game.getPlayers().get(playerNumber).getEnergy() <= 0){
r.setFill(Color.valueOf("A54747"));
}else{
r.setFill(Color.valueOf("62B262"));
}
r.setStrokeWidth(1);
r.setStroke(Color.BLACK);
subSp.getChildren().addAll(r,t);
return subSp;
}
/**
* build left down pane and move it to its position
* @param principalPane the principal pane where we'll add the left down pane
*/
public void putMoveTextPane(Pane principalPane){
StackPane stateMoveTextPane = showMoveText();
stateMoveTextPane.setLayoutY(480);
principalPane.getChildren().add((stateMoveTextPane));
}
/**
* Build the left down pane (contains current player information)
* @return the built pane
*/
public StackPane showMoveText() {
StackPane subSp = new StackPane();
String action = game.getSelectedAction() == null ? "null" : game.getSelectedAction().getClass().getSimpleName();
String s = "Vous \u00EAtes \u00E0 la position " + player.getPosition().toString();
if(game.getPreviousPlayer() != null) {
s = game.getPreviousPlayer() + " : " + (game.getPreviousPlayer().getId()+1) + "\n" +
"Vient de jouer : " + action + "\n";
}
Text t = new Text(s);
t.setFill(Color.WHITE);
Rectangle r = new Rectangle();
r.setWidth(478);
r.setHeight(165);
r.setFill(dark);
subSp.getChildren().addAll(r,t);
return subSp;
}
public void setSelectedReunionAction(ReunionSameAction selectedReunionAction) {
this.selectedReunionAction = selectedReunionAction;
}
public NextPlayerButtonListener getNextPlayerButtonListener() {
return nextPlayerButtonListener;
}
}

View File

@ -0,0 +1,4 @@
/**
* View package, contains all classes about user view
*/
package fr.lnl.game.client.view;

View File

@ -1,6 +1,11 @@
/**
* Client module, include every view and controller classes from MVC model
*/
module client { module client {
requires javafx.controls; requires javafx.controls;
requires transitive javafx.graphics; requires transitive javafx.graphics;
requires server; requires server;
exports fr.lnl.game.client; exports fr.lnl.game.client;
exports fr.lnl.game.client.listener;
exports fr.lnl.game.client.view;
} }

Binary file not shown.

After

Width:  |  Height:  |  Size: 334 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 285 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 525 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 360 B

View File

@ -1,16 +0,0 @@
/*
* This Java source file was generated by the Gradle 'init' task.
*/
package fr.lnl.game.client;
import fr.lnl.game.server.MessageUtils;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;
public class MessageUtilsTest {
@Test
public void testGetMessage() {
assertEquals("Hello World!", MessageUtils.getMessage());
}
}

44
livraison/README.txt Normal file
View File

@ -0,0 +1,44 @@
" Projet de Conception Logiciel conçu par :
LUCAS Valentin
LEGOT Quentin
NEVEU Thomas
# Attention
Ce projet utilise la possibilité de séparé son projet en plusieurs modules en avec Gradle ainsi la disposition des dossiers demandé pour le rendu n'a pas pu être respecté
afin que le programme fonctionne.
# Dépendances
Le projet nécessite le ressources suivante pour fonctionner:
- Java 17 (téléchargeable depuis apt sur Debian 11 ou en téléchargeant sur Oracle ou openJDK)
- Gradle 7.3 ou supérieur (téléchargeable depuis https://gradle.org/releases/ puis en suivez les indications données sur cette page: https://docs.gradle.org/7.3.1/userguide/installation.html#installing_manually )
Accédez ensuite à la racine du projet (dossier livraison/ normalement ou du moins le dossier contenant le fichier settings.gradle) pour pouvoir execute le programme
# Les commandes
- `gradle :client:run --args="[ARGUMENTS]"` permet de lancer le jeu avec les arguments suivant la logique suivant
- le premier argument concerne le type de vue, indiquer `terminal` pour jouer en mode terminal ou `window` pour jouer en mode fenêtre avec JavaFX
- les arguments suivants concernent les joueurs, ils suivent une forme "<type du joueur> [classe du joueur]"
- `type du joueur` pour indiquer si le joueur est:
- `human` pour indiquer un joueur humain utilisant le clavier ou la souris
- `computer` indiquant un joueur ordinateur jouant des coups aléatoire
- `computerS` indiquant un joueur ordinateur semi-aléatoire
- `classe du joueur` est un paramètre facultatif correspond à:
- `tank` indiquant que le joueur est de type tank et qu'il subit moins de dégâts des explosions que les autres ses coups en energies pour faire des actions sont plus élevés
- `dps` ou `default` et un joueur standard, infligeant le plus de dégâts d'attaque et ayant un coup de déplacement équilibré, c'est la valeur par défaut si la classe de ce joueur n'est pas donné
- `support` est un joueur basé sur la pose d'explosif, n'allant que peu au combat direct, ses coups de déplacement sont standard mais ses coups en energies de pose de mine ou de bombes sont les plus faibles.
- Un exemple de ce que cela peux donner est: `window computer default human support computerS dps human tank`
- ici On joue en vue fenêtre avec 4 joueurs:
- computer de classe default (ou dps)
- human de classe support
- computerS de classe dps (ou default)
- human de classe tank
- `gradle build` permet de compiler, exécuter les tests et archiver les classes dans un fichier `.jar` pour chaque module (client et server)
- `gradle javadoc` pour générer la javadoc, une javadoc est générer par projet (soit 2 javadocs), nous vous mettons à disposition dans le dossier livraison un dossier javadoc pour faciliter la navigation
- Si vous voulez naviguer dans la nouvelle javadoc que vous aurez générer, vous pouvez y accéder en allant dans livraison/MODULE/build/doc/javadoc
- les modules étant `client` et `server`
- `gradle test` pour exécuter les tests unitaires

8
livraison/build.gradle Normal file
View File

@ -0,0 +1,8 @@
subprojects {
apply plugin: 'java'
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
javadoc {
options.memberLevel = JavadocMemberLevel.PRIVATE
}
}

View File

@ -0,0 +1,13 @@
/*
* This file was generated by the Gradle 'init' task.
*/
plugins {
// Support convention plugins written in Groovy. Convention plugins are build scripts in 'src/main' that automatically become available as plugins in the main build.
id 'groovy-gradle-plugin'
}
repositories {
// Use the plugin portal to apply community plugins in convention plugins.
gradlePluginPortal()
}

View File

@ -0,0 +1,11 @@
/*
* This file was generated by the Gradle 'init' task.
*/
plugins {
// Apply the common convention plugin for shared build configuration between library and application projects.
id 'fr.lnl.game.java-common-conventions'
// Apply the application plugin to add support for building a CLI application in Java.
id 'application'
}

View File

@ -0,0 +1,31 @@
/*
* This file was generated by the Gradle 'init' task.
*/
plugins {
// Apply the java Plugin to add support for Java.
id 'java'
}
repositories {
// Use Maven Central for resolving dependencies.
mavenCentral()
}
dependencies {
constraints {
// Define dependency versions as constraints
implementation 'org.apache.commons:commons-text:1.9'
}
// Use JUnit Jupiter API for testing.
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.7.1'
// Use JUnit Jupiter Engine for testing.
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine'
}
tasks.named('test') {
// Use junit platform for unit tests.
useJUnitPlatform()
}

View File

@ -0,0 +1,11 @@
/*
* This file was generated by the Gradle 'init' task.
*/
plugins {
// Apply the common convention plugin for shared build configuration between library and application projects.
id 'fr.lnl.game.java-common-conventions'
// Apply the java-library plugin for API and implementation separation.
id 'java-library'
}

View File

@ -0,0 +1,33 @@
/*
* This file was generated by the Gradle 'init' task.
*/
plugins {
id 'application'
id 'fr.lnl.game.java-application-conventions'
id 'org.openjfx.javafxplugin' version '0.0.10'
id 'org.javamodularity.moduleplugin' version '1.8.10' apply false
}
repositories {
mavenCentral()
}
dependencies {
implementation project(':server')
}
javafx {
version = JavaVersion.VERSION_17
modules = [ 'javafx.controls', 'javafx.graphics' ]
}
application {
// Define the main class for the application.
mainClassName = 'fr.lnl.game.client.App'
mainModule = "client"
}
run {
standardInput = System.in
}

View File

@ -0,0 +1,203 @@
package fr.lnl.game.client;
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.grid.build.GridFactoryBuilder;
import fr.lnl.game.server.games.grid.build.LockGridFactoryBuilder;
import fr.lnl.game.server.games.player.*;
import fr.lnl.game.server.utils.CrashException;
import fr.lnl.game.server.utils.Point;
import javafx.application.Application;
import javafx.stage.Stage;
import java.lang.reflect.InvocationTargetException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.LinkedList;
import java.util.List;
/**
* Application starting point
*/
public class App extends Application {
private static LinkedList<String> argsList;
private static Game game;
private static ViewManager viewManager;
public static void main(String[] args) {
try {
argsList = new LinkedList<>(Arrays.asList(args));
argsList.removeIf(s -> s.startsWith("-D") || s.equals("fr.lnl.game.client.App")); // remove given parameters from gradle
Class<? extends AbstractView> clazz;
try {
clazz = parseView();
} catch (IllegalArgumentException e) {
throw new CrashException(e.getMessage(), e);
}
if(clazz.equals(Terminal.class)) {
launchTerminal();
} else {
launch();
}
} catch(CrashException e) {
System.err.println("Une erreur est survenue et l'application a été obligé de fermer");
System.err.println(e.getCause().toString());
for (StackTraceElement element : e.getStackTrace()) {
System.err.println(" at " + element.toString());
}
System.exit(1);
}
}
/**
* Parse players arguments and create a new instance of Game
* @throws IllegalArgumentException when given argument is unknown
* @throws InvocationTargetException when the creation of the player throw an exception
* @throws NoSuchMethodException when constructor with given parameter in {@link Class#getConstructor(Class[])}
* doesn't exist
* @throws InstantiationException when the instanciation of the player is impossible (like when class is abstract),
* is probably never called
* @throws IllegalAccessException when the instanciation of thr player is impossible (like a private constructor),
* is probably never called
*/
public static void startGame() throws IllegalArgumentException, InvocationTargetException, NoSuchMethodException,
InstantiationException, IllegalAccessException {
List<Player> players = parsePlayers();
GridFactoryBuilder builder = LockGridFactoryBuilder.create().energyProbability(0.95F).wallProbability(0.80F).gridDimensions(12, 12);
game = new Game(builder, players);
}
@Override
public void start(Stage stage) {
try {
startGame();
} catch (IllegalArgumentException | InvocationTargetException | NoSuchMethodException | InstantiationException
| IllegalAccessException e) {
throw new CrashException(e.getMessage(), e);
}
viewManager = new ViewManager(game, Window.class, player -> new Window(stage, game, player));
viewManager.run();
}
public static void launchTerminal() {
try {
startGame();
} catch (IllegalArgumentException | InvocationTargetException | NoSuchMethodException | InstantiationException
| IllegalAccessException e) {
throw new CrashException(e.getMessage(), e);
}
viewManager = new ViewManager(game, Terminal.class, player -> new Terminal(game, player));
viewManager.run();
}
/**
* Parse players arguments and create instances for each player
* @throws IllegalArgumentException when given argument is unknown
* @throws InvocationTargetException when the creation of the player throw an exception
* @throws NoSuchMethodException when constructor with given parameter in {@link Class#getConstructor(Class[])}
* doesn't exist
* @throws InstantiationException when the instanciation of the player is impossible (like when class is abstract),
* is probably never called
* @throws IllegalAccessException when the instanciation of thr player is impossible (like a private constructor),
* is probably never called
*/
public static List<Player> parsePlayers() throws IllegalArgumentException, NoSuchMethodException,
InvocationTargetException, InstantiationException, IllegalAccessException {
List<Player> playerList = new ArrayList<>();
Class<? extends AbstractPlayer> playerClass = null;
ClassPlayer classPlayer = null;
for(String str : argsList) {
switch (str) {
case "human" -> {
if(playerClass != null) {
playerList.add(createNewPlayer(playerClass,
classPlayer != null ? classPlayer : ClassPlayer.DEFAULT, playerList.size())
);
classPlayer = null;
}
playerClass = HumanPlayer.class;
}
case "computer" -> {
if(playerClass != null) {
playerList.add(createNewPlayer(playerClass,
classPlayer != null ? classPlayer : ClassPlayer.DEFAULT, playerList.size())
);
classPlayer = null;
}
playerClass = RandomComputerPlayer.class;
}
case "computerS" -> {
if(playerClass != null) {
playerList.add(createNewPlayer(playerClass,
classPlayer != null ? classPlayer : ClassPlayer.DEFAULT, playerList.size())
);
classPlayer = null;
}
playerClass = StrategyComputerPlayer.class;
}
case "default" -> classPlayer = ClassPlayer.DEFAULT;
case "tank" -> classPlayer = ClassPlayer.TANK;
case "dps" -> classPlayer = ClassPlayer.DPS;
case "support" -> classPlayer = ClassPlayer.SUPPORT;
default -> throw new IllegalArgumentException("Unknown argument: " + str);
}
}
if(playerClass != null)
playerList.add(createNewPlayer(playerClass,
classPlayer != null ? classPlayer : ClassPlayer.DEFAULT, playerList.size())
);
return playerList;
}
/**
* create a new instance of the player
* @throws IllegalArgumentException when given argument is unknown (probably never called in production)
* @throws InvocationTargetException when the creation of the player throw an exception
* @throws NoSuchMethodException when constructor with given parameter in {@link Class#getConstructor(Class[])}
* doesn't exist
* @throws InstantiationException when the instanciation of the player is impossible (like when class is abstract),
* is probably never called
* @throws IllegalAccessException when the instanciation of thr player is impossible (like a private constructor),
* is probably never called
*/
private static Player createNewPlayer(Class<? extends AbstractPlayer> playerClass, ClassPlayer playerType,
int playerListSize) throws NoSuchMethodException, InvocationTargetException,
InstantiationException, IllegalAccessException {
return playerClass.getConstructor(Integer.class, Point.class, ClassPlayer.class)
.newInstance(playerListSize, null, playerType);
}
/**
* Parse the first argument given by user to know the view to use (Terminal or Window)
* @return The class of the View to use
* @throws IllegalArgumentException when given argument is unknown or no argument is given by user
*/
public static Class<? extends AbstractView> parseView() throws IllegalArgumentException {
Class<? extends AbstractView> clazz;
if(!argsList.isEmpty()) {
if(argsList.get(0).equals("terminal")) {
clazz = Terminal.class;
} else if(argsList.get(0).equals("window")){
clazz = Window.class;
} else {
throw new IllegalArgumentException("Unknown argument: " + argsList.get(0));
}
argsList.removeFirst();
} else {
throw new IllegalArgumentException("No argument given");
}
return clazz;
}
public static ViewManager getViewManager() {
return viewManager;
}
public static Game getGame() {
return game;
}
}

View File

@ -0,0 +1,18 @@
package fr.lnl.game.client;
import fr.lnl.game.client.view.View;
import fr.lnl.game.server.games.player.Player;
/**
* Store a view per player
*/
public record ClientPlayer(Player serverPlayer, View view) {
public Player getServerPlayer() {
return serverPlayer;
}
public View getView() {
return view;
}
}

View File

@ -0,0 +1,19 @@
package fr.lnl.game.client;
import fr.lnl.game.client.view.View;
import fr.lnl.game.server.games.player.Player;
/**
* Used as Lambda expression to instantiate a {@link View} per {@link Player} stored in {@link ClientPlayer}
*/
@FunctionalInterface
public interface ViewLambda {
/**
* A lambda create an anonymous class which implements this interface
* @param player an instance of {@link Player} to store in {@link View}
* @return an instance of view (depending on the first argument when launching the program)
*/
View createViewLambda(Player player);
}

View File

@ -0,0 +1,20 @@
package fr.lnl.game.client.listener;
import fr.lnl.game.server.listener.ModelListener;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
/**
* implementation of a listener from JavaFX {@link EventHandler}
*/
public record ClientEventHandler(ModelListener listener) implements EventHandler<ActionEvent> {
/**
* This method is call by JavaFX when we click to the button
* @param event event class created when clicking on the element
*/
@Override
public void handle(ActionEvent event) {
listener.updateModel(event);
}
}

View File

@ -0,0 +1,21 @@
package fr.lnl.game.client.listener;
import fr.lnl.game.client.App;
import fr.lnl.game.server.games.player.Player;
import fr.lnl.game.server.listener.AbstractModelListening;
/**
* Used to display the winner of the game
*/
public class DisplayWinnerEvent extends AbstractModelListening {
/**
* This method is call when the game is over
* @param obj contains the winner of the game, can be null
*/
@Override
public void updateModel(Object obj) {
Player winner = (Player) obj;
App.getViewManager().displayWinner(winner);
}
}

View File

@ -0,0 +1,40 @@
package fr.lnl.game.client.listener;
import fr.lnl.game.client.App;
import fr.lnl.game.server.games.Game;
import fr.lnl.game.server.listener.AbstractModelListening;
/**
* This method is call when the current player have selected an action to play (or if it's a computer player, will
* select it), then we call {@link Game#play()} and we update the view
*/
public class NextPlayerButtonListener extends AbstractModelListening {
private final Game game;
private final DisplayWinnerEvent displayWinnerEvent;
public NextPlayerButtonListener(Game game) {
this.game = game;
this.displayWinnerEvent = new DisplayWinnerEvent();
}
/**
* Call when clicking on "SUIVANT" button if current player is a computer player or after the human player selected
* action it want to play
*/
@Override
public void updateModel(Object event) {
// Player player = game.getCurrentPlayer();
boolean isOver = game.play();
/* Alert alert = new Alert(Alert.AlertType.INFORMATION);
alert.setTitle("Un joueur ordinateur a joué");
alert.setHeaderText("Le joueur ordinateur numéro" + player.getId() + " a joué");
alert.setContentText("Il a joué l'action: " + game.getSelectedAction()); */
App.getViewManager().updateView();
if(isOver) {
displayWinnerEvent.updateModel(game.getWinner());
System.exit(0);
}
//alert.showAndWait();
}
}

View File

@ -0,0 +1,38 @@
package fr.lnl.game.client.listener;
import fr.lnl.game.client.App;
import fr.lnl.game.client.view.Window;
import fr.lnl.game.server.games.Game;
import fr.lnl.game.server.games.action.ReunionSameAction;
import fr.lnl.game.server.listener.AbstractModelListening;
/**
* Used when the human player select type of action it want to play
*/
public class SelectActionButton extends AbstractModelListening {
private final Window window;
private final ReunionSameAction reunionSameAction;
private final Game game;
public SelectActionButton(Game game, Window window, ReunionSameAction reunionSameAction) {
this.game = game;
this.window = window;
this.reunionSameAction = reunionSameAction;
}
/**
* This method is call when the player select the type of action it want to play
* @param obj contain information about the event like the button where the player clicked
*/
@Override
public void updateModel(Object obj) {
if(reunionSameAction.getActions().size() == 1){
game.setSelectedAction(reunionSameAction.getActions().get(0));
window.getNextPlayerButtonListener().updateModel(obj);
} else {
window.setSelectedReunionAction(reunionSameAction);
App.getViewManager().updateView(); // update screen
}
}
}

View File

@ -0,0 +1,34 @@
package fr.lnl.game.client.listener;
import fr.lnl.game.client.view.Window;
import fr.lnl.game.server.games.Game;
import fr.lnl.game.server.games.action.Action;
import fr.lnl.game.server.listener.AbstractModelListening;
/**
* Call when the player selected the direction where it wants to play it
*/
public class SelectDirectionListener extends AbstractModelListening {
private final Game game;
private final Action action;
private final Window window;
public SelectDirectionListener(Game game, Window window, Action action) {
this.game = game;
this.window = window;
this.action = action;
}
/**
* This method is call when the player click on the button to select the direction of the previously selected action
* @param obj contain information about the event like the button where the player clicked
*/
@Override
public void updateModel(Object obj) {
game.setSelectedAction(action);
window.setSelectedReunionAction(null);
window.getNextPlayerButtonListener().updateModel(obj);
}
}

View File

@ -0,0 +1,4 @@
/**
* Package that contains every view listeners
*/
package fr.lnl.game.client.listener;

View File

@ -0,0 +1,4 @@
/**
* Client package
*/
package fr.lnl.game.client;

View File

@ -0,0 +1,18 @@
package fr.lnl.game.client.view;
import fr.lnl.game.server.games.Game;
import fr.lnl.game.server.games.player.Player;
/**
* Abstract class implemented by every view classes
*/
public abstract class AbstractView implements View {
protected final Player player;
protected Game game;
public AbstractView(Game game, Player player) {
this.game = game;
this.player = player;
}
}

View File

@ -0,0 +1,89 @@
package fr.lnl.game.client.view;
import fr.lnl.game.server.games.Game;
import fr.lnl.game.server.games.action.Shot;
import fr.lnl.game.server.games.grid.elements.Bomb;
import fr.lnl.game.server.games.grid.elements.EnergyBall;
import fr.lnl.game.server.games.grid.elements.Mine;
import fr.lnl.game.server.games.grid.elements.Wall;
import fr.lnl.game.server.games.player.Player;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.layout.*;
import javafx.scene.paint.Color;
import javafx.scene.shape.Rectangle;
/**
* classe qui a pour but de générer chaque case de la grid et de vérifier les entités présentes dessus
* (Mur, Joueur, Energie, Bombe, etc.)
*/
public class Cell extends Rectangle {
//Images libres de droit :
//https://www.minecraftforum.net/forums/mapping-and-modding-java-edition/resource-packs/1242533-pixel-perfection-now-with-polar-bears-1-11
//https://www.stocklib.fr/media-134367689/pixel-game-icons-vector-isolated-bombs-with-fire-graphics-of-retro-gaming-flat-style-of-weapon-with-flames-destruction-and-danger-explosive-substance.html?keyword=bomb%20pixel
private static final Image PLAYER_IMAGE = new Image("player.png");
private static final Image PLAYER_SHIELD_IMAGE = new Image("player_shield.png");
private static final Image PLAYER_SHOT_IMAGE = new Image("player_shot.png");
private static final Image ENERGY_BALL_IMAGE = new Image("energyBall.png");
private static final Image BOMB_IMAGE = new Image("bomb.png");
private static final Image MINE_IMAGE = new Image("mine.png");
private static final Image WALL_IMAGE = new Image("wall.png");
private static final Image BACKGROUND_IMAGE = new Image("background.png");
private static final BackgroundImage BG = new BackgroundImage(BACKGROUND_IMAGE,BackgroundRepeat.NO_REPEAT,BackgroundRepeat.NO_REPEAT,BackgroundPosition.DEFAULT,
BackgroundSize.DEFAULT);
public Cell(int x, int y){
setWidth(Window.cellSize);
setHeight(Window.cellSize);
relocate(x * Window.cellSize,y * Window.cellSize);
setFill(Color.WHITE);
setStroke(Color.DARKGRAY);
}
/**
* @param object the object we'll define the type
* @return a pane which contains an image depending on the type of the object
*/
public static StackPane setImageObject(Object object, Game game){
StackPane sp = new StackPane();
Image in;
BackgroundImage bg = BG;
if(object instanceof Player){
if(object.equals(game.getCurrentPlayer()) && game.getSelectedAction() instanceof Shot){
in = PLAYER_SHOT_IMAGE;
}
else if(((Player) object).isShieldDeploy()){
in = PLAYER_SHIELD_IMAGE;
}
else{
in = PLAYER_IMAGE;
}
} else if(object instanceof EnergyBall){
in = ENERGY_BALL_IMAGE;
} else if(object instanceof Bomb){
in = BOMB_IMAGE;
} else if(object instanceof Mine){
in = MINE_IMAGE;
}
else if(object instanceof Wall){
in = WALL_IMAGE;
bg = null;
}
else{
in = null;
}
ImageView iv = new ImageView(in);
iv.setFitHeight(Window.cellSize);
iv.setFitWidth(Window.cellSize);
sp.getChildren().add(iv);
sp.setBackground(new Background(bg));
return sp;
}
public static Image getPlayerImage() {
return PLAYER_IMAGE;
}
}

View File

@ -0,0 +1,113 @@
package fr.lnl.game.client.view;
import fr.lnl.game.server.games.Game;
import fr.lnl.game.server.games.action.*;
import fr.lnl.game.server.games.player.Player;
import fr.lnl.game.server.utils.Maths;
import java.util.List;
import java.util.Scanner;
/**
* View terminal, use standard input and output
*/
public class Terminal extends AbstractView {
/**
* Standard input
*/
public static Scanner scanner;
public Terminal(Game game, Player player) {
super(game, player);
}
/**
* Used to update view
*/
public void show() {
System.out.println(game.getGrid().privateView(player));
}
/**
* Used to display the winner of the game
* @param winner the player who win the game, can be Null
*/
@Override
public void displayWinner(Player winner) {
System.out.println("\n\033[0;31m====== FIN DU JEU ======\033[0m");
System.out.println(game.getGrid().toString());
if(winner == null) {
System.out.println("\n\033[0;Partie nulle, personne n'a gagné la partie\033[0m");
} else {
System.out.println("\n\033[0;33mVictoire de " + winner + " " + winner.getId() + "\033[0m");
}
}
/**
* Used when current player is an instance of {@link fr.lnl.game.server.games.player.HumanPlayer} and demand to it
* an action to do
* @return chosen action
* @see Terminal#choseReunionSameAction(List)
*/
public Action choseAction() {
List<ReunionSameAction> actions = player.generateAvailableActions();
List<Action> listActions = choseReunionSameAction(actions).getActions();
Action action = null;
String error = "Veuillez renseigner une valeur numérique comprise entre 1 et " + listActions.size();
do {
if(listActions.size() == 1){
return listActions.get(0);
}
System.out.println("Choisissez la cible :");
for (int i = 0; i < listActions.size(); i++) {
Action a = listActions.get(i);
if(a instanceof Move m){
System.out.println(i + 1 + " : " + m.getDirection());
}
else if(a instanceof DropObject o){
System.out.println(i + 1 + " : " + o.getDirection());
}
else if(a instanceof Shot s){
System.out.println(i + 1 + " : " + s.getPoint());
}
else{
System.out.println(i + 1 + " : " + a.getClass().getSimpleName());
}
}
String entry = scanner.next();
int value = Maths.testInteger(entry, scanner, error);
if (value >= 1 && value <= listActions.size()) {
action = listActions.get(value - 1);
}
} while (action == null);
return action;
}
/**
* Used when current player is an instance of {@link fr.lnl.game.server.games.player.HumanPlayer} and demand to it
* a type of action to do
* @param actions the list of actions possible
* @return the type of action to execute
* @see Terminal#choseAction()
*/
private ReunionSameAction choseReunionSameAction(List<ReunionSameAction> actions) {
ReunionSameAction reunion = null;
String error = "Veuillez renseigner une valeur numérique comprise entre 1 et " + actions.size();
Scanner scanner = new Scanner(System.in);
do {
System.out.println("Choisissez une action :");
for (int i = 0; i < actions.size(); i++) {
System.out.println(i + 1 + " : " + actions.get(i).getActionName());
}
String entry = scanner.next();
int value = Maths.testInteger(entry, scanner, error);
if (value >= 1 && value <= actions.size()) {
reunion = actions.get(value - 1);
}
}while (reunion == null) ;
return reunion;
}
}

View File

@ -0,0 +1,20 @@
package fr.lnl.game.client.view;
import fr.lnl.game.server.games.player.Player;
/**
* View interface, implemented by Terminal and Window.
*/
public interface View {
/**
* used to update screen
*/
void show();
/**
* Used to display the name of the winner
* @param winner the player who win the game, can be Null
*/
void displayWinner(/* Nullable */ Player winner);
}

View File

@ -0,0 +1,81 @@
package fr.lnl.game.client.view;
import fr.lnl.game.client.ClientPlayer;
import fr.lnl.game.client.ViewLambda;
import fr.lnl.game.client.listener.DisplayWinnerEvent;
import fr.lnl.game.server.games.Game;
import fr.lnl.game.server.games.player.HumanPlayer;
import fr.lnl.game.server.games.player.Player;
import java.util.HashMap;
import java.util.Scanner;
/**
* View manager, main access to every views
*/
public final class ViewManager {
private final Game game;
private final Class<? extends View> viewType;
public HashMap<Player, ClientPlayer> players = new HashMap<>();
public ViewManager(Game game, Class<? extends View> viewType, ViewLambda lambda) {
this.game = game;
this.viewType = viewType;
for (Player player : game.getPlayers()) {
players.put(player, new ClientPlayer(player, lambda.createViewLambda(player)));
}
}
/**
* Call when we need to change or update view
*/
public void updateView() {
players.get(game.getCurrentPlayer()).getView().show();
}
/**
* This method is call when the view is a terminal
*/
public void terminalView() {
Terminal.scanner = new Scanner(System.in);
DisplayWinnerEvent displayWinnerEvent = new DisplayWinnerEvent();
while (true) {
Player player = game.getCurrentPlayer();
System.out.println("\n\033[0;34m====== Tour n°" + game.getNbrTurn() + " =======\033[0m");
System.out.println("\nA \033[0;31m" + player + " " + player.getId() + "\033[0m de jouer");
players.get(game.getCurrentPlayer()).getView().show();
if (game.getCurrentPlayer() instanceof HumanPlayer human) {
game.setSelectedAction(((Terminal) players.get(human).getView()).choseAction());
}
boolean isOver = game.play();
System.out.println("\n\033[0;31m" + player + " " + player.getId() + "\033[0m utilise l'action \033[0;36m" +
game.getSelectedAction().getClass().getSimpleName() + "\033[0m");
if (isOver) {
displayWinnerEvent.updateModel(game.getWinner());
Terminal.scanner.close();
System.exit(0);
}
}
}
/**
* This method is call when the game is finish
* @param winner The winner of the game, can be null
*/
public void displayWinner(Player winner) {
players.get(game.getCurrentPlayer()).getView().displayWinner(winner);
}
/**
* This method is call after initialized view manager to display a first screen
*/
public void run() {
if (viewType == Terminal.class) {
terminalView();
} else {
updateView();
}
}
}

View File

@ -0,0 +1,302 @@
package fr.lnl.game.client.view;
import fr.lnl.game.client.App;
import fr.lnl.game.client.listener.ClientEventHandler;
import fr.lnl.game.client.listener.NextPlayerButtonListener;
import fr.lnl.game.client.listener.SelectActionButton;
import fr.lnl.game.client.listener.SelectDirectionListener;
import fr.lnl.game.server.games.Game;
import fr.lnl.game.server.games.action.*;
import fr.lnl.game.server.games.grid.Grid;
import fr.lnl.game.server.games.grid.elements.Box;
import fr.lnl.game.server.games.grid.elements.EnergyBall;
import fr.lnl.game.server.games.grid.elements.Explosive;
import fr.lnl.game.server.games.grid.elements.Wall;
import fr.lnl.game.server.games.player.HumanPlayer;
import fr.lnl.game.server.games.player.Player;
import fr.lnl.game.server.utils.Pair;
import fr.lnl.game.server.utils.Point;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.geometry.Insets;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.scene.control.Alert;
import javafx.scene.control.Button;
import javafx.scene.layout.*;
import javafx.scene.paint.Color;
import javafx.scene.shape.Rectangle;
import javafx.scene.text.Text;
import javafx.stage.Stage;
import java.util.List;
/**
* Window view, use mouse and keyboard to control interface
*/
public class Window extends AbstractView {
// il faut pouvoir trouver une formule responsive avec width et height
public static final int cellSize = 40;
public static final int width = 500;
public static final int height = 160;
private static final Color dark = Color.valueOf("1F1F1F");
private static final Background bg = new Background(new BackgroundFill(dark, CornerRadii.EMPTY, Insets.EMPTY));
private final Stage stage;
private Pane buttonPane;
private ReunionSameAction selectedReunionAction = null;
private final NextPlayerButtonListener nextPlayerButtonListener = new NextPlayerButtonListener(game);
public Window(Stage stage, Game game, Player player) {
super(game, player);
this.stage = stage;
}
/**
* used to update screen
*/
public void show() {
Scene scene = new Scene(createContent());
stage.setScene(scene);
stage.setTitle("Game");
stage.getIcons().add(Cell.getPlayerImage());
stage.setResizable(false);
stage.sizeToScene();
stage.show();
}
/**
* Used to display the name of the winner
* @param winner the player who win the game, can be Null
*/
@Override
public void displayWinner(Player winner) {
Alert alert = new Alert(Alert.AlertType.INFORMATION);
alert.setTitle("Fin du jeu");
alert.setHeaderText("La partie est termin\u00E9");
if(winner == null) {
alert.setContentText("La partie est nulle, personne n'a gagn\u00E9");
} else {
alert.setContentText("Le joueur " + winner + " " + winner.getId() + " a gagn\u00E9");
}
App.getViewManager().updateView();
alert.showAndWait();
}
/**
* Choose a direction between all possible from the previously selected action type
* @param selectedReunionAction previously selected type of action
* @see Window#choseReunionSameAction(List)
*/
public void choseDirectionAction(ReunionSameAction selectedReunionAction) {
for(int i = 0; i < selectedReunionAction.getActions().size(); ++i) {
Action action = selectedReunionAction.getActions().get(i);
if(action instanceof Move m){
addButtonToPane(m.getDirection().toString(),
new ClientEventHandler(new SelectDirectionListener(game, this, action)), buttonPane,
i * 100 + 50, 0);
}
else if(action instanceof DropObject o){
addButtonToPane(o.getDirection().toString(), new ClientEventHandler(new SelectDirectionListener(game, this, action)), buttonPane, i * 100 + 50, 0);
}
else if(action instanceof Shot s){
addButtonToPane(s.getPoint().toString(), new ClientEventHandler(new SelectDirectionListener(game, this, action)), buttonPane, i * 100 + 50, 0);
}
else{
addButtonToPane(action.getClass().getSimpleName(), new ClientEventHandler(new SelectDirectionListener(game, this, action)), buttonPane, i * 100 + 50, 0);
}
}
}
/**
* Used when {@link Game#getCurrentPlayer()} is an instance of {@link HumanPlayer}.
* Display button to demand to player to choose the type of action to execute
* @param actions the list of possible actions
* @see Window#choseDirectionAction(ReunionSameAction)
*/
private void choseReunionSameAction(List<ReunionSameAction> actions) {
for (int i = 0; i < actions.size(); i++) {
ReunionSameAction action = actions.get(i);
addButtonToPane(action.getActionName(), new ClientEventHandler(new SelectActionButton(game, this, action)),
buttonPane, i * 100 + 50, 0);
}
}
/**
* called when we add a button in the interface
* @param content content of the button
* @param listener listener of the button
* @param pane pane where we add the button
* @param offsetX move the button from the base position of the pane to the left (when offsetX is negative) or on
* the right (when offsetY is positive)
* @param offsetY move the button from the base position of the pane to the up (when offsetX is negative) or on
* the down (when offsetY is positive)
*/
private void addButtonToPane(String content, EventHandler<ActionEvent> listener, Pane pane, int offsetX, int offsetY) {
Button button = new Button(content);
button.setOnAction(listener);
button.setPrefSize(85, 35);
button.setStyle("-fx-background-color: #a96806;");
button.setTextFill(javafx.scene.paint.Color.WHITE);
button.setLayoutX(offsetX - button.getPrefWidth() / 2);
button.setLayoutY(offsetY);
pane.getChildren().add(button);
}
/**
* Create content of the stage
* @return the parent element to set to the stage
*/
private Parent createContent() {
Pane principalPane = new Pane();
principalPane.setPrefSize(game.getGrid().getRow() * cellSize + width, game.getGrid().getColumn() * cellSize + height); // TODO: 04/12/2021 A corriger -> doit plutôt s'adapter à la taille de la grid (grid.getRow() et grid.getColumn())
for (int i = 0; i < game.getGrid().getRow(); i++) {
for (int j = 0; j < game.getGrid().getColumn(); j++) {
Cell cell = new Cell(i, j);
principalPane.getChildren().add(cell);
}
}
Grid grid = game.getGrid();
for (int i = 0; i < grid.getRow(); i++) {
for (int j = 0; j < grid.getColumn(); j++) {
Pair<Player, Box> value = grid.getBoard().get(new Point(i, j));
if (value.getB() instanceof Wall || value.getB() instanceof EnergyBall) {
addToPrincipalPanel(value.getB(), principalPane, i, j);
}
else if(value.getB() instanceof Explosive){
if(((Explosive) value.getB()).getPlayer().equals(player)){
addToPrincipalPanel(value.getB(), principalPane, i, j);
}
else{
addToPrincipalPanel(null,principalPane, i, j);
}
}
else if (value.getA() != null) {
addToPrincipalPanel(value.getA(), principalPane, i, j);
}
else{
addToPrincipalPanel(null,principalPane, i, j);
}
}
}
putStatePlayerPane(principalPane);
putMoveTextPane(principalPane);
this.buttonPane = new Pane();
buttonPane.setLayoutX(0);
buttonPane.setLayoutY(600);
if(game.getCurrentPlayer() instanceof HumanPlayer) {
if(this.selectedReunionAction == null) {
choseReunionSameAction(player.generateAvailableActions());
} else {
choseDirectionAction(selectedReunionAction);
}
} else {
addButtonToPane("SUIVANT", new ClientEventHandler(nextPlayerButtonListener), buttonPane, (int) (principalPane.getPrefWidth() / 2), 0);
}
principalPane.getChildren().add(buttonPane);
principalPane.setBackground(bg);
return principalPane;
}
/**
* Add grid element to the principal pane
* @param object object to add to the pane
* @param principalPane pane where we'll add the object
* @param i
* @param j
*/
public void addToPrincipalPanel(Object object, Pane principalPane, int i, int j) {
StackPane sp = Cell.setImageObject(object, game);
sp.setLayoutY(i * cellSize);
sp.setLayoutX(j * cellSize);
principalPane.getChildren().add(sp);
}
/**
* Create the right pane
* @param principalPane principal pane where we'll add the left down pane
*/
public void putStatePlayerPane(Pane principalPane){
int Y = 0;
for(int i=0;i<game.getPlayers().size();i++){
StackPane sp = showStatePlayer(game.getPlayers().get(i).toString(),i);
sp.setLayoutX(480);
sp.setLayoutY(Y);
Y+=90;
principalPane.getChildren().add(sp);
}
}
/**
* Build left down pane (list all players information)
* @param type
* @param playerNumber
* @return
*/
public StackPane showStatePlayer(String type, int playerNumber){
StackPane subSp = new StackPane();
String s = type + " " + (playerNumber+1) + "\n" +
"Energie : " + game.getPlayers().get(playerNumber).getEnergy() + "\n" +
"Arme : " + game.getPlayers().get(playerNumber).getWeapon().getClass().getSimpleName() + "\n";
Text t = new Text(s);
Rectangle r = new Rectangle();
r.setWidth(500);
r.setHeight(90);
if(game.getPlayers().get(playerNumber).getEnergy() <= 0){
r.setFill(Color.valueOf("A54747"));
}else{
r.setFill(Color.valueOf("62B262"));
}
r.setStrokeWidth(1);
r.setStroke(Color.BLACK);
subSp.getChildren().addAll(r,t);
return subSp;
}
/**
* build left down pane and move it to its position
* @param principalPane the principal pane where we'll add the left down pane
*/
public void putMoveTextPane(Pane principalPane){
StackPane stateMoveTextPane = showMoveText();
stateMoveTextPane.setLayoutY(480);
principalPane.getChildren().add((stateMoveTextPane));
}
/**
* Build the left down pane (contains current player information)
* @return the built pane
*/
public StackPane showMoveText() {
StackPane subSp = new StackPane();
String action = game.getSelectedAction() == null ? "null" : game.getSelectedAction().getClass().getSimpleName();
String s = "Vous \u00EAtes \u00E0 la position " + player.getPosition().toString();
if(game.getPreviousPlayer() != null) {
s = game.getPreviousPlayer() + " : " + (game.getPreviousPlayer().getId()+1) + "\n" +
"Vient de jouer : " + action + "\n";
}
Text t = new Text(s);
t.setFill(Color.WHITE);
Rectangle r = new Rectangle();
r.setWidth(478);
r.setHeight(165);
r.setFill(dark);
subSp.getChildren().addAll(r,t);
return subSp;
}
public void setSelectedReunionAction(ReunionSameAction selectedReunionAction) {
this.selectedReunionAction = selectedReunionAction;
}
public NextPlayerButtonListener getNextPlayerButtonListener() {
return nextPlayerButtonListener;
}
}

View File

@ -0,0 +1,4 @@
/**
* View package, contains all classes about user view
*/
package fr.lnl.game.client.view;

View File

@ -0,0 +1,11 @@
/**
* Client module, include every view and controller classes from MVC model
*/
module client {
requires javafx.controls;
requires transitive javafx.graphics;
requires server;
exports fr.lnl.game.client;
exports fr.lnl.game.client.listener;
exports fr.lnl.game.client.view;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 334 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 285 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 525 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 360 B

BIN
livraison/dist/client.jar vendored Normal file

Binary file not shown.

BIN
livraison/dist/server.jar vendored Normal file

Binary file not shown.

View File

@ -0,0 +1,127 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
<title>All Classes and Interfaces (client API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="description" content="class index">
<meta name="generator" content="javadoc/AllClassesIndexWriter">
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="script-dir/jquery-ui.min.css" title="Style">
<link rel="stylesheet" type="text/css" href="jquery-ui.overrides.css" title="Style">
<script type="text/javascript" src="script.js"></script>
<script type="text/javascript" src="script-dir/jquery-3.5.1.min.js"></script>
<script type="text/javascript" src="script-dir/jquery-ui.min.js"></script>
</head>
<body class="all-classes-index-page">
<script type="text/javascript">var evenRowColor = "even-row-color";
var oddRowColor = "odd-row-color";
var tableTab = "table-tab";
var activeTableTab = "active-table-tab";
var pathtoroot = "./";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flex-box">
<header role="banner" class="flex-header">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="top-nav" id="navbar-top">
<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div>
<ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
<li><a href="client/module-summary.html">Module</a></li>
<li>Package</li>
<li>Class</li>
<li><a href="overview-tree.html">Tree</a></li>
<li><a href="index-all.html">Index</a></li>
<li><a href="help-doc.html#all-classes">Help</a></li>
</ul>
</div>
<div class="sub-nav">
<div class="nav-list-search"><label for="search-input">SEARCH:</label>
<input type="text" id="search-input" value="search" disabled="disabled">
<input type="reset" id="reset-button" value="reset" disabled="disabled">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip-navbar-top"></span></nav>
</header>
<div class="flex-content">
<main role="main">
<div class="header">
<h1 title="All Classes and Interfaces" class="title">All Classes and Interfaces</h1>
</div>
<div id="all-classes-table">
<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="all-classes-table-tab0" role="tab" aria-selected="true" aria-controls="all-classes-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('all-classes-table', 'all-classes-table', 2)" class="active-table-tab">All Classes and Interfaces</button><button id="all-classes-table-tab1" role="tab" aria-selected="false" aria-controls="all-classes-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('all-classes-table', 'all-classes-table-tab1', 2)" class="table-tab">Interfaces</button><button id="all-classes-table-tab2" role="tab" aria-selected="false" aria-controls="all-classes-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('all-classes-table', 'all-classes-table-tab2', 2)" class="table-tab">Classes</button><button id="all-classes-table-tab4" role="tab" aria-selected="false" aria-controls="all-classes-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('all-classes-table', 'all-classes-table-tab4', 2)" class="table-tab">Record Classes</button></div>
<div id="all-classes-table.tabpanel" role="tabpanel">
<div class="summary-table two-column-summary" aria-labelledby="all-classes-table-tab0">
<div class="table-header col-first">Class</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color all-classes-table all-classes-table-tab2"><a href="client/fr/lnl/game/client/view/AbstractView.html" title="class in fr.lnl.game.client.view">AbstractView</a></div>
<div class="col-last even-row-color all-classes-table all-classes-table-tab2">
<div class="block">Abstract class implemented by every view classes</div>
</div>
<div class="col-first odd-row-color all-classes-table all-classes-table-tab2"><a href="client/fr/lnl/game/client/App.html" title="class in fr.lnl.game.client">App</a></div>
<div class="col-last odd-row-color all-classes-table all-classes-table-tab2">
<div class="block">Application starting point</div>
</div>
<div class="col-first even-row-color all-classes-table all-classes-table-tab2"><a href="client/fr/lnl/game/client/view/Cell.html" title="class in fr.lnl.game.client.view">Cell</a></div>
<div class="col-last even-row-color all-classes-table all-classes-table-tab2">
<div class="block">classe qui a pour but de générer chaque case de la grid et de vérifier les entités présentes dessus
(Mur, Joueur, Energie, Bombe, etc.)</div>
</div>
<div class="col-first odd-row-color all-classes-table all-classes-table-tab4"><a href="client/fr/lnl/game/client/listener/ClientEventHandler.html" title="class in fr.lnl.game.client.listener">ClientEventHandler</a></div>
<div class="col-last odd-row-color all-classes-table all-classes-table-tab4">
<div class="block">implementation of a listener from JavaFX <code>EventHandler</code></div>
</div>
<div class="col-first even-row-color all-classes-table all-classes-table-tab4"><a href="client/fr/lnl/game/client/ClientPlayer.html" title="class in fr.lnl.game.client">ClientPlayer</a></div>
<div class="col-last even-row-color all-classes-table all-classes-table-tab4">
<div class="block">Store a view per player</div>
</div>
<div class="col-first odd-row-color all-classes-table all-classes-table-tab2"><a href="client/fr/lnl/game/client/listener/DisplayWinnerEvent.html" title="class in fr.lnl.game.client.listener">DisplayWinnerEvent</a></div>
<div class="col-last odd-row-color all-classes-table all-classes-table-tab2">
<div class="block">Used to display the winner of the game</div>
</div>
<div class="col-first even-row-color all-classes-table all-classes-table-tab2"><a href="client/fr/lnl/game/client/listener/NextPlayerButtonListener.html" title="class in fr.lnl.game.client.listener">NextPlayerButtonListener</a></div>
<div class="col-last even-row-color all-classes-table all-classes-table-tab2">
<div class="block">This method is call when the current player have selected an action to play (or if it's a computer player, will
select it), then we call <code>Game.play()</code> and we update the view</div>
</div>
<div class="col-first odd-row-color all-classes-table all-classes-table-tab2"><a href="client/fr/lnl/game/client/listener/SelectActionButton.html" title="class in fr.lnl.game.client.listener">SelectActionButton</a></div>
<div class="col-last odd-row-color all-classes-table all-classes-table-tab2">
<div class="block">Used when the human player select type of action it want to play</div>
</div>
<div class="col-first even-row-color all-classes-table all-classes-table-tab2"><a href="client/fr/lnl/game/client/listener/SelectDirectionListener.html" title="class in fr.lnl.game.client.listener">SelectDirectionListener</a></div>
<div class="col-last even-row-color all-classes-table all-classes-table-tab2">
<div class="block">Call when the player selected the direction where it wants to play it</div>
</div>
<div class="col-first odd-row-color all-classes-table all-classes-table-tab2"><a href="client/fr/lnl/game/client/view/Terminal.html" title="class in fr.lnl.game.client.view">Terminal</a></div>
<div class="col-last odd-row-color all-classes-table all-classes-table-tab2">
<div class="block">View terminal, use standard input and output</div>
</div>
<div class="col-first even-row-color all-classes-table all-classes-table-tab1"><a href="client/fr/lnl/game/client/view/View.html" title="interface in fr.lnl.game.client.view">View</a></div>
<div class="col-last even-row-color all-classes-table all-classes-table-tab1">
<div class="block">View interface, implemented by Terminal and Window.</div>
</div>
<div class="col-first odd-row-color all-classes-table all-classes-table-tab1"><a href="client/fr/lnl/game/client/ViewLambda.html" title="interface in fr.lnl.game.client">ViewLambda</a></div>
<div class="col-last odd-row-color all-classes-table all-classes-table-tab1">
<div class="block">Used as Lambda expression to instantiate a <a href="client/fr/lnl/game/client/view/View.html" title="interface in fr.lnl.game.client.view"><code>View</code></a> per <code>Player</code> stored in <a href="client/fr/lnl/game/client/ClientPlayer.html" title="class in fr.lnl.game.client"><code>ClientPlayer</code></a></div>
</div>
<div class="col-first even-row-color all-classes-table all-classes-table-tab2"><a href="client/fr/lnl/game/client/view/ViewManager.html" title="class in fr.lnl.game.client.view">ViewManager</a></div>
<div class="col-last even-row-color all-classes-table all-classes-table-tab2">
<div class="block">View manager, main access to every views</div>
</div>
<div class="col-first odd-row-color all-classes-table all-classes-table-tab2"><a href="client/fr/lnl/game/client/view/Window.html" title="class in fr.lnl.game.client.view">Window</a></div>
<div class="col-last odd-row-color all-classes-table all-classes-table-tab2">
<div class="block">Window view, use mouse and keyboard to control interface</div>
</div>
</div>
</div>
</div>
</main>
</div>
</div>
</body>
</html>

View File

@ -0,0 +1,73 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
<title>All Packages (client API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="description" content="package index">
<meta name="generator" content="javadoc/AllPackagesIndexWriter">
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="script-dir/jquery-ui.min.css" title="Style">
<link rel="stylesheet" type="text/css" href="jquery-ui.overrides.css" title="Style">
<script type="text/javascript" src="script.js"></script>
<script type="text/javascript" src="script-dir/jquery-3.5.1.min.js"></script>
<script type="text/javascript" src="script-dir/jquery-ui.min.js"></script>
</head>
<body class="all-packages-index-page">
<script type="text/javascript">var pathtoroot = "./";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flex-box">
<header role="banner" class="flex-header">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="top-nav" id="navbar-top">
<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div>
<ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
<li><a href="client/module-summary.html">Module</a></li>
<li>Package</li>
<li>Class</li>
<li><a href="overview-tree.html">Tree</a></li>
<li><a href="index-all.html">Index</a></li>
<li><a href="help-doc.html#all-packages">Help</a></li>
</ul>
</div>
<div class="sub-nav">
<div class="nav-list-search"><label for="search-input">SEARCH:</label>
<input type="text" id="search-input" value="search" disabled="disabled">
<input type="reset" id="reset-button" value="reset" disabled="disabled">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip-navbar-top"></span></nav>
</header>
<div class="flex-content">
<main role="main">
<div class="header">
<h1 title="All&amp;nbsp;Packages" class="title">All&nbsp;Packages</h1>
</div>
<div class="caption"><span>Package Summary</span></div>
<div class="summary-table two-column-summary">
<div class="table-header col-first">Package</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color"><a href="client/fr/lnl/game/client/package-summary.html">fr.lnl.game.client</a></div>
<div class="col-last even-row-color">
<div class="block">Client package</div>
</div>
<div class="col-first odd-row-color"><a href="client/fr/lnl/game/client/listener/package-summary.html">fr.lnl.game.client.listener</a></div>
<div class="col-last odd-row-color">
<div class="block">Package that contains every view listeners</div>
</div>
<div class="col-first even-row-color"><a href="client/fr/lnl/game/client/view/package-summary.html">fr.lnl.game.client.view</a></div>
<div class="col-last even-row-color">
<div class="block">View package, contains all classes about user view</div>
</div>
</div>
</main>
</div>
</div>
</body>
</html>

View File

@ -0,0 +1,369 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
<title>App (client API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="description" content="declaration: module: client, package: fr.lnl.game.client, class: App">
<meta name="generator" content="javadoc/ClassWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../script-dir/jquery-ui.min.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../jquery-ui.overrides.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../script-dir/jquery-3.5.1.min.js"></script>
<script type="text/javascript" src="../../../../../script-dir/jquery-ui.min.js"></script>
</head>
<body class="class-declaration-page">
<script type="text/javascript">var evenRowColor = "even-row-color";
var oddRowColor = "odd-row-color";
var tableTab = "table-tab";
var activeTableTab = "active-table-tab";
var pathtoroot = "../../../../../";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flex-box">
<header role="banner" class="flex-header">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="top-nav" id="navbar-top">
<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div>
<ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
<li><a href="../../../../module-summary.html">Module</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="nav-bar-cell1-rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html#class">Help</a></li>
</ul>
</div>
<div class="sub-nav">
<div>
<ul class="sub-nav-list">
<li>Summary:&nbsp;</li>
<li><a href="#nested-class-summary">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#field-summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor-summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method-summary">Method</a></li>
</ul>
<ul class="sub-nav-list">
<li>Detail:&nbsp;</li>
<li><a href="#field-detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor-detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method-detail">Method</a></li>
</ul>
</div>
<div class="nav-list-search"><label for="search-input">SEARCH:</label>
<input type="text" id="search-input" value="search" disabled="disabled">
<input type="reset" id="reset-button" value="reset" disabled="disabled">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip-navbar-top"></span></nav>
</header>
<div class="flex-content">
<main role="main">
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="sub-title"><span class="module-label-in-type">Module</span>&nbsp;<a href="../../../../module-summary.html">client</a></div>
<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">fr.lnl.game.client</a></div>
<h1 title="Class App" class="title">Class App</h1>
</div>
<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">java.lang.Object</a>
<div class="inheritance">javafx.application.Application
<div class="inheritance">fr.lnl.game.client.App</div>
</div>
</div>
<section class="class-description" id="class-description">
<hr>
<div class="type-signature"><span class="modifiers">public class </span><span class="element-name type-name-label">App</span>
<span class="extends-implements">extends javafx.application.Application</span></div>
<div class="block">Application starting point</div>
</section>
<section class="summary">
<ul class="summary-list">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<li>
<section class="nested-class-summary" id="nested-class-summary">
<h2>Nested Class Summary</h2>
<div class="inherited-list">
<h2 id="nested-classes-inherited-from-class-javafx.application.Application">Nested classes/interfaces inherited from class&nbsp;javafx.application.Application</h2>
<code>javafx.application.Application.Parameters</code></div>
</section>
</li>
<!-- =========== FIELD SUMMARY =========== -->
<li>
<section class="field-summary" id="field-summary">
<h2>Field Summary</h2>
<div class="caption"><span>Fields</span></div>
<div class="summary-table three-column-summary">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Field</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color"><code>private static <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/LinkedList.html" title="class or interface in java.util" class="external-link">LinkedList</a>&lt;<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&gt;</code></div>
<div class="col-second even-row-color"><code><a href="#argsList" class="member-name-link">argsList</a></code></div>
<div class="col-last even-row-color">&nbsp;</div>
<div class="col-first odd-row-color"><code>private static fr.lnl.game.server.games.Game</code></div>
<div class="col-second odd-row-color"><code><a href="#game" class="member-name-link">game</a></code></div>
<div class="col-last odd-row-color">&nbsp;</div>
<div class="col-first even-row-color"><code>private static <a href="view/ViewManager.html" title="class in fr.lnl.game.client.view">ViewManager</a></code></div>
<div class="col-second even-row-color"><code><a href="#viewManager" class="member-name-link">viewManager</a></code></div>
<div class="col-last even-row-color">&nbsp;</div>
</div>
<div class="inherited-list">
<h3 id="fields-inherited-from-class-javafx.application.Application">Fields inherited from class&nbsp;javafx.application.Application</h3>
<code>STYLESHEET_CASPIAN, STYLESHEET_MODENA</code></div>
</section>
</li>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<li>
<section class="constructor-summary" id="constructor-summary">
<h2>Constructor Summary</h2>
<div class="caption"><span>Constructors</span></div>
<div class="summary-table two-column-summary">
<div class="table-header col-first">Constructor</div>
<div class="table-header col-last">Description</div>
<div class="col-constructor-name even-row-color"><code><a href="#%3Cinit%3E()" class="member-name-link">App</a>()</code></div>
<div class="col-last even-row-color">&nbsp;</div>
</div>
</section>
</li>
<!-- ========== METHOD SUMMARY =========== -->
<li>
<section class="method-summary" id="method-summary">
<h2>Method Summary</h2>
<div id="method-summary-table">
<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab1" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab1', 3)" class="table-tab">Static Methods</button><button id="method-summary-table-tab2" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" class="table-tab">Instance Methods</button><button id="method-summary-table-tab4" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab4', 3)" class="table-tab">Concrete Methods</button></div>
<div id="method-summary-table.tabpanel" role="tabpanel">
<div class="summary-table three-column-summary" aria-labelledby="method-summary-table-tab0">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Method</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>private static fr.lnl.game.server.games.player.Player</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#createNewPlayer(java.lang.Class,fr.lnl.game.server.games.player.ClassPlayer,int)" class="member-name-link">createNewPlayer</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Class.html" title="class or interface in java.lang" class="external-link">Class</a>&lt;? extends fr.lnl.game.server.games.player.AbstractPlayer&gt;&nbsp;playerClass,
fr.lnl.game.server.games.player.ClassPlayer&nbsp;playerType,
int&nbsp;playerListSize)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">
<div class="block">create a new instance of the player</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static fr.lnl.game.server.games.Game</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#getGame()" class="member-name-link">getGame</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">&nbsp;</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static <a href="view/ViewManager.html" title="class in fr.lnl.game.client.view">ViewManager</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#getViewManager()" class="member-name-link">getViewManager</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">&nbsp;</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#launchTerminal()" class="member-name-link">launchTerminal</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">&nbsp;</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#main(java.lang.String%5B%5D)" class="member-name-link">main</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>[]&nbsp;args)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">&nbsp;</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a>&lt;fr.lnl.game.server.games.player.Player&gt;</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#parsePlayers()" class="member-name-link">parsePlayers</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">
<div class="block">Parse players arguments and create instances for each player</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Class.html" title="class or interface in java.lang" class="external-link">Class</a>&lt;? extends <a href="view/AbstractView.html" title="class in fr.lnl.game.client.view">AbstractView</a>&gt;</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#parseView()" class="member-name-link">parseView</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">
<div class="block">Parse the first argument given by user to know the view to use (Terminal or Window)</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#start(javafx.stage.Stage)" class="member-name-link">start</a><wbr>(javafx.stage.Stage&nbsp;stage)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code>static void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4"><code><a href="#startGame()" class="member-name-link">startGame</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab1 method-summary-table-tab4">
<div class="block">Parse players arguments and create a new instance of Game</div>
</div>
</div>
</div>
</div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-javafx.application.Application">Methods inherited from class&nbsp;javafx.application.Application</h3>
<code>getHostServices, getParameters, getUserAgentStylesheet, init, launch, launch, notifyPreloader, setUserAgentStylesheet, stop</code></div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-java.lang.Object">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></h3>
<code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#clone()" title="class or interface in java.lang" class="external-link">clone</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang" class="external-link">equals</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#finalize()" title="class or interface in java.lang" class="external-link">finalize</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#getClass()" title="class or interface in java.lang" class="external-link">getClass</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#hashCode()" title="class or interface in java.lang" class="external-link">hashCode</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#notify()" title="class or interface in java.lang" class="external-link">notify</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#notifyAll()" title="class or interface in java.lang" class="external-link">notifyAll</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#toString()" title="class or interface in java.lang" class="external-link">toString</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#wait()" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#wait(long)" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#wait(long,int)" title="class or interface in java.lang" class="external-link">wait</a></code></div>
</section>
</li>
</ul>
</section>
<section class="details">
<ul class="details-list">
<!-- ============ FIELD DETAIL =========== -->
<li>
<section class="field-details" id="field-detail">
<h2>Field Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="argsList">
<h3>argsList</h3>
<div class="member-signature"><span class="modifiers">private static</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/LinkedList.html" title="class or interface in java.util" class="external-link">LinkedList</a>&lt;<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&gt;</span>&nbsp;<span class="element-name">argsList</span></div>
</section>
</li>
<li>
<section class="detail" id="game">
<h3>game</h3>
<div class="member-signature"><span class="modifiers">private static</span>&nbsp;<span class="return-type">fr.lnl.game.server.games.Game</span>&nbsp;<span class="element-name">game</span></div>
</section>
</li>
<li>
<section class="detail" id="viewManager">
<h3>viewManager</h3>
<div class="member-signature"><span class="modifiers">private static</span>&nbsp;<span class="return-type"><a href="view/ViewManager.html" title="class in fr.lnl.game.client.view">ViewManager</a></span>&nbsp;<span class="element-name">viewManager</span></div>
</section>
</li>
</ul>
</section>
</li>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<li>
<section class="constructor-details" id="constructor-detail">
<h2>Constructor Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="&lt;init&gt;()">
<h3>App</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">App</span>()</div>
</section>
</li>
</ul>
</section>
</li>
<!-- ============ METHOD DETAIL ========== -->
<li>
<section class="method-details" id="method-detail">
<h2>Method Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="main(java.lang.String[])">
<h3>main</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">main</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>[]&nbsp;args)</span></div>
</section>
</li>
<li>
<section class="detail" id="startGame()">
<h3>startGame</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">startGame</span>()
throws <span class="exceptions"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/IllegalArgumentException.html" title="class or interface in java.lang" class="external-link">IllegalArgumentException</a>,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/reflect/InvocationTargetException.html" title="class or interface in java.lang.reflect" class="external-link">InvocationTargetException</a>,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/NoSuchMethodException.html" title="class or interface in java.lang" class="external-link">NoSuchMethodException</a>,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/InstantiationException.html" title="class or interface in java.lang" class="external-link">InstantiationException</a>,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/IllegalAccessException.html" title="class or interface in java.lang" class="external-link">IllegalAccessException</a></span></div>
<div class="block">Parse players arguments and create a new instance of Game</div>
<dl class="notes">
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/IllegalArgumentException.html" title="class or interface in java.lang" class="external-link">IllegalArgumentException</a></code> - when given argument is unknown</dd>
<dd><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/reflect/InvocationTargetException.html" title="class or interface in java.lang.reflect" class="external-link">InvocationTargetException</a></code> - when the creation of the player throw an exception</dd>
<dd><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/NoSuchMethodException.html" title="class or interface in java.lang" class="external-link">NoSuchMethodException</a></code> - when constructor with given parameter in <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Class.html#getConstructor(java.lang.Class...)" title="class or interface in java.lang" class="external-link"><code>Class.getConstructor(Class[])</code></a>
doesn't exist</dd>
<dd><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/InstantiationException.html" title="class or interface in java.lang" class="external-link">InstantiationException</a></code> - when the instanciation of the player is impossible (like when class is abstract),
is probably never called</dd>
<dd><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/IllegalAccessException.html" title="class or interface in java.lang" class="external-link">IllegalAccessException</a></code> - when the instanciation of thr player is impossible (like a private constructor),
is probably never called</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="start(javafx.stage.Stage)">
<h3>start</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">start</span><wbr><span class="parameters">(javafx.stage.Stage&nbsp;stage)</span></div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code>start</code>&nbsp;in class&nbsp;<code>javafx.application.Application</code></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="launchTerminal()">
<h3>launchTerminal</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">launchTerminal</span>()</div>
</section>
</li>
<li>
<section class="detail" id="parsePlayers()">
<h3>parsePlayers</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a>&lt;fr.lnl.game.server.games.player.Player&gt;</span>&nbsp;<span class="element-name">parsePlayers</span>()
throws <span class="exceptions"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/IllegalArgumentException.html" title="class or interface in java.lang" class="external-link">IllegalArgumentException</a>,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/NoSuchMethodException.html" title="class or interface in java.lang" class="external-link">NoSuchMethodException</a>,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/reflect/InvocationTargetException.html" title="class or interface in java.lang.reflect" class="external-link">InvocationTargetException</a>,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/InstantiationException.html" title="class or interface in java.lang" class="external-link">InstantiationException</a>,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/IllegalAccessException.html" title="class or interface in java.lang" class="external-link">IllegalAccessException</a></span></div>
<div class="block">Parse players arguments and create instances for each player</div>
<dl class="notes">
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/IllegalArgumentException.html" title="class or interface in java.lang" class="external-link">IllegalArgumentException</a></code> - when given argument is unknown</dd>
<dd><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/reflect/InvocationTargetException.html" title="class or interface in java.lang.reflect" class="external-link">InvocationTargetException</a></code> - when the creation of the player throw an exception</dd>
<dd><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/NoSuchMethodException.html" title="class or interface in java.lang" class="external-link">NoSuchMethodException</a></code> - when constructor with given parameter in <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Class.html#getConstructor(java.lang.Class...)" title="class or interface in java.lang" class="external-link"><code>Class.getConstructor(Class[])</code></a>
doesn't exist</dd>
<dd><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/InstantiationException.html" title="class or interface in java.lang" class="external-link">InstantiationException</a></code> - when the instanciation of the player is impossible (like when class is abstract),
is probably never called</dd>
<dd><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/IllegalAccessException.html" title="class or interface in java.lang" class="external-link">IllegalAccessException</a></code> - when the instanciation of thr player is impossible (like a private constructor),
is probably never called</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="createNewPlayer(java.lang.Class,fr.lnl.game.server.games.player.ClassPlayer,int)">
<h3>createNewPlayer</h3>
<div class="member-signature"><span class="modifiers">private static</span>&nbsp;<span class="return-type">fr.lnl.game.server.games.player.Player</span>&nbsp;<span class="element-name">createNewPlayer</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Class.html" title="class or interface in java.lang" class="external-link">Class</a>&lt;? extends fr.lnl.game.server.games.player.AbstractPlayer&gt;&nbsp;playerClass,
fr.lnl.game.server.games.player.ClassPlayer&nbsp;playerType,
int&nbsp;playerListSize)</span>
throws <span class="exceptions"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/NoSuchMethodException.html" title="class or interface in java.lang" class="external-link">NoSuchMethodException</a>,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/reflect/InvocationTargetException.html" title="class or interface in java.lang.reflect" class="external-link">InvocationTargetException</a>,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/InstantiationException.html" title="class or interface in java.lang" class="external-link">InstantiationException</a>,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/IllegalAccessException.html" title="class or interface in java.lang" class="external-link">IllegalAccessException</a></span></div>
<div class="block">create a new instance of the player</div>
<dl class="notes">
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/IllegalArgumentException.html" title="class or interface in java.lang" class="external-link">IllegalArgumentException</a></code> - when given argument is unknown (probably never called in production)</dd>
<dd><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/reflect/InvocationTargetException.html" title="class or interface in java.lang.reflect" class="external-link">InvocationTargetException</a></code> - when the creation of the player throw an exception</dd>
<dd><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/NoSuchMethodException.html" title="class or interface in java.lang" class="external-link">NoSuchMethodException</a></code> - when constructor with given parameter in <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Class.html#getConstructor(java.lang.Class...)" title="class or interface in java.lang" class="external-link"><code>Class.getConstructor(Class[])</code></a>
doesn't exist</dd>
<dd><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/InstantiationException.html" title="class or interface in java.lang" class="external-link">InstantiationException</a></code> - when the instanciation of the player is impossible (like when class is abstract),
is probably never called</dd>
<dd><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/IllegalAccessException.html" title="class or interface in java.lang" class="external-link">IllegalAccessException</a></code> - when the instanciation of thr player is impossible (like a private constructor),
is probably never called</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="parseView()">
<h3>parseView</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Class.html" title="class or interface in java.lang" class="external-link">Class</a>&lt;? extends <a href="view/AbstractView.html" title="class in fr.lnl.game.client.view">AbstractView</a>&gt;</span>&nbsp;<span class="element-name">parseView</span>()
throws <span class="exceptions"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/IllegalArgumentException.html" title="class or interface in java.lang" class="external-link">IllegalArgumentException</a></span></div>
<div class="block">Parse the first argument given by user to know the view to use (Terminal or Window)</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>The class of the View to use</dd>
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/IllegalArgumentException.html" title="class or interface in java.lang" class="external-link">IllegalArgumentException</a></code> - when given argument is unknown or no argument is given by user</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getViewManager()">
<h3>getViewManager</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type"><a href="view/ViewManager.html" title="class in fr.lnl.game.client.view">ViewManager</a></span>&nbsp;<span class="element-name">getViewManager</span>()</div>
</section>
</li>
<li>
<section class="detail" id="getGame()">
<h3>getGame</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type">fr.lnl.game.server.games.Game</span>&nbsp;<span class="element-name">getGame</span>()</div>
</section>
</li>
</ul>
</section>
</li>
</ul>
</section>
<!-- ========= END OF CLASS DATA ========= -->
</main>
</div>
</div>
</body>
</html>

View File

@ -0,0 +1,312 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
<title>ClientPlayer (client API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="description" content="declaration: module: client, package: fr.lnl.game.client, record: ClientPlayer">
<meta name="generator" content="javadoc/ClassWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../script-dir/jquery-ui.min.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../jquery-ui.overrides.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../script-dir/jquery-3.5.1.min.js"></script>
<script type="text/javascript" src="../../../../../script-dir/jquery-ui.min.js"></script>
</head>
<body class="class-declaration-page">
<script type="text/javascript">var evenRowColor = "even-row-color";
var oddRowColor = "odd-row-color";
var tableTab = "table-tab";
var activeTableTab = "active-table-tab";
var pathtoroot = "../../../../../";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flex-box">
<header role="banner" class="flex-header">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="top-nav" id="navbar-top">
<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div>
<ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
<li><a href="../../../../module-summary.html">Module</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="nav-bar-cell1-rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html#class">Help</a></li>
</ul>
</div>
<div class="sub-nav">
<div>
<ul class="sub-nav-list">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field-summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor-summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method-summary">Method</a></li>
</ul>
<ul class="sub-nav-list">
<li>Detail:&nbsp;</li>
<li><a href="#field-detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor-detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method-detail">Method</a></li>
</ul>
</div>
<div class="nav-list-search"><label for="search-input">SEARCH:</label>
<input type="text" id="search-input" value="search" disabled="disabled">
<input type="reset" id="reset-button" value="reset" disabled="disabled">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip-navbar-top"></span></nav>
</header>
<div class="flex-content">
<main role="main">
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="sub-title"><span class="module-label-in-type">Module</span>&nbsp;<a href="../../../../module-summary.html">client</a></div>
<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">fr.lnl.game.client</a></div>
<h1 title="Record Class ClientPlayer" class="title">Record Class ClientPlayer</h1>
</div>
<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">java.lang.Object</a>
<div class="inheritance"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Record.html" title="class or interface in java.lang" class="external-link">java.lang.Record</a>
<div class="inheritance">fr.lnl.game.client.ClientPlayer</div>
</div>
</div>
<section class="class-description" id="class-description">
<hr>
<div class="type-signature"><span class="modifiers">public record </span><span class="element-name type-name-label">ClientPlayer</span>(fr.lnl.game.server.games.player.Player&nbsp;serverPlayer, <a href="view/View.html" title="interface in fr.lnl.game.client.view">View</a>&nbsp;view)
<span class="extends-implements">extends <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Record.html" title="class or interface in java.lang" class="external-link">Record</a></span></div>
<div class="block">Store a view per player</div>
</section>
<section class="summary">
<ul class="summary-list">
<!-- =========== FIELD SUMMARY =========== -->
<li>
<section class="field-summary" id="field-summary">
<h2>Field Summary</h2>
<div class="caption"><span>Fields</span></div>
<div class="summary-table three-column-summary">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Field</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color"><code>private final fr.lnl.game.server.games.player.Player</code></div>
<div class="col-second even-row-color"><code><a href="#serverPlayer" class="member-name-link">serverPlayer</a></code></div>
<div class="col-last even-row-color">
<div class="block">The field for the <code>serverPlayer</code> record component.</div>
</div>
<div class="col-first odd-row-color"><code>private final <a href="view/View.html" title="interface in fr.lnl.game.client.view">View</a></code></div>
<div class="col-second odd-row-color"><code><a href="#view" class="member-name-link">view</a></code></div>
<div class="col-last odd-row-color">
<div class="block">The field for the <code>view</code> record component.</div>
</div>
</div>
</section>
</li>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<li>
<section class="constructor-summary" id="constructor-summary">
<h2>Constructor Summary</h2>
<div class="caption"><span>Constructors</span></div>
<div class="summary-table two-column-summary">
<div class="table-header col-first">Constructor</div>
<div class="table-header col-last">Description</div>
<div class="col-constructor-name even-row-color"><code><a href="#%3Cinit%3E(fr.lnl.game.server.games.player.Player,fr.lnl.game.client.view.View)" class="member-name-link">ClientPlayer</a><wbr>(fr.lnl.game.server.games.player.Player&nbsp;serverPlayer,
<a href="view/View.html" title="interface in fr.lnl.game.client.view">View</a>&nbsp;view)</code></div>
<div class="col-last even-row-color">
<div class="block">Creates an instance of a <code>ClientPlayer</code> record class.</div>
</div>
</div>
</section>
</li>
<!-- ========== METHOD SUMMARY =========== -->
<li>
<section class="method-summary" id="method-summary">
<h2>Method Summary</h2>
<div id="method-summary-table">
<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab2" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" class="table-tab">Instance Methods</button><button id="method-summary-table-tab4" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab4', 3)" class="table-tab">Concrete Methods</button></div>
<div id="method-summary-table.tabpanel" role="tabpanel">
<div class="summary-table three-column-summary" aria-labelledby="method-summary-table-tab0">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Method</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>final boolean</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#equals(java.lang.Object)" class="member-name-link">equals</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a>&nbsp;o)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Indicates whether some other object is "equal to" this one.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>fr.lnl.game.server.games.player.Player</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getServerPlayer()" class="member-name-link">getServerPlayer</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="view/View.html" title="interface in fr.lnl.game.client.view">View</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getView()" class="member-name-link">getView</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>final int</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#hashCode()" class="member-name-link">hashCode</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Returns a hash code value for this object.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>fr.lnl.game.server.games.player.Player</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#serverPlayer()" class="member-name-link">serverPlayer</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Returns the value of the <code>serverPlayer</code> record component.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>final <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#toString()" class="member-name-link">toString</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Returns a string representation of this record class.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="view/View.html" title="interface in fr.lnl.game.client.view">View</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#view()" class="member-name-link">view</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Returns the value of the <code>view</code> record component.</div>
</div>
</div>
</div>
</div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-java.lang.Object">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></h3>
<code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#clone()" title="class or interface in java.lang" class="external-link">clone</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#finalize()" title="class or interface in java.lang" class="external-link">finalize</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#getClass()" title="class or interface in java.lang" class="external-link">getClass</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#notify()" title="class or interface in java.lang" class="external-link">notify</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#notifyAll()" title="class or interface in java.lang" class="external-link">notifyAll</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#wait()" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#wait(long)" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#wait(long,int)" title="class or interface in java.lang" class="external-link">wait</a></code></div>
</section>
</li>
</ul>
</section>
<section class="details">
<ul class="details-list">
<!-- ============ FIELD DETAIL =========== -->
<li>
<section class="field-details" id="field-detail">
<h2>Field Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="serverPlayer">
<h3>serverPlayer</h3>
<div class="member-signature"><span class="modifiers">private final</span>&nbsp;<span class="return-type">fr.lnl.game.server.games.player.Player</span>&nbsp;<span class="element-name">serverPlayer</span></div>
<div class="block">The field for the <code>serverPlayer</code> record component.</div>
</section>
</li>
<li>
<section class="detail" id="view">
<h3>view</h3>
<div class="member-signature"><span class="modifiers">private final</span>&nbsp;<span class="return-type"><a href="view/View.html" title="interface in fr.lnl.game.client.view">View</a></span>&nbsp;<span class="element-name">view</span></div>
<div class="block">The field for the <code>view</code> record component.</div>
</section>
</li>
</ul>
</section>
</li>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<li>
<section class="constructor-details" id="constructor-detail">
<h2>Constructor Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="&lt;init&gt;(fr.lnl.game.server.games.player.Player,fr.lnl.game.client.view.View)">
<h3>ClientPlayer</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">ClientPlayer</span><wbr><span class="parameters">(fr.lnl.game.server.games.player.Player&nbsp;serverPlayer,
<a href="view/View.html" title="interface in fr.lnl.game.client.view">View</a>&nbsp;view)</span></div>
<div class="block">Creates an instance of a <code>ClientPlayer</code> record class.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>serverPlayer</code> - the value for the <code>serverPlayer</code> record component</dd>
<dd><code>view</code> - the value for the <code>view</code> record component</dd>
</dl>
</section>
</li>
</ul>
</section>
</li>
<!-- ============ METHOD DETAIL ========== -->
<li>
<section class="method-details" id="method-detail">
<h2>Method Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="getServerPlayer()">
<h3>getServerPlayer</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">fr.lnl.game.server.games.player.Player</span>&nbsp;<span class="element-name">getServerPlayer</span>()</div>
</section>
</li>
<li>
<section class="detail" id="getView()">
<h3>getView</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="view/View.html" title="interface in fr.lnl.game.client.view">View</a></span>&nbsp;<span class="element-name">getView</span>()</div>
</section>
</li>
<li>
<section class="detail" id="toString()">
<h3>toString</h3>
<div class="member-signature"><span class="modifiers">public final</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name">toString</span>()</div>
<div class="block">Returns a string representation of this record class. The representation contains the name of the class, followed by the name and value of each of the record components.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Record.html#toString()" title="class or interface in java.lang" class="external-link">toString</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Record.html" title="class or interface in java.lang" class="external-link">Record</a></code></dd>
<dt>Returns:</dt>
<dd>a string representation of this object</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="hashCode()">
<h3>hashCode</h3>
<div class="member-signature"><span class="modifiers">public final</span>&nbsp;<span class="return-type">int</span>&nbsp;<span class="element-name">hashCode</span>()</div>
<div class="block">Returns a hash code value for this object. The value is derived from the hash code of each of the record components.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Record.html#hashCode()" title="class or interface in java.lang" class="external-link">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Record.html" title="class or interface in java.lang" class="external-link">Record</a></code></dd>
<dt>Returns:</dt>
<dd>a hash code value for this object</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="equals(java.lang.Object)">
<h3>equals</h3>
<div class="member-signature"><span class="modifiers">public final</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">equals</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a>&nbsp;o)</span></div>
<div class="block">Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. All components in this record class are compared with <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Objects.html#equals(java.lang.Object,java.lang.Object)" title="class or interface in java.util" class="external-link"><code>Objects::equals(Object,Object)</code></a>.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Record.html#equals(java.lang.Object)" title="class or interface in java.lang" class="external-link">equals</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Record.html" title="class or interface in java.lang" class="external-link">Record</a></code></dd>
<dt>Parameters:</dt>
<dd><code>o</code> - the object with which to compare</dd>
<dt>Returns:</dt>
<dd><code>true</code> if this object is the same as the <code>o</code> argument; <code>false</code> otherwise.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="serverPlayer()">
<h3>serverPlayer</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">fr.lnl.game.server.games.player.Player</span>&nbsp;<span class="element-name">serverPlayer</span>()</div>
<div class="block">Returns the value of the <code>serverPlayer</code> record component.</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>the value of the <code>serverPlayer</code> record component</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="view()">
<h3>view</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="view/View.html" title="interface in fr.lnl.game.client.view">View</a></span>&nbsp;<span class="element-name">view</span>()</div>
<div class="block">Returns the value of the <code>view</code> record component.</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>the value of the <code>view</code> record component</dd>
</dl>
</section>
</li>
</ul>
</section>
</li>
</ul>
</section>
<!-- ========= END OF CLASS DATA ========= -->
</main>
</div>
</div>
</body>
</html>

View File

@ -0,0 +1,139 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
<title>ViewLambda (client API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="description" content="declaration: module: client, package: fr.lnl.game.client, interface: ViewLambda">
<meta name="generator" content="javadoc/ClassWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../script-dir/jquery-ui.min.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../jquery-ui.overrides.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../script-dir/jquery-3.5.1.min.js"></script>
<script type="text/javascript" src="../../../../../script-dir/jquery-ui.min.js"></script>
</head>
<body class="class-declaration-page">
<script type="text/javascript">var evenRowColor = "even-row-color";
var oddRowColor = "odd-row-color";
var tableTab = "table-tab";
var activeTableTab = "active-table-tab";
var pathtoroot = "../../../../../";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flex-box">
<header role="banner" class="flex-header">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="top-nav" id="navbar-top">
<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div>
<ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
<li><a href="../../../../module-summary.html">Module</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="nav-bar-cell1-rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html#class">Help</a></li>
</ul>
</div>
<div class="sub-nav">
<div>
<ul class="sub-nav-list">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method-summary">Method</a></li>
</ul>
<ul class="sub-nav-list">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method-detail">Method</a></li>
</ul>
</div>
<div class="nav-list-search"><label for="search-input">SEARCH:</label>
<input type="text" id="search-input" value="search" disabled="disabled">
<input type="reset" id="reset-button" value="reset" disabled="disabled">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip-navbar-top"></span></nav>
</header>
<div class="flex-content">
<main role="main">
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="sub-title"><span class="module-label-in-type">Module</span>&nbsp;<a href="../../../../module-summary.html">client</a></div>
<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">fr.lnl.game.client</a></div>
<h1 title="Interface ViewLambda" class="title">Interface ViewLambda</h1>
</div>
<section class="class-description" id="class-description">
<dl class="notes">
<dt>Functional Interface:</dt>
<dd>This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.</dd>
</dl>
<hr>
<div class="type-signature"><span class="annotations"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/FunctionalInterface.html" title="class or interface in java.lang" class="external-link">@FunctionalInterface</a>
</span><span class="modifiers">public interface </span><span class="element-name type-name-label">ViewLambda</span></div>
<div class="block">Used as Lambda expression to instantiate a <a href="view/View.html" title="interface in fr.lnl.game.client.view"><code>View</code></a> per <code>Player</code> stored in <a href="ClientPlayer.html" title="class in fr.lnl.game.client"><code>ClientPlayer</code></a></div>
</section>
<section class="summary">
<ul class="summary-list">
<!-- ========== METHOD SUMMARY =========== -->
<li>
<section class="method-summary" id="method-summary">
<h2>Method Summary</h2>
<div id="method-summary-table">
<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab2" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" class="table-tab">Instance Methods</button><button id="method-summary-table-tab3" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab3', 3)" class="table-tab">Abstract Methods</button></div>
<div id="method-summary-table.tabpanel" role="tabpanel">
<div class="summary-table three-column-summary" aria-labelledby="method-summary-table-tab0">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Method</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="view/View.html" title="interface in fr.lnl.game.client.view">View</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#createViewLambda(fr.lnl.game.server.games.player.Player)" class="member-name-link">createViewLambda</a><wbr>(fr.lnl.game.server.games.player.Player&nbsp;player)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">A lambda create an anonymous class which implements this interface</div>
</div>
</div>
</div>
</div>
</section>
</li>
</ul>
</section>
<section class="details">
<ul class="details-list">
<!-- ============ METHOD DETAIL ========== -->
<li>
<section class="method-details" id="method-detail">
<h2>Method Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="createViewLambda(fr.lnl.game.server.games.player.Player)">
<h3>createViewLambda</h3>
<div class="member-signature"><span class="return-type"><a href="view/View.html" title="interface in fr.lnl.game.client.view">View</a></span>&nbsp;<span class="element-name">createViewLambda</span><wbr><span class="parameters">(fr.lnl.game.server.games.player.Player&nbsp;player)</span></div>
<div class="block">A lambda create an anonymous class which implements this interface</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>player</code> - an instance of <code>Player</code> to store in <a href="view/View.html" title="interface in fr.lnl.game.client.view"><code>View</code></a></dd>
<dt>Returns:</dt>
<dd>an instance of view (depending on the first argument when launching the program)</dd>
</dl>
</section>
</li>
</ul>
</section>
</li>
</ul>
</section>
<!-- ========= END OF CLASS DATA ========= -->
</main>
</div>
</div>
</body>
</html>

View File

@ -0,0 +1,286 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
<title>ClientEventHandler (client API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="description" content="declaration: module: client, package: fr.lnl.game.client.listener, record: ClientEventHandler">
<meta name="generator" content="javadoc/ClassWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../../script-dir/jquery-ui.min.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../../jquery-ui.overrides.css" title="Style">
<script type="text/javascript" src="../../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../../script-dir/jquery-3.5.1.min.js"></script>
<script type="text/javascript" src="../../../../../../script-dir/jquery-ui.min.js"></script>
</head>
<body class="class-declaration-page">
<script type="text/javascript">var evenRowColor = "even-row-color";
var oddRowColor = "odd-row-color";
var tableTab = "table-tab";
var activeTableTab = "active-table-tab";
var pathtoroot = "../../../../../../";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flex-box">
<header role="banner" class="flex-header">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="top-nav" id="navbar-top">
<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div>
<ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
<li><a href="../../../../../module-summary.html">Module</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="nav-bar-cell1-rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../../help-doc.html#class">Help</a></li>
</ul>
</div>
<div class="sub-nav">
<div>
<ul class="sub-nav-list">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field-summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor-summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method-summary">Method</a></li>
</ul>
<ul class="sub-nav-list">
<li>Detail:&nbsp;</li>
<li><a href="#field-detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor-detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method-detail">Method</a></li>
</ul>
</div>
<div class="nav-list-search"><label for="search-input">SEARCH:</label>
<input type="text" id="search-input" value="search" disabled="disabled">
<input type="reset" id="reset-button" value="reset" disabled="disabled">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip-navbar-top"></span></nav>
</header>
<div class="flex-content">
<main role="main">
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="sub-title"><span class="module-label-in-type">Module</span>&nbsp;<a href="../../../../../module-summary.html">client</a></div>
<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">fr.lnl.game.client.listener</a></div>
<h1 title="Record Class ClientEventHandler" class="title">Record Class ClientEventHandler</h1>
</div>
<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">java.lang.Object</a>
<div class="inheritance"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Record.html" title="class or interface in java.lang" class="external-link">java.lang.Record</a>
<div class="inheritance">fr.lnl.game.client.listener.ClientEventHandler</div>
</div>
</div>
<section class="class-description" id="class-description">
<dl class="notes">
<dt>All Implemented Interfaces:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/EventListener.html" title="class or interface in java.util" class="external-link">EventListener</a></code>, <code>javafx.event.EventHandler&lt;javafx.event.ActionEvent&gt;</code></dd>
</dl>
<hr>
<div class="type-signature"><span class="modifiers">public record </span><span class="element-name type-name-label">ClientEventHandler</span>(fr.lnl.game.server.listener.ModelListener&nbsp;listener)
<span class="extends-implements">extends <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Record.html" title="class or interface in java.lang" class="external-link">Record</a>
implements javafx.event.EventHandler&lt;javafx.event.ActionEvent&gt;</span></div>
<div class="block">implementation of a listener from JavaFX <code>EventHandler</code></div>
</section>
<section class="summary">
<ul class="summary-list">
<!-- =========== FIELD SUMMARY =========== -->
<li>
<section class="field-summary" id="field-summary">
<h2>Field Summary</h2>
<div class="caption"><span>Fields</span></div>
<div class="summary-table three-column-summary">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Field</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color"><code>private final fr.lnl.game.server.listener.ModelListener</code></div>
<div class="col-second even-row-color"><code><a href="#listener" class="member-name-link">listener</a></code></div>
<div class="col-last even-row-color">
<div class="block">The field for the <code>listener</code> record component.</div>
</div>
</div>
</section>
</li>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<li>
<section class="constructor-summary" id="constructor-summary">
<h2>Constructor Summary</h2>
<div class="caption"><span>Constructors</span></div>
<div class="summary-table two-column-summary">
<div class="table-header col-first">Constructor</div>
<div class="table-header col-last">Description</div>
<div class="col-constructor-name even-row-color"><code><a href="#%3Cinit%3E(fr.lnl.game.server.listener.ModelListener)" class="member-name-link">ClientEventHandler</a><wbr>(fr.lnl.game.server.listener.ModelListener&nbsp;listener)</code></div>
<div class="col-last even-row-color">
<div class="block">Creates an instance of a <code>ClientEventHandler</code> record class.</div>
</div>
</div>
</section>
</li>
<!-- ========== METHOD SUMMARY =========== -->
<li>
<section class="method-summary" id="method-summary">
<h2>Method Summary</h2>
<div id="method-summary-table">
<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab2" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" class="table-tab">Instance Methods</button><button id="method-summary-table-tab4" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab4', 3)" class="table-tab">Concrete Methods</button></div>
<div id="method-summary-table.tabpanel" role="tabpanel">
<div class="summary-table three-column-summary" aria-labelledby="method-summary-table-tab0">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Method</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>final boolean</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#equals(java.lang.Object)" class="member-name-link">equals</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a>&nbsp;o)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Indicates whether some other object is "equal to" this one.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#handle(javafx.event.ActionEvent)" class="member-name-link">handle</a><wbr>(javafx.event.ActionEvent&nbsp;event)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">This method is call by JavaFX when we click to the button</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>final int</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#hashCode()" class="member-name-link">hashCode</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Returns a hash code value for this object.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>fr.lnl.game.server.listener.ModelListener</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#listener()" class="member-name-link">listener</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Returns the value of the <code>listener</code> record component.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>final <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#toString()" class="member-name-link">toString</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Returns a string representation of this record class.</div>
</div>
</div>
</div>
</div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-java.lang.Object">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></h3>
<code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#clone()" title="class or interface in java.lang" class="external-link">clone</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#finalize()" title="class or interface in java.lang" class="external-link">finalize</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#getClass()" title="class or interface in java.lang" class="external-link">getClass</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#notify()" title="class or interface in java.lang" class="external-link">notify</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#notifyAll()" title="class or interface in java.lang" class="external-link">notifyAll</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#wait()" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#wait(long)" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#wait(long,int)" title="class or interface in java.lang" class="external-link">wait</a></code></div>
</section>
</li>
</ul>
</section>
<section class="details">
<ul class="details-list">
<!-- ============ FIELD DETAIL =========== -->
<li>
<section class="field-details" id="field-detail">
<h2>Field Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="listener">
<h3>listener</h3>
<div class="member-signature"><span class="modifiers">private final</span>&nbsp;<span class="return-type">fr.lnl.game.server.listener.ModelListener</span>&nbsp;<span class="element-name">listener</span></div>
<div class="block">The field for the <code>listener</code> record component.</div>
</section>
</li>
</ul>
</section>
</li>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<li>
<section class="constructor-details" id="constructor-detail">
<h2>Constructor Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="&lt;init&gt;(fr.lnl.game.server.listener.ModelListener)">
<h3>ClientEventHandler</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">ClientEventHandler</span><wbr><span class="parameters">(fr.lnl.game.server.listener.ModelListener&nbsp;listener)</span></div>
<div class="block">Creates an instance of a <code>ClientEventHandler</code> record class.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>listener</code> - the value for the <code>listener</code> record component</dd>
</dl>
</section>
</li>
</ul>
</section>
</li>
<!-- ============ METHOD DETAIL ========== -->
<li>
<section class="method-details" id="method-detail">
<h2>Method Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="handle(javafx.event.ActionEvent)">
<h3>handle</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">handle</span><wbr><span class="parameters">(javafx.event.ActionEvent&nbsp;event)</span></div>
<div class="block">This method is call by JavaFX when we click to the button</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code>handle</code>&nbsp;in interface&nbsp;<code>javafx.event.EventHandler&lt;javafx.event.ActionEvent&gt;</code></dd>
<dt>Parameters:</dt>
<dd><code>event</code> - event class created when clicking on the element</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="toString()">
<h3>toString</h3>
<div class="member-signature"><span class="modifiers">public final</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name">toString</span>()</div>
<div class="block">Returns a string representation of this record class. The representation contains the name of the class, followed by the name and value of each of the record components.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Record.html#toString()" title="class or interface in java.lang" class="external-link">toString</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Record.html" title="class or interface in java.lang" class="external-link">Record</a></code></dd>
<dt>Returns:</dt>
<dd>a string representation of this object</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="hashCode()">
<h3>hashCode</h3>
<div class="member-signature"><span class="modifiers">public final</span>&nbsp;<span class="return-type">int</span>&nbsp;<span class="element-name">hashCode</span>()</div>
<div class="block">Returns a hash code value for this object. The value is derived from the hash code of each of the record components.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Record.html#hashCode()" title="class or interface in java.lang" class="external-link">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Record.html" title="class or interface in java.lang" class="external-link">Record</a></code></dd>
<dt>Returns:</dt>
<dd>a hash code value for this object</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="equals(java.lang.Object)">
<h3>equals</h3>
<div class="member-signature"><span class="modifiers">public final</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">equals</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a>&nbsp;o)</span></div>
<div class="block">Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. All components in this record class are compared with <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Objects.html#equals(java.lang.Object,java.lang.Object)" title="class or interface in java.util" class="external-link"><code>Objects::equals(Object,Object)</code></a>.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Record.html#equals(java.lang.Object)" title="class or interface in java.lang" class="external-link">equals</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Record.html" title="class or interface in java.lang" class="external-link">Record</a></code></dd>
<dt>Parameters:</dt>
<dd><code>o</code> - the object with which to compare</dd>
<dt>Returns:</dt>
<dd><code>true</code> if this object is the same as the <code>o</code> argument; <code>false</code> otherwise.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="listener()">
<h3>listener</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">fr.lnl.game.server.listener.ModelListener</span>&nbsp;<span class="element-name">listener</span>()</div>
<div class="block">Returns the value of the <code>listener</code> record component.</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>the value of the <code>listener</code> record component</dd>
</dl>
</section>
</li>
</ul>
</section>
</li>
</ul>
</section>
<!-- ========= END OF CLASS DATA ========= -->
</main>
</div>
</div>
</body>
</html>

View File

@ -0,0 +1,184 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
<title>DisplayWinnerEvent (client API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="description" content="declaration: module: client, package: fr.lnl.game.client.listener, class: DisplayWinnerEvent">
<meta name="generator" content="javadoc/ClassWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../../script-dir/jquery-ui.min.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../../jquery-ui.overrides.css" title="Style">
<script type="text/javascript" src="../../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../../script-dir/jquery-3.5.1.min.js"></script>
<script type="text/javascript" src="../../../../../../script-dir/jquery-ui.min.js"></script>
</head>
<body class="class-declaration-page">
<script type="text/javascript">var evenRowColor = "even-row-color";
var oddRowColor = "odd-row-color";
var tableTab = "table-tab";
var activeTableTab = "active-table-tab";
var pathtoroot = "../../../../../../";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flex-box">
<header role="banner" class="flex-header">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="top-nav" id="navbar-top">
<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div>
<ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
<li><a href="../../../../../module-summary.html">Module</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="nav-bar-cell1-rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../../help-doc.html#class">Help</a></li>
</ul>
</div>
<div class="sub-nav">
<div>
<ul class="sub-nav-list">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field-summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor-summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method-summary">Method</a></li>
</ul>
<ul class="sub-nav-list">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor-detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method-detail">Method</a></li>
</ul>
</div>
<div class="nav-list-search"><label for="search-input">SEARCH:</label>
<input type="text" id="search-input" value="search" disabled="disabled">
<input type="reset" id="reset-button" value="reset" disabled="disabled">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip-navbar-top"></span></nav>
</header>
<div class="flex-content">
<main role="main">
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="sub-title"><span class="module-label-in-type">Module</span>&nbsp;<a href="../../../../../module-summary.html">client</a></div>
<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">fr.lnl.game.client.listener</a></div>
<h1 title="Class DisplayWinnerEvent" class="title">Class DisplayWinnerEvent</h1>
</div>
<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">java.lang.Object</a>
<div class="inheritance">fr.lnl.game.server.listener.AbstractModelListening
<div class="inheritance">fr.lnl.game.client.listener.DisplayWinnerEvent</div>
</div>
</div>
<section class="class-description" id="class-description">
<dl class="notes">
<dt>All Implemented Interfaces:</dt>
<dd><code>fr.lnl.game.server.listener.ModelListener</code></dd>
</dl>
<hr>
<div class="type-signature"><span class="modifiers">public class </span><span class="element-name type-name-label">DisplayWinnerEvent</span>
<span class="extends-implements">extends fr.lnl.game.server.listener.AbstractModelListening</span></div>
<div class="block">Used to display the winner of the game</div>
</section>
<section class="summary">
<ul class="summary-list">
<!-- =========== FIELD SUMMARY =========== -->
<li>
<section class="field-summary" id="field-summary">
<h2>Field Summary</h2>
<div class="inherited-list">
<h3 id="fields-inherited-from-class-fr.lnl.game.server.listener.AbstractModelListening">Fields inherited from class&nbsp;fr.lnl.game.server.listener.AbstractModelListening</h3>
<code>listeners</code></div>
</section>
</li>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<li>
<section class="constructor-summary" id="constructor-summary">
<h2>Constructor Summary</h2>
<div class="caption"><span>Constructors</span></div>
<div class="summary-table two-column-summary">
<div class="table-header col-first">Constructor</div>
<div class="table-header col-last">Description</div>
<div class="col-constructor-name even-row-color"><code><a href="#%3Cinit%3E()" class="member-name-link">DisplayWinnerEvent</a>()</code></div>
<div class="col-last even-row-color">&nbsp;</div>
</div>
</section>
</li>
<!-- ========== METHOD SUMMARY =========== -->
<li>
<section class="method-summary" id="method-summary">
<h2>Method Summary</h2>
<div id="method-summary-table">
<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab2" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" class="table-tab">Instance Methods</button><button id="method-summary-table-tab4" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab4', 3)" class="table-tab">Concrete Methods</button></div>
<div id="method-summary-table.tabpanel" role="tabpanel">
<div class="summary-table three-column-summary" aria-labelledby="method-summary-table-tab0">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Method</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#updateModel(java.lang.Object)" class="member-name-link">updateModel</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a>&nbsp;obj)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">This method is call when the game is over</div>
</div>
</div>
</div>
</div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-fr.lnl.game.server.listener.AbstractModelListening">Methods inherited from class&nbsp;fr.lnl.game.server.listener.AbstractModelListening</h3>
<code>addListener, fireChange, removalListener</code></div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-java.lang.Object">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></h3>
<code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#clone()" title="class or interface in java.lang" class="external-link">clone</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang" class="external-link">equals</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#finalize()" title="class or interface in java.lang" class="external-link">finalize</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#getClass()" title="class or interface in java.lang" class="external-link">getClass</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#hashCode()" title="class or interface in java.lang" class="external-link">hashCode</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#notify()" title="class or interface in java.lang" class="external-link">notify</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#notifyAll()" title="class or interface in java.lang" class="external-link">notifyAll</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#toString()" title="class or interface in java.lang" class="external-link">toString</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#wait()" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#wait(long)" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#wait(long,int)" title="class or interface in java.lang" class="external-link">wait</a></code></div>
</section>
</li>
</ul>
</section>
<section class="details">
<ul class="details-list">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<li>
<section class="constructor-details" id="constructor-detail">
<h2>Constructor Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="&lt;init&gt;()">
<h3>DisplayWinnerEvent</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">DisplayWinnerEvent</span>()</div>
</section>
</li>
</ul>
</section>
</li>
<!-- ============ METHOD DETAIL ========== -->
<li>
<section class="method-details" id="method-detail">
<h2>Method Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="updateModel(java.lang.Object)">
<h3>updateModel</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">updateModel</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a>&nbsp;obj)</span></div>
<div class="block">This method is call when the game is over</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>obj</code> - contains the winner of the game, can be null</dd>
</dl>
</section>
</li>
</ul>
</section>
</li>
</ul>
</section>
<!-- ========= END OF CLASS DATA ========= -->
</main>
</div>
</div>
</body>
</html>

View File

@ -0,0 +1,215 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
<title>NextPlayerButtonListener (client API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="description" content="declaration: module: client, package: fr.lnl.game.client.listener, class: NextPlayerButtonListener">
<meta name="generator" content="javadoc/ClassWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../../script-dir/jquery-ui.min.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../../jquery-ui.overrides.css" title="Style">
<script type="text/javascript" src="../../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../../script-dir/jquery-3.5.1.min.js"></script>
<script type="text/javascript" src="../../../../../../script-dir/jquery-ui.min.js"></script>
</head>
<body class="class-declaration-page">
<script type="text/javascript">var evenRowColor = "even-row-color";
var oddRowColor = "odd-row-color";
var tableTab = "table-tab";
var activeTableTab = "active-table-tab";
var pathtoroot = "../../../../../../";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flex-box">
<header role="banner" class="flex-header">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="top-nav" id="navbar-top">
<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div>
<ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
<li><a href="../../../../../module-summary.html">Module</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="nav-bar-cell1-rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../../help-doc.html#class">Help</a></li>
</ul>
</div>
<div class="sub-nav">
<div>
<ul class="sub-nav-list">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field-summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor-summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method-summary">Method</a></li>
</ul>
<ul class="sub-nav-list">
<li>Detail:&nbsp;</li>
<li><a href="#field-detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor-detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method-detail">Method</a></li>
</ul>
</div>
<div class="nav-list-search"><label for="search-input">SEARCH:</label>
<input type="text" id="search-input" value="search" disabled="disabled">
<input type="reset" id="reset-button" value="reset" disabled="disabled">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip-navbar-top"></span></nav>
</header>
<div class="flex-content">
<main role="main">
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="sub-title"><span class="module-label-in-type">Module</span>&nbsp;<a href="../../../../../module-summary.html">client</a></div>
<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">fr.lnl.game.client.listener</a></div>
<h1 title="Class NextPlayerButtonListener" class="title">Class NextPlayerButtonListener</h1>
</div>
<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">java.lang.Object</a>
<div class="inheritance">fr.lnl.game.server.listener.AbstractModelListening
<div class="inheritance">fr.lnl.game.client.listener.NextPlayerButtonListener</div>
</div>
</div>
<section class="class-description" id="class-description">
<dl class="notes">
<dt>All Implemented Interfaces:</dt>
<dd><code>fr.lnl.game.server.listener.ModelListener</code></dd>
</dl>
<hr>
<div class="type-signature"><span class="modifiers">public class </span><span class="element-name type-name-label">NextPlayerButtonListener</span>
<span class="extends-implements">extends fr.lnl.game.server.listener.AbstractModelListening</span></div>
<div class="block">This method is call when the current player have selected an action to play (or if it's a computer player, will
select it), then we call <code>Game.play()</code> and we update the view</div>
</section>
<section class="summary">
<ul class="summary-list">
<!-- =========== FIELD SUMMARY =========== -->
<li>
<section class="field-summary" id="field-summary">
<h2>Field Summary</h2>
<div class="caption"><span>Fields</span></div>
<div class="summary-table three-column-summary">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Field</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color"><code>private final <a href="DisplayWinnerEvent.html" title="class in fr.lnl.game.client.listener">DisplayWinnerEvent</a></code></div>
<div class="col-second even-row-color"><code><a href="#displayWinnerEvent" class="member-name-link">displayWinnerEvent</a></code></div>
<div class="col-last even-row-color">&nbsp;</div>
<div class="col-first odd-row-color"><code>private final fr.lnl.game.server.games.Game</code></div>
<div class="col-second odd-row-color"><code><a href="#game" class="member-name-link">game</a></code></div>
<div class="col-last odd-row-color">&nbsp;</div>
</div>
<div class="inherited-list">
<h3 id="fields-inherited-from-class-fr.lnl.game.server.listener.AbstractModelListening">Fields inherited from class&nbsp;fr.lnl.game.server.listener.AbstractModelListening</h3>
<code>listeners</code></div>
</section>
</li>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<li>
<section class="constructor-summary" id="constructor-summary">
<h2>Constructor Summary</h2>
<div class="caption"><span>Constructors</span></div>
<div class="summary-table two-column-summary">
<div class="table-header col-first">Constructor</div>
<div class="table-header col-last">Description</div>
<div class="col-constructor-name even-row-color"><code><a href="#%3Cinit%3E(fr.lnl.game.server.games.Game)" class="member-name-link">NextPlayerButtonListener</a><wbr>(fr.lnl.game.server.games.Game&nbsp;game)</code></div>
<div class="col-last even-row-color">&nbsp;</div>
</div>
</section>
</li>
<!-- ========== METHOD SUMMARY =========== -->
<li>
<section class="method-summary" id="method-summary">
<h2>Method Summary</h2>
<div id="method-summary-table">
<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab2" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" class="table-tab">Instance Methods</button><button id="method-summary-table-tab4" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab4', 3)" class="table-tab">Concrete Methods</button></div>
<div id="method-summary-table.tabpanel" role="tabpanel">
<div class="summary-table three-column-summary" aria-labelledby="method-summary-table-tab0">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Method</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#updateModel(java.lang.Object)" class="member-name-link">updateModel</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a>&nbsp;event)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Call when clicking on "SUIVANT" button if current player is a computer player or after the human player selected
action it want to play</div>
</div>
</div>
</div>
</div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-fr.lnl.game.server.listener.AbstractModelListening">Methods inherited from class&nbsp;fr.lnl.game.server.listener.AbstractModelListening</h3>
<code>addListener, fireChange, removalListener</code></div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-java.lang.Object">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></h3>
<code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#clone()" title="class or interface in java.lang" class="external-link">clone</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang" class="external-link">equals</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#finalize()" title="class or interface in java.lang" class="external-link">finalize</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#getClass()" title="class or interface in java.lang" class="external-link">getClass</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#hashCode()" title="class or interface in java.lang" class="external-link">hashCode</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#notify()" title="class or interface in java.lang" class="external-link">notify</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#notifyAll()" title="class or interface in java.lang" class="external-link">notifyAll</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#toString()" title="class or interface in java.lang" class="external-link">toString</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#wait()" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#wait(long)" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#wait(long,int)" title="class or interface in java.lang" class="external-link">wait</a></code></div>
</section>
</li>
</ul>
</section>
<section class="details">
<ul class="details-list">
<!-- ============ FIELD DETAIL =========== -->
<li>
<section class="field-details" id="field-detail">
<h2>Field Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="game">
<h3>game</h3>
<div class="member-signature"><span class="modifiers">private final</span>&nbsp;<span class="return-type">fr.lnl.game.server.games.Game</span>&nbsp;<span class="element-name">game</span></div>
</section>
</li>
<li>
<section class="detail" id="displayWinnerEvent">
<h3>displayWinnerEvent</h3>
<div class="member-signature"><span class="modifiers">private final</span>&nbsp;<span class="return-type"><a href="DisplayWinnerEvent.html" title="class in fr.lnl.game.client.listener">DisplayWinnerEvent</a></span>&nbsp;<span class="element-name">displayWinnerEvent</span></div>
</section>
</li>
</ul>
</section>
</li>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<li>
<section class="constructor-details" id="constructor-detail">
<h2>Constructor Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="&lt;init&gt;(fr.lnl.game.server.games.Game)">
<h3>NextPlayerButtonListener</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">NextPlayerButtonListener</span><wbr><span class="parameters">(fr.lnl.game.server.games.Game&nbsp;game)</span></div>
</section>
</li>
</ul>
</section>
</li>
<!-- ============ METHOD DETAIL ========== -->
<li>
<section class="method-details" id="method-detail">
<h2>Method Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="updateModel(java.lang.Object)">
<h3>updateModel</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">updateModel</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a>&nbsp;event)</span></div>
<div class="block">Call when clicking on "SUIVANT" button if current player is a computer player or after the human player selected
action it want to play</div>
</section>
</li>
</ul>
</section>
</li>
</ul>
</section>
<!-- ========= END OF CLASS DATA ========= -->
</main>
</div>
</div>
</body>
</html>

View File

@ -0,0 +1,229 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
<title>SelectActionButton (client API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="description" content="declaration: module: client, package: fr.lnl.game.client.listener, class: SelectActionButton">
<meta name="generator" content="javadoc/ClassWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../../script-dir/jquery-ui.min.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../../jquery-ui.overrides.css" title="Style">
<script type="text/javascript" src="../../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../../script-dir/jquery-3.5.1.min.js"></script>
<script type="text/javascript" src="../../../../../../script-dir/jquery-ui.min.js"></script>
</head>
<body class="class-declaration-page">
<script type="text/javascript">var evenRowColor = "even-row-color";
var oddRowColor = "odd-row-color";
var tableTab = "table-tab";
var activeTableTab = "active-table-tab";
var pathtoroot = "../../../../../../";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flex-box">
<header role="banner" class="flex-header">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="top-nav" id="navbar-top">
<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div>
<ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
<li><a href="../../../../../module-summary.html">Module</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="nav-bar-cell1-rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../../help-doc.html#class">Help</a></li>
</ul>
</div>
<div class="sub-nav">
<div>
<ul class="sub-nav-list">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field-summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor-summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method-summary">Method</a></li>
</ul>
<ul class="sub-nav-list">
<li>Detail:&nbsp;</li>
<li><a href="#field-detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor-detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method-detail">Method</a></li>
</ul>
</div>
<div class="nav-list-search"><label for="search-input">SEARCH:</label>
<input type="text" id="search-input" value="search" disabled="disabled">
<input type="reset" id="reset-button" value="reset" disabled="disabled">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip-navbar-top"></span></nav>
</header>
<div class="flex-content">
<main role="main">
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="sub-title"><span class="module-label-in-type">Module</span>&nbsp;<a href="../../../../../module-summary.html">client</a></div>
<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">fr.lnl.game.client.listener</a></div>
<h1 title="Class SelectActionButton" class="title">Class SelectActionButton</h1>
</div>
<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">java.lang.Object</a>
<div class="inheritance">fr.lnl.game.server.listener.AbstractModelListening
<div class="inheritance">fr.lnl.game.client.listener.SelectActionButton</div>
</div>
</div>
<section class="class-description" id="class-description">
<dl class="notes">
<dt>All Implemented Interfaces:</dt>
<dd><code>fr.lnl.game.server.listener.ModelListener</code></dd>
</dl>
<hr>
<div class="type-signature"><span class="modifiers">public class </span><span class="element-name type-name-label">SelectActionButton</span>
<span class="extends-implements">extends fr.lnl.game.server.listener.AbstractModelListening</span></div>
<div class="block">Used when the human player select type of action it want to play</div>
</section>
<section class="summary">
<ul class="summary-list">
<!-- =========== FIELD SUMMARY =========== -->
<li>
<section class="field-summary" id="field-summary">
<h2>Field Summary</h2>
<div class="caption"><span>Fields</span></div>
<div class="summary-table three-column-summary">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Field</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color"><code>private final fr.lnl.game.server.games.Game</code></div>
<div class="col-second even-row-color"><code><a href="#game" class="member-name-link">game</a></code></div>
<div class="col-last even-row-color">&nbsp;</div>
<div class="col-first odd-row-color"><code>private final fr.lnl.game.server.games.action.ReunionSameAction</code></div>
<div class="col-second odd-row-color"><code><a href="#reunionSameAction" class="member-name-link">reunionSameAction</a></code></div>
<div class="col-last odd-row-color">&nbsp;</div>
<div class="col-first even-row-color"><code>private final <a href="../view/Window.html" title="class in fr.lnl.game.client.view">Window</a></code></div>
<div class="col-second even-row-color"><code><a href="#window" class="member-name-link">window</a></code></div>
<div class="col-last even-row-color">&nbsp;</div>
</div>
<div class="inherited-list">
<h3 id="fields-inherited-from-class-fr.lnl.game.server.listener.AbstractModelListening">Fields inherited from class&nbsp;fr.lnl.game.server.listener.AbstractModelListening</h3>
<code>listeners</code></div>
</section>
</li>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<li>
<section class="constructor-summary" id="constructor-summary">
<h2>Constructor Summary</h2>
<div class="caption"><span>Constructors</span></div>
<div class="summary-table two-column-summary">
<div class="table-header col-first">Constructor</div>
<div class="table-header col-last">Description</div>
<div class="col-constructor-name even-row-color"><code><a href="#%3Cinit%3E(fr.lnl.game.server.games.Game,fr.lnl.game.client.view.Window,fr.lnl.game.server.games.action.ReunionSameAction)" class="member-name-link">SelectActionButton</a><wbr>(fr.lnl.game.server.games.Game&nbsp;game,
<a href="../view/Window.html" title="class in fr.lnl.game.client.view">Window</a>&nbsp;window,
fr.lnl.game.server.games.action.ReunionSameAction&nbsp;reunionSameAction)</code></div>
<div class="col-last even-row-color">&nbsp;</div>
</div>
</section>
</li>
<!-- ========== METHOD SUMMARY =========== -->
<li>
<section class="method-summary" id="method-summary">
<h2>Method Summary</h2>
<div id="method-summary-table">
<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab2" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" class="table-tab">Instance Methods</button><button id="method-summary-table-tab4" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab4', 3)" class="table-tab">Concrete Methods</button></div>
<div id="method-summary-table.tabpanel" role="tabpanel">
<div class="summary-table three-column-summary" aria-labelledby="method-summary-table-tab0">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Method</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#updateModel(java.lang.Object)" class="member-name-link">updateModel</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a>&nbsp;obj)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">This method is call when the player select the type of action it want to play</div>
</div>
</div>
</div>
</div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-fr.lnl.game.server.listener.AbstractModelListening">Methods inherited from class&nbsp;fr.lnl.game.server.listener.AbstractModelListening</h3>
<code>addListener, fireChange, removalListener</code></div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-java.lang.Object">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></h3>
<code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#clone()" title="class or interface in java.lang" class="external-link">clone</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang" class="external-link">equals</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#finalize()" title="class or interface in java.lang" class="external-link">finalize</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#getClass()" title="class or interface in java.lang" class="external-link">getClass</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#hashCode()" title="class or interface in java.lang" class="external-link">hashCode</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#notify()" title="class or interface in java.lang" class="external-link">notify</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#notifyAll()" title="class or interface in java.lang" class="external-link">notifyAll</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#toString()" title="class or interface in java.lang" class="external-link">toString</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#wait()" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#wait(long)" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#wait(long,int)" title="class or interface in java.lang" class="external-link">wait</a></code></div>
</section>
</li>
</ul>
</section>
<section class="details">
<ul class="details-list">
<!-- ============ FIELD DETAIL =========== -->
<li>
<section class="field-details" id="field-detail">
<h2>Field Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="window">
<h3>window</h3>
<div class="member-signature"><span class="modifiers">private final</span>&nbsp;<span class="return-type"><a href="../view/Window.html" title="class in fr.lnl.game.client.view">Window</a></span>&nbsp;<span class="element-name">window</span></div>
</section>
</li>
<li>
<section class="detail" id="reunionSameAction">
<h3>reunionSameAction</h3>
<div class="member-signature"><span class="modifiers">private final</span>&nbsp;<span class="return-type">fr.lnl.game.server.games.action.ReunionSameAction</span>&nbsp;<span class="element-name">reunionSameAction</span></div>
</section>
</li>
<li>
<section class="detail" id="game">
<h3>game</h3>
<div class="member-signature"><span class="modifiers">private final</span>&nbsp;<span class="return-type">fr.lnl.game.server.games.Game</span>&nbsp;<span class="element-name">game</span></div>
</section>
</li>
</ul>
</section>
</li>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<li>
<section class="constructor-details" id="constructor-detail">
<h2>Constructor Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="&lt;init&gt;(fr.lnl.game.server.games.Game,fr.lnl.game.client.view.Window,fr.lnl.game.server.games.action.ReunionSameAction)">
<h3>SelectActionButton</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">SelectActionButton</span><wbr><span class="parameters">(fr.lnl.game.server.games.Game&nbsp;game,
<a href="../view/Window.html" title="class in fr.lnl.game.client.view">Window</a>&nbsp;window,
fr.lnl.game.server.games.action.ReunionSameAction&nbsp;reunionSameAction)</span></div>
</section>
</li>
</ul>
</section>
</li>
<!-- ============ METHOD DETAIL ========== -->
<li>
<section class="method-details" id="method-detail">
<h2>Method Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="updateModel(java.lang.Object)">
<h3>updateModel</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">updateModel</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a>&nbsp;obj)</span></div>
<div class="block">This method is call when the player select the type of action it want to play</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>obj</code> - contain information about the event like the button where the player clicked</dd>
</dl>
</section>
</li>
</ul>
</section>
</li>
</ul>
</section>
<!-- ========= END OF CLASS DATA ========= -->
</main>
</div>
</div>
</body>
</html>

View File

@ -0,0 +1,229 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
<title>SelectDirectionListener (client API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="description" content="declaration: module: client, package: fr.lnl.game.client.listener, class: SelectDirectionListener">
<meta name="generator" content="javadoc/ClassWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../../script-dir/jquery-ui.min.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../../jquery-ui.overrides.css" title="Style">
<script type="text/javascript" src="../../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../../script-dir/jquery-3.5.1.min.js"></script>
<script type="text/javascript" src="../../../../../../script-dir/jquery-ui.min.js"></script>
</head>
<body class="class-declaration-page">
<script type="text/javascript">var evenRowColor = "even-row-color";
var oddRowColor = "odd-row-color";
var tableTab = "table-tab";
var activeTableTab = "active-table-tab";
var pathtoroot = "../../../../../../";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flex-box">
<header role="banner" class="flex-header">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="top-nav" id="navbar-top">
<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div>
<ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
<li><a href="../../../../../module-summary.html">Module</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="nav-bar-cell1-rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../../help-doc.html#class">Help</a></li>
</ul>
</div>
<div class="sub-nav">
<div>
<ul class="sub-nav-list">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field-summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor-summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method-summary">Method</a></li>
</ul>
<ul class="sub-nav-list">
<li>Detail:&nbsp;</li>
<li><a href="#field-detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor-detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method-detail">Method</a></li>
</ul>
</div>
<div class="nav-list-search"><label for="search-input">SEARCH:</label>
<input type="text" id="search-input" value="search" disabled="disabled">
<input type="reset" id="reset-button" value="reset" disabled="disabled">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip-navbar-top"></span></nav>
</header>
<div class="flex-content">
<main role="main">
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="sub-title"><span class="module-label-in-type">Module</span>&nbsp;<a href="../../../../../module-summary.html">client</a></div>
<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">fr.lnl.game.client.listener</a></div>
<h1 title="Class SelectDirectionListener" class="title">Class SelectDirectionListener</h1>
</div>
<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">java.lang.Object</a>
<div class="inheritance">fr.lnl.game.server.listener.AbstractModelListening
<div class="inheritance">fr.lnl.game.client.listener.SelectDirectionListener</div>
</div>
</div>
<section class="class-description" id="class-description">
<dl class="notes">
<dt>All Implemented Interfaces:</dt>
<dd><code>fr.lnl.game.server.listener.ModelListener</code></dd>
</dl>
<hr>
<div class="type-signature"><span class="modifiers">public class </span><span class="element-name type-name-label">SelectDirectionListener</span>
<span class="extends-implements">extends fr.lnl.game.server.listener.AbstractModelListening</span></div>
<div class="block">Call when the player selected the direction where it wants to play it</div>
</section>
<section class="summary">
<ul class="summary-list">
<!-- =========== FIELD SUMMARY =========== -->
<li>
<section class="field-summary" id="field-summary">
<h2>Field Summary</h2>
<div class="caption"><span>Fields</span></div>
<div class="summary-table three-column-summary">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Field</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color"><code>private final fr.lnl.game.server.games.action.Action</code></div>
<div class="col-second even-row-color"><code><a href="#action" class="member-name-link">action</a></code></div>
<div class="col-last even-row-color">&nbsp;</div>
<div class="col-first odd-row-color"><code>private final fr.lnl.game.server.games.Game</code></div>
<div class="col-second odd-row-color"><code><a href="#game" class="member-name-link">game</a></code></div>
<div class="col-last odd-row-color">&nbsp;</div>
<div class="col-first even-row-color"><code>private final <a href="../view/Window.html" title="class in fr.lnl.game.client.view">Window</a></code></div>
<div class="col-second even-row-color"><code><a href="#window" class="member-name-link">window</a></code></div>
<div class="col-last even-row-color">&nbsp;</div>
</div>
<div class="inherited-list">
<h3 id="fields-inherited-from-class-fr.lnl.game.server.listener.AbstractModelListening">Fields inherited from class&nbsp;fr.lnl.game.server.listener.AbstractModelListening</h3>
<code>listeners</code></div>
</section>
</li>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<li>
<section class="constructor-summary" id="constructor-summary">
<h2>Constructor Summary</h2>
<div class="caption"><span>Constructors</span></div>
<div class="summary-table two-column-summary">
<div class="table-header col-first">Constructor</div>
<div class="table-header col-last">Description</div>
<div class="col-constructor-name even-row-color"><code><a href="#%3Cinit%3E(fr.lnl.game.server.games.Game,fr.lnl.game.client.view.Window,fr.lnl.game.server.games.action.Action)" class="member-name-link">SelectDirectionListener</a><wbr>(fr.lnl.game.server.games.Game&nbsp;game,
<a href="../view/Window.html" title="class in fr.lnl.game.client.view">Window</a>&nbsp;window,
fr.lnl.game.server.games.action.Action&nbsp;action)</code></div>
<div class="col-last even-row-color">&nbsp;</div>
</div>
</section>
</li>
<!-- ========== METHOD SUMMARY =========== -->
<li>
<section class="method-summary" id="method-summary">
<h2>Method Summary</h2>
<div id="method-summary-table">
<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab2" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" class="table-tab">Instance Methods</button><button id="method-summary-table-tab4" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab4', 3)" class="table-tab">Concrete Methods</button></div>
<div id="method-summary-table.tabpanel" role="tabpanel">
<div class="summary-table three-column-summary" aria-labelledby="method-summary-table-tab0">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Method</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#updateModel(java.lang.Object)" class="member-name-link">updateModel</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a>&nbsp;obj)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">This method is call when the player click on the button to select the direction of the previously selected action</div>
</div>
</div>
</div>
</div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-fr.lnl.game.server.listener.AbstractModelListening">Methods inherited from class&nbsp;fr.lnl.game.server.listener.AbstractModelListening</h3>
<code>addListener, fireChange, removalListener</code></div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-java.lang.Object">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></h3>
<code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#clone()" title="class or interface in java.lang" class="external-link">clone</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang" class="external-link">equals</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#finalize()" title="class or interface in java.lang" class="external-link">finalize</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#getClass()" title="class or interface in java.lang" class="external-link">getClass</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#hashCode()" title="class or interface in java.lang" class="external-link">hashCode</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#notify()" title="class or interface in java.lang" class="external-link">notify</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#notifyAll()" title="class or interface in java.lang" class="external-link">notifyAll</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#toString()" title="class or interface in java.lang" class="external-link">toString</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#wait()" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#wait(long)" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#wait(long,int)" title="class or interface in java.lang" class="external-link">wait</a></code></div>
</section>
</li>
</ul>
</section>
<section class="details">
<ul class="details-list">
<!-- ============ FIELD DETAIL =========== -->
<li>
<section class="field-details" id="field-detail">
<h2>Field Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="game">
<h3>game</h3>
<div class="member-signature"><span class="modifiers">private final</span>&nbsp;<span class="return-type">fr.lnl.game.server.games.Game</span>&nbsp;<span class="element-name">game</span></div>
</section>
</li>
<li>
<section class="detail" id="action">
<h3>action</h3>
<div class="member-signature"><span class="modifiers">private final</span>&nbsp;<span class="return-type">fr.lnl.game.server.games.action.Action</span>&nbsp;<span class="element-name">action</span></div>
</section>
</li>
<li>
<section class="detail" id="window">
<h3>window</h3>
<div class="member-signature"><span class="modifiers">private final</span>&nbsp;<span class="return-type"><a href="../view/Window.html" title="class in fr.lnl.game.client.view">Window</a></span>&nbsp;<span class="element-name">window</span></div>
</section>
</li>
</ul>
</section>
</li>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<li>
<section class="constructor-details" id="constructor-detail">
<h2>Constructor Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="&lt;init&gt;(fr.lnl.game.server.games.Game,fr.lnl.game.client.view.Window,fr.lnl.game.server.games.action.Action)">
<h3>SelectDirectionListener</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">SelectDirectionListener</span><wbr><span class="parameters">(fr.lnl.game.server.games.Game&nbsp;game,
<a href="../view/Window.html" title="class in fr.lnl.game.client.view">Window</a>&nbsp;window,
fr.lnl.game.server.games.action.Action&nbsp;action)</span></div>
</section>
</li>
</ul>
</section>
</li>
<!-- ============ METHOD DETAIL ========== -->
<li>
<section class="method-details" id="method-detail">
<h2>Method Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="updateModel(java.lang.Object)">
<h3>updateModel</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">updateModel</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a>&nbsp;obj)</span></div>
<div class="block">This method is call when the player click on the button to select the direction of the previously selected action</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>obj</code> - contain information about the event like the button where the player clicked</dd>
</dl>
</section>
</li>
</ul>
</section>
</li>
</ul>
</section>
<!-- ========= END OF CLASS DATA ========= -->
</main>
</div>
</div>
</body>
</html>

View File

@ -0,0 +1,127 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
<title>fr.lnl.game.client.listener (client API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="description" content="declaration: module: client, package: fr.lnl.game.client.listener">
<meta name="generator" content="javadoc/PackageWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../../script-dir/jquery-ui.min.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../../jquery-ui.overrides.css" title="Style">
<script type="text/javascript" src="../../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../../script-dir/jquery-3.5.1.min.js"></script>
<script type="text/javascript" src="../../../../../../script-dir/jquery-ui.min.js"></script>
</head>
<body class="package-declaration-page">
<script type="text/javascript">var evenRowColor = "even-row-color";
var oddRowColor = "odd-row-color";
var tableTab = "table-tab";
var activeTableTab = "active-table-tab";
var pathtoroot = "../../../../../../";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flex-box">
<header role="banner" class="flex-header">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="top-nav" id="navbar-top">
<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div>
<ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
<li><a href="../../../../../module-summary.html">Module</a></li>
<li class="nav-bar-cell1-rev">Package</li>
<li>Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../../help-doc.html#package">Help</a></li>
</ul>
</div>
<div class="sub-nav">
<div>
<ul class="sub-nav-list">
<li>Package:&nbsp;</li>
<li><a href="#package-description">Description</a>&nbsp;|&nbsp;</li>
<li><a href="#related-package-summary">Related Packages</a>&nbsp;|&nbsp;</li>
<li><a href="#class-summary">Classes and Interfaces</a></li>
</ul>
</div>
<div class="nav-list-search"><label for="search-input">SEARCH:</label>
<input type="text" id="search-input" value="search" disabled="disabled">
<input type="reset" id="reset-button" value="reset" disabled="disabled">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip-navbar-top"></span></nav>
</header>
<div class="flex-content">
<main role="main">
<div class="header">
<div class="sub-title"><span class="module-label-in-package">Module</span>&nbsp;<a href="../../../../../module-summary.html">client</a></div>
<h1 title="Package fr.lnl.game.client.listener" class="title">Package fr.lnl.game.client.listener</h1>
</div>
<hr>
<div class="package-signature">package <span class="element-name">fr.lnl.game.client.listener</span></div>
<section class="package-description" id="package-description">
<div class="block">Package that contains every view listeners</div>
</section>
<section class="summary">
<ul class="summary-list">
<li>
<div id="related-package-summary">
<div class="caption"><span>Related Packages</span></div>
<div class="summary-table two-column-summary">
<div class="table-header col-first">Package</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color"><a href="../package-summary.html">fr.lnl.game.client</a></div>
<div class="col-last even-row-color">
<div class="block">Client package</div>
</div>
<div class="col-first odd-row-color"><a href="../view/package-summary.html">fr.lnl.game.client.view</a></div>
<div class="col-last odd-row-color">
<div class="block">View package, contains all classes about user view</div>
</div>
</div>
</div>
</li>
<li>
<div id="class-summary">
<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="class-summary-tab0" role="tab" aria-selected="true" aria-controls="class-summary.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('class-summary', 'class-summary', 2)" class="active-table-tab">All Classes and Interfaces</button><button id="class-summary-tab2" role="tab" aria-selected="false" aria-controls="class-summary.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('class-summary', 'class-summary-tab2', 2)" class="table-tab">Classes</button><button id="class-summary-tab4" role="tab" aria-selected="false" aria-controls="class-summary.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('class-summary', 'class-summary-tab4', 2)" class="table-tab">Record Classes</button></div>
<div id="class-summary.tabpanel" role="tabpanel">
<div class="summary-table two-column-summary" aria-labelledby="class-summary-tab0">
<div class="table-header col-first">Class</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color class-summary class-summary-tab4"><a href="ClientEventHandler.html" title="class in fr.lnl.game.client.listener">ClientEventHandler</a></div>
<div class="col-last even-row-color class-summary class-summary-tab4">
<div class="block">implementation of a listener from JavaFX <code>EventHandler</code></div>
</div>
<div class="col-first odd-row-color class-summary class-summary-tab2"><a href="DisplayWinnerEvent.html" title="class in fr.lnl.game.client.listener">DisplayWinnerEvent</a></div>
<div class="col-last odd-row-color class-summary class-summary-tab2">
<div class="block">Used to display the winner of the game</div>
</div>
<div class="col-first even-row-color class-summary class-summary-tab2"><a href="NextPlayerButtonListener.html" title="class in fr.lnl.game.client.listener">NextPlayerButtonListener</a></div>
<div class="col-last even-row-color class-summary class-summary-tab2">
<div class="block">This method is call when the current player have selected an action to play (or if it's a computer player, will
select it), then we call <code>Game.play()</code> and we update the view</div>
</div>
<div class="col-first odd-row-color class-summary class-summary-tab2"><a href="SelectActionButton.html" title="class in fr.lnl.game.client.listener">SelectActionButton</a></div>
<div class="col-last odd-row-color class-summary class-summary-tab2">
<div class="block">Used when the human player select type of action it want to play</div>
</div>
<div class="col-first even-row-color class-summary class-summary-tab2"><a href="SelectDirectionListener.html" title="class in fr.lnl.game.client.listener">SelectDirectionListener</a></div>
<div class="col-last even-row-color class-summary class-summary-tab2">
<div class="block">Call when the player selected the direction where it wants to play it</div>
</div>
</div>
</div>
</div>
</li>
</ul>
</section>
</main>
</div>
</div>
</body>
</html>

View File

@ -0,0 +1,82 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
<title>fr.lnl.game.client.listener Class Hierarchy (client API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="description" content="tree: module: client, package: fr.lnl.game.client.listener">
<meta name="generator" content="javadoc/PackageTreeWriter">
<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../../script-dir/jquery-ui.min.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../../jquery-ui.overrides.css" title="Style">
<script type="text/javascript" src="../../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../../script-dir/jquery-3.5.1.min.js"></script>
<script type="text/javascript" src="../../../../../../script-dir/jquery-ui.min.js"></script>
</head>
<body class="package-tree-page">
<script type="text/javascript">var pathtoroot = "../../../../../../";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flex-box">
<header role="banner" class="flex-header">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="top-nav" id="navbar-top">
<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div>
<ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
<li><a href="../../../../../module-summary.html">Module</a></li>
<li><a href="package-summary.html">Package</a></li>
<li>Class</li>
<li class="nav-bar-cell1-rev">Tree</li>
<li><a href="../../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../../help-doc.html#tree">Help</a></li>
</ul>
</div>
<div class="sub-nav">
<div class="nav-list-search"><label for="search-input">SEARCH:</label>
<input type="text" id="search-input" value="search" disabled="disabled">
<input type="reset" id="reset-button" value="reset" disabled="disabled">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip-navbar-top"></span></nav>
</header>
<div class="flex-content">
<main role="main">
<div class="header">
<h1 class="title">Hierarchy For Package fr.lnl.game.client.listener</h1>
<span class="package-hierarchy-label">Package Hierarchies:</span>
<ul class="horizontal">
<li><a href="../../../../../../overview-tree.html">All Packages</a></li>
</ul>
</div>
<section class="hierarchy">
<h2 title="Class Hierarchy">Class Hierarchy</h2>
<ul>
<li class="circle">java.lang.<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" class="type-name-link external-link" title="class or interface in java.lang">Object</a>
<ul>
<li class="circle">fr.lnl.game.server.listener.AbstractModelListening (implements fr.lnl.game.server.listener.ModelListener)
<ul>
<li class="circle">fr.lnl.game.client.listener.<a href="DisplayWinnerEvent.html" class="type-name-link" title="class in fr.lnl.game.client.listener">DisplayWinnerEvent</a></li>
<li class="circle">fr.lnl.game.client.listener.<a href="NextPlayerButtonListener.html" class="type-name-link" title="class in fr.lnl.game.client.listener">NextPlayerButtonListener</a></li>
<li class="circle">fr.lnl.game.client.listener.<a href="SelectActionButton.html" class="type-name-link" title="class in fr.lnl.game.client.listener">SelectActionButton</a></li>
<li class="circle">fr.lnl.game.client.listener.<a href="SelectDirectionListener.html" class="type-name-link" title="class in fr.lnl.game.client.listener">SelectDirectionListener</a></li>
</ul>
</li>
<li class="circle">java.lang.<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Record.html" class="type-name-link external-link" title="class or interface in java.lang">Record</a>
<ul>
<li class="circle">fr.lnl.game.client.listener.<a href="ClientEventHandler.html" class="type-name-link" title="class in fr.lnl.game.client.listener">ClientEventHandler</a> (implements javafx.event.EventHandler&lt;T&gt;)</li>
</ul>
</li>
</ul>
</li>
</ul>
</section>
</main>
</div>
</div>
</body>
</html>

View File

@ -0,0 +1,118 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
<title>fr.lnl.game.client (client API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="description" content="declaration: module: client, package: fr.lnl.game.client">
<meta name="generator" content="javadoc/PackageWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../script-dir/jquery-ui.min.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../jquery-ui.overrides.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../script-dir/jquery-3.5.1.min.js"></script>
<script type="text/javascript" src="../../../../../script-dir/jquery-ui.min.js"></script>
</head>
<body class="package-declaration-page">
<script type="text/javascript">var evenRowColor = "even-row-color";
var oddRowColor = "odd-row-color";
var tableTab = "table-tab";
var activeTableTab = "active-table-tab";
var pathtoroot = "../../../../../";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flex-box">
<header role="banner" class="flex-header">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="top-nav" id="navbar-top">
<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div>
<ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
<li><a href="../../../../module-summary.html">Module</a></li>
<li class="nav-bar-cell1-rev">Package</li>
<li>Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html#package">Help</a></li>
</ul>
</div>
<div class="sub-nav">
<div>
<ul class="sub-nav-list">
<li>Package:&nbsp;</li>
<li><a href="#package-description">Description</a>&nbsp;|&nbsp;</li>
<li><a href="#related-package-summary">Related Packages</a>&nbsp;|&nbsp;</li>
<li><a href="#class-summary">Classes and Interfaces</a></li>
</ul>
</div>
<div class="nav-list-search"><label for="search-input">SEARCH:</label>
<input type="text" id="search-input" value="search" disabled="disabled">
<input type="reset" id="reset-button" value="reset" disabled="disabled">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip-navbar-top"></span></nav>
</header>
<div class="flex-content">
<main role="main">
<div class="header">
<div class="sub-title"><span class="module-label-in-package">Module</span>&nbsp;<a href="../../../../module-summary.html">client</a></div>
<h1 title="Package fr.lnl.game.client" class="title">Package fr.lnl.game.client</h1>
</div>
<hr>
<div class="package-signature">package <span class="element-name">fr.lnl.game.client</span></div>
<section class="package-description" id="package-description">
<div class="block">Client package</div>
</section>
<section class="summary">
<ul class="summary-list">
<li>
<div id="related-package-summary">
<div class="caption"><span>Related Packages</span></div>
<div class="summary-table two-column-summary">
<div class="table-header col-first">Package</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color"><a href="listener/package-summary.html">fr.lnl.game.client.listener</a></div>
<div class="col-last even-row-color">
<div class="block">Package that contains every view listeners</div>
</div>
<div class="col-first odd-row-color"><a href="view/package-summary.html">fr.lnl.game.client.view</a></div>
<div class="col-last odd-row-color">
<div class="block">View package, contains all classes about user view</div>
</div>
</div>
</div>
</li>
<li>
<div id="class-summary">
<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="class-summary-tab0" role="tab" aria-selected="true" aria-controls="class-summary.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('class-summary', 'class-summary', 2)" class="active-table-tab">All Classes and Interfaces</button><button id="class-summary-tab1" role="tab" aria-selected="false" aria-controls="class-summary.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('class-summary', 'class-summary-tab1', 2)" class="table-tab">Interfaces</button><button id="class-summary-tab2" role="tab" aria-selected="false" aria-controls="class-summary.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('class-summary', 'class-summary-tab2', 2)" class="table-tab">Classes</button><button id="class-summary-tab4" role="tab" aria-selected="false" aria-controls="class-summary.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('class-summary', 'class-summary-tab4', 2)" class="table-tab">Record Classes</button></div>
<div id="class-summary.tabpanel" role="tabpanel">
<div class="summary-table two-column-summary" aria-labelledby="class-summary-tab0">
<div class="table-header col-first">Class</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color class-summary class-summary-tab2"><a href="App.html" title="class in fr.lnl.game.client">App</a></div>
<div class="col-last even-row-color class-summary class-summary-tab2">
<div class="block">Application starting point</div>
</div>
<div class="col-first odd-row-color class-summary class-summary-tab4"><a href="ClientPlayer.html" title="class in fr.lnl.game.client">ClientPlayer</a></div>
<div class="col-last odd-row-color class-summary class-summary-tab4">
<div class="block">Store a view per player</div>
</div>
<div class="col-first even-row-color class-summary class-summary-tab1"><a href="ViewLambda.html" title="interface in fr.lnl.game.client">ViewLambda</a></div>
<div class="col-last even-row-color class-summary class-summary-tab1">
<div class="block">Used as Lambda expression to instantiate a <a href="view/View.html" title="interface in fr.lnl.game.client.view"><code>View</code></a> per <code>Player</code> stored in <a href="ClientPlayer.html" title="class in fr.lnl.game.client"><code>ClientPlayer</code></a></div>
</div>
</div>
</div>
</div>
</li>
</ul>
</section>
</main>
</div>
</div>
</body>
</html>

View File

@ -0,0 +1,85 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
<title>fr.lnl.game.client Class Hierarchy (client API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="description" content="tree: module: client, package: fr.lnl.game.client">
<meta name="generator" content="javadoc/PackageTreeWriter">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../script-dir/jquery-ui.min.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../jquery-ui.overrides.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../script-dir/jquery-3.5.1.min.js"></script>
<script type="text/javascript" src="../../../../../script-dir/jquery-ui.min.js"></script>
</head>
<body class="package-tree-page">
<script type="text/javascript">var pathtoroot = "../../../../../";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flex-box">
<header role="banner" class="flex-header">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="top-nav" id="navbar-top">
<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div>
<ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
<li><a href="../../../../module-summary.html">Module</a></li>
<li><a href="package-summary.html">Package</a></li>
<li>Class</li>
<li class="nav-bar-cell1-rev">Tree</li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html#tree">Help</a></li>
</ul>
</div>
<div class="sub-nav">
<div class="nav-list-search"><label for="search-input">SEARCH:</label>
<input type="text" id="search-input" value="search" disabled="disabled">
<input type="reset" id="reset-button" value="reset" disabled="disabled">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip-navbar-top"></span></nav>
</header>
<div class="flex-content">
<main role="main">
<div class="header">
<h1 class="title">Hierarchy For Package fr.lnl.game.client</h1>
<span class="package-hierarchy-label">Package Hierarchies:</span>
<ul class="horizontal">
<li><a href="../../../../../overview-tree.html">All Packages</a></li>
</ul>
</div>
<section class="hierarchy">
<h2 title="Class Hierarchy">Class Hierarchy</h2>
<ul>
<li class="circle">java.lang.<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" class="type-name-link external-link" title="class or interface in java.lang">Object</a>
<ul>
<li class="circle">javafx.application.Application
<ul>
<li class="circle">fr.lnl.game.client.<a href="App.html" class="type-name-link" title="class in fr.lnl.game.client">App</a></li>
</ul>
</li>
<li class="circle">java.lang.<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Record.html" class="type-name-link external-link" title="class or interface in java.lang">Record</a>
<ul>
<li class="circle">fr.lnl.game.client.<a href="ClientPlayer.html" class="type-name-link" title="class in fr.lnl.game.client">ClientPlayer</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</section>
<section class="hierarchy">
<h2 title="Interface Hierarchy">Interface Hierarchy</h2>
<ul>
<li class="circle">fr.lnl.game.client.<a href="ViewLambda.html" class="type-name-link" title="interface in fr.lnl.game.client">ViewLambda</a></li>
</ul>
</section>
</main>
</div>
</div>
</body>
</html>

View File

@ -0,0 +1,180 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
<title>AbstractView (client API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="description" content="declaration: module: client, package: fr.lnl.game.client.view, class: AbstractView">
<meta name="generator" content="javadoc/ClassWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../../script-dir/jquery-ui.min.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../../jquery-ui.overrides.css" title="Style">
<script type="text/javascript" src="../../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../../script-dir/jquery-3.5.1.min.js"></script>
<script type="text/javascript" src="../../../../../../script-dir/jquery-ui.min.js"></script>
</head>
<body class="class-declaration-page">
<script type="text/javascript">var pathtoroot = "../../../../../../";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flex-box">
<header role="banner" class="flex-header">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="top-nav" id="navbar-top">
<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div>
<ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
<li><a href="../../../../../module-summary.html">Module</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="nav-bar-cell1-rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../../help-doc.html#class">Help</a></li>
</ul>
</div>
<div class="sub-nav">
<div>
<ul class="sub-nav-list">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field-summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor-summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method-summary">Method</a></li>
</ul>
<ul class="sub-nav-list">
<li>Detail:&nbsp;</li>
<li><a href="#field-detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor-detail">Constr</a>&nbsp;|&nbsp;</li>
<li>Method</li>
</ul>
</div>
<div class="nav-list-search"><label for="search-input">SEARCH:</label>
<input type="text" id="search-input" value="search" disabled="disabled">
<input type="reset" id="reset-button" value="reset" disabled="disabled">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip-navbar-top"></span></nav>
</header>
<div class="flex-content">
<main role="main">
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="sub-title"><span class="module-label-in-type">Module</span>&nbsp;<a href="../../../../../module-summary.html">client</a></div>
<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">fr.lnl.game.client.view</a></div>
<h1 title="Class AbstractView" class="title">Class AbstractView</h1>
</div>
<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">java.lang.Object</a>
<div class="inheritance">fr.lnl.game.client.view.AbstractView</div>
</div>
<section class="class-description" id="class-description">
<dl class="notes">
<dt>All Implemented Interfaces:</dt>
<dd><code><a href="View.html" title="interface in fr.lnl.game.client.view">View</a></code></dd>
</dl>
<dl class="notes">
<dt>Direct Known Subclasses:</dt>
<dd><code><a href="Terminal.html" title="class in fr.lnl.game.client.view">Terminal</a></code>, <code><a href="Window.html" title="class in fr.lnl.game.client.view">Window</a></code></dd>
</dl>
<hr>
<div class="type-signature"><span class="modifiers">public abstract class </span><span class="element-name type-name-label">AbstractView</span>
<span class="extends-implements">extends <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a>
implements <a href="View.html" title="interface in fr.lnl.game.client.view">View</a></span></div>
<div class="block">Abstract class implemented by every view classes</div>
</section>
<section class="summary">
<ul class="summary-list">
<!-- =========== FIELD SUMMARY =========== -->
<li>
<section class="field-summary" id="field-summary">
<h2>Field Summary</h2>
<div class="caption"><span>Fields</span></div>
<div class="summary-table three-column-summary">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Field</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color"><code>protected fr.lnl.game.server.games.Game</code></div>
<div class="col-second even-row-color"><code><a href="#game" class="member-name-link">game</a></code></div>
<div class="col-last even-row-color">&nbsp;</div>
<div class="col-first odd-row-color"><code>protected final fr.lnl.game.server.games.player.Player</code></div>
<div class="col-second odd-row-color"><code><a href="#player" class="member-name-link">player</a></code></div>
<div class="col-last odd-row-color">&nbsp;</div>
</div>
</section>
</li>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<li>
<section class="constructor-summary" id="constructor-summary">
<h2>Constructor Summary</h2>
<div class="caption"><span>Constructors</span></div>
<div class="summary-table two-column-summary">
<div class="table-header col-first">Constructor</div>
<div class="table-header col-last">Description</div>
<div class="col-constructor-name even-row-color"><code><a href="#%3Cinit%3E(fr.lnl.game.server.games.Game,fr.lnl.game.server.games.player.Player)" class="member-name-link">AbstractView</a><wbr>(fr.lnl.game.server.games.Game&nbsp;game,
fr.lnl.game.server.games.player.Player&nbsp;player)</code></div>
<div class="col-last even-row-color">&nbsp;</div>
</div>
</section>
</li>
<!-- ========== METHOD SUMMARY =========== -->
<li>
<section class="method-summary" id="method-summary">
<h2>Method Summary</h2>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-java.lang.Object">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></h3>
<code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#clone()" title="class or interface in java.lang" class="external-link">clone</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang" class="external-link">equals</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#finalize()" title="class or interface in java.lang" class="external-link">finalize</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#getClass()" title="class or interface in java.lang" class="external-link">getClass</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#hashCode()" title="class or interface in java.lang" class="external-link">hashCode</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#notify()" title="class or interface in java.lang" class="external-link">notify</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#notifyAll()" title="class or interface in java.lang" class="external-link">notifyAll</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#toString()" title="class or interface in java.lang" class="external-link">toString</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#wait()" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#wait(long)" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#wait(long,int)" title="class or interface in java.lang" class="external-link">wait</a></code></div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-fr.lnl.game.client.view.View">Methods inherited from interface&nbsp;fr.lnl.game.client.view.<a href="View.html" title="interface in fr.lnl.game.client.view">View</a></h3>
<code><a href="View.html#displayWinner(fr.lnl.game.server.games.player.Player)">displayWinner</a>, <a href="View.html#show()">show</a></code></div>
</section>
</li>
</ul>
</section>
<section class="details">
<ul class="details-list">
<!-- ============ FIELD DETAIL =========== -->
<li>
<section class="field-details" id="field-detail">
<h2>Field Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="player">
<h3>player</h3>
<div class="member-signature"><span class="modifiers">protected final</span>&nbsp;<span class="return-type">fr.lnl.game.server.games.player.Player</span>&nbsp;<span class="element-name">player</span></div>
</section>
</li>
<li>
<section class="detail" id="game">
<h3>game</h3>
<div class="member-signature"><span class="modifiers">protected</span>&nbsp;<span class="return-type">fr.lnl.game.server.games.Game</span>&nbsp;<span class="element-name">game</span></div>
</section>
</li>
</ul>
</section>
</li>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<li>
<section class="constructor-details" id="constructor-detail">
<h2>Constructor Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="&lt;init&gt;(fr.lnl.game.server.games.Game,fr.lnl.game.server.games.player.Player)">
<h3>AbstractView</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">AbstractView</span><wbr><span class="parameters">(fr.lnl.game.server.games.Game&nbsp;game,
fr.lnl.game.server.games.player.Player&nbsp;player)</span></div>
</section>
</li>
</ul>
</section>
</li>
</ul>
</section>
<!-- ========= END OF CLASS DATA ========= -->
</main>
</div>
</div>
</body>
</html>

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,271 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
<title>Terminal (client API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="description" content="declaration: module: client, package: fr.lnl.game.client.view, class: Terminal">
<meta name="generator" content="javadoc/ClassWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../../script-dir/jquery-ui.min.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../../jquery-ui.overrides.css" title="Style">
<script type="text/javascript" src="../../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../../script-dir/jquery-3.5.1.min.js"></script>
<script type="text/javascript" src="../../../../../../script-dir/jquery-ui.min.js"></script>
</head>
<body class="class-declaration-page">
<script type="text/javascript">var evenRowColor = "even-row-color";
var oddRowColor = "odd-row-color";
var tableTab = "table-tab";
var activeTableTab = "active-table-tab";
var pathtoroot = "../../../../../../";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flex-box">
<header role="banner" class="flex-header">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="top-nav" id="navbar-top">
<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div>
<ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
<li><a href="../../../../../module-summary.html">Module</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="nav-bar-cell1-rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../../help-doc.html#class">Help</a></li>
</ul>
</div>
<div class="sub-nav">
<div>
<ul class="sub-nav-list">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field-summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor-summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method-summary">Method</a></li>
</ul>
<ul class="sub-nav-list">
<li>Detail:&nbsp;</li>
<li><a href="#field-detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor-detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method-detail">Method</a></li>
</ul>
</div>
<div class="nav-list-search"><label for="search-input">SEARCH:</label>
<input type="text" id="search-input" value="search" disabled="disabled">
<input type="reset" id="reset-button" value="reset" disabled="disabled">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip-navbar-top"></span></nav>
</header>
<div class="flex-content">
<main role="main">
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="sub-title"><span class="module-label-in-type">Module</span>&nbsp;<a href="../../../../../module-summary.html">client</a></div>
<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">fr.lnl.game.client.view</a></div>
<h1 title="Class Terminal" class="title">Class Terminal</h1>
</div>
<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">java.lang.Object</a>
<div class="inheritance"><a href="AbstractView.html" title="class in fr.lnl.game.client.view">fr.lnl.game.client.view.AbstractView</a>
<div class="inheritance">fr.lnl.game.client.view.Terminal</div>
</div>
</div>
<section class="class-description" id="class-description">
<dl class="notes">
<dt>All Implemented Interfaces:</dt>
<dd><code><a href="View.html" title="interface in fr.lnl.game.client.view">View</a></code></dd>
</dl>
<hr>
<div class="type-signature"><span class="modifiers">public class </span><span class="element-name type-name-label">Terminal</span>
<span class="extends-implements">extends <a href="AbstractView.html" title="class in fr.lnl.game.client.view">AbstractView</a></span></div>
<div class="block">View terminal, use standard input and output</div>
</section>
<section class="summary">
<ul class="summary-list">
<!-- =========== FIELD SUMMARY =========== -->
<li>
<section class="field-summary" id="field-summary">
<h2>Field Summary</h2>
<div class="caption"><span>Fields</span></div>
<div class="summary-table three-column-summary">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Field</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color"><code>static <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Scanner.html" title="class or interface in java.util" class="external-link">Scanner</a></code></div>
<div class="col-second even-row-color"><code><a href="#scanner" class="member-name-link">scanner</a></code></div>
<div class="col-last even-row-color">
<div class="block">Standard input</div>
</div>
</div>
<div class="inherited-list">
<h3 id="fields-inherited-from-class-fr.lnl.game.client.view.AbstractView">Fields inherited from class&nbsp;fr.lnl.game.client.view.<a href="AbstractView.html" title="class in fr.lnl.game.client.view">AbstractView</a></h3>
<code><a href="AbstractView.html#game">game</a>, <a href="AbstractView.html#player">player</a></code></div>
</section>
</li>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<li>
<section class="constructor-summary" id="constructor-summary">
<h2>Constructor Summary</h2>
<div class="caption"><span>Constructors</span></div>
<div class="summary-table two-column-summary">
<div class="table-header col-first">Constructor</div>
<div class="table-header col-last">Description</div>
<div class="col-constructor-name even-row-color"><code><a href="#%3Cinit%3E(fr.lnl.game.server.games.Game,fr.lnl.game.server.games.player.Player)" class="member-name-link">Terminal</a><wbr>(fr.lnl.game.server.games.Game&nbsp;game,
fr.lnl.game.server.games.player.Player&nbsp;player)</code></div>
<div class="col-last even-row-color">&nbsp;</div>
</div>
</section>
</li>
<!-- ========== METHOD SUMMARY =========== -->
<li>
<section class="method-summary" id="method-summary">
<h2>Method Summary</h2>
<div id="method-summary-table">
<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab2" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" class="table-tab">Instance Methods</button><button id="method-summary-table-tab4" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab4', 3)" class="table-tab">Concrete Methods</button></div>
<div id="method-summary-table.tabpanel" role="tabpanel">
<div class="summary-table three-column-summary" aria-labelledby="method-summary-table-tab0">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Method</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>fr.lnl.game.server.games.action.Action</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#choseAction()" class="member-name-link">choseAction</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Used when current player is an instance of <code>HumanPlayer</code> and demand to it
an action to do</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>private fr.lnl.game.server.games.action.ReunionSameAction</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#choseReunionSameAction(java.util.List)" class="member-name-link">choseReunionSameAction</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a>&lt;fr.lnl.game.server.games.action.ReunionSameAction&gt;&nbsp;actions)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Used when current player is an instance of <code>HumanPlayer</code> and demand to it
a type of action to do</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#displayWinner(fr.lnl.game.server.games.player.Player)" class="member-name-link">displayWinner</a><wbr>(fr.lnl.game.server.games.player.Player&nbsp;winner)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Used to display the winner of the game</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#show()" class="member-name-link">show</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Used to update view</div>
</div>
</div>
</div>
</div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-java.lang.Object">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></h3>
<code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#clone()" title="class or interface in java.lang" class="external-link">clone</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang" class="external-link">equals</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#finalize()" title="class or interface in java.lang" class="external-link">finalize</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#getClass()" title="class or interface in java.lang" class="external-link">getClass</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#hashCode()" title="class or interface in java.lang" class="external-link">hashCode</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#notify()" title="class or interface in java.lang" class="external-link">notify</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#notifyAll()" title="class or interface in java.lang" class="external-link">notifyAll</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#toString()" title="class or interface in java.lang" class="external-link">toString</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#wait()" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#wait(long)" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#wait(long,int)" title="class or interface in java.lang" class="external-link">wait</a></code></div>
</section>
</li>
</ul>
</section>
<section class="details">
<ul class="details-list">
<!-- ============ FIELD DETAIL =========== -->
<li>
<section class="field-details" id="field-detail">
<h2>Field Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="scanner">
<h3>scanner</h3>
<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Scanner.html" title="class or interface in java.util" class="external-link">Scanner</a></span>&nbsp;<span class="element-name">scanner</span></div>
<div class="block">Standard input</div>
</section>
</li>
</ul>
</section>
</li>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<li>
<section class="constructor-details" id="constructor-detail">
<h2>Constructor Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="&lt;init&gt;(fr.lnl.game.server.games.Game,fr.lnl.game.server.games.player.Player)">
<h3>Terminal</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">Terminal</span><wbr><span class="parameters">(fr.lnl.game.server.games.Game&nbsp;game,
fr.lnl.game.server.games.player.Player&nbsp;player)</span></div>
</section>
</li>
</ul>
</section>
</li>
<!-- ============ METHOD DETAIL ========== -->
<li>
<section class="method-details" id="method-detail">
<h2>Method Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="show()">
<h3>show</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">show</span>()</div>
<div class="block">Used to update view</div>
</section>
</li>
<li>
<section class="detail" id="displayWinner(fr.lnl.game.server.games.player.Player)">
<h3>displayWinner</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">displayWinner</span><wbr><span class="parameters">(fr.lnl.game.server.games.player.Player&nbsp;winner)</span></div>
<div class="block">Used to display the winner of the game</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>winner</code> - the player who win the game, can be Null</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="choseAction()">
<h3>choseAction</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">fr.lnl.game.server.games.action.Action</span>&nbsp;<span class="element-name">choseAction</span>()</div>
<div class="block">Used when current player is an instance of <code>HumanPlayer</code> and demand to it
an action to do</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>chosen action</dd>
<dt>See Also:</dt>
<dd>
<ul class="see-list">
<li><a href="#choseReunionSameAction(java.util.List)"><code>choseReunionSameAction(List)</code></a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="choseReunionSameAction(java.util.List)">
<h3>choseReunionSameAction</h3>
<div class="member-signature"><span class="modifiers">private</span>&nbsp;<span class="return-type">fr.lnl.game.server.games.action.ReunionSameAction</span>&nbsp;<span class="element-name">choseReunionSameAction</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a>&lt;fr.lnl.game.server.games.action.ReunionSameAction&gt;&nbsp;actions)</span></div>
<div class="block">Used when current player is an instance of <code>HumanPlayer</code> and demand to it
a type of action to do</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>actions</code> - the list of actions possible</dd>
<dt>Returns:</dt>
<dd>the type of action to execute</dd>
<dt>See Also:</dt>
<dd>
<ul class="see-list">
<li><a href="#choseAction()"><code>choseAction()</code></a></li>
</ul>
</dd>
</dl>
</section>
</li>
</ul>
</section>
</li>
</ul>
</section>
<!-- ========= END OF CLASS DATA ========= -->
</main>
</div>
</div>
</body>
</html>

View File

@ -0,0 +1,148 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
<title>View (client API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="description" content="declaration: module: client, package: fr.lnl.game.client.view, interface: View">
<meta name="generator" content="javadoc/ClassWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../../script-dir/jquery-ui.min.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../../jquery-ui.overrides.css" title="Style">
<script type="text/javascript" src="../../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../../script-dir/jquery-3.5.1.min.js"></script>
<script type="text/javascript" src="../../../../../../script-dir/jquery-ui.min.js"></script>
</head>
<body class="class-declaration-page">
<script type="text/javascript">var evenRowColor = "even-row-color";
var oddRowColor = "odd-row-color";
var tableTab = "table-tab";
var activeTableTab = "active-table-tab";
var pathtoroot = "../../../../../../";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flex-box">
<header role="banner" class="flex-header">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="top-nav" id="navbar-top">
<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div>
<ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
<li><a href="../../../../../module-summary.html">Module</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="nav-bar-cell1-rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../../help-doc.html#class">Help</a></li>
</ul>
</div>
<div class="sub-nav">
<div>
<ul class="sub-nav-list">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method-summary">Method</a></li>
</ul>
<ul class="sub-nav-list">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method-detail">Method</a></li>
</ul>
</div>
<div class="nav-list-search"><label for="search-input">SEARCH:</label>
<input type="text" id="search-input" value="search" disabled="disabled">
<input type="reset" id="reset-button" value="reset" disabled="disabled">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip-navbar-top"></span></nav>
</header>
<div class="flex-content">
<main role="main">
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="sub-title"><span class="module-label-in-type">Module</span>&nbsp;<a href="../../../../../module-summary.html">client</a></div>
<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">fr.lnl.game.client.view</a></div>
<h1 title="Interface View" class="title">Interface View</h1>
</div>
<section class="class-description" id="class-description">
<dl class="notes">
<dt>All Known Implementing Classes:</dt>
<dd><code><a href="AbstractView.html" title="class in fr.lnl.game.client.view">AbstractView</a></code>, <code><a href="Terminal.html" title="class in fr.lnl.game.client.view">Terminal</a></code>, <code><a href="Window.html" title="class in fr.lnl.game.client.view">Window</a></code></dd>
</dl>
<hr>
<div class="type-signature"><span class="modifiers">public interface </span><span class="element-name type-name-label">View</span></div>
<div class="block">View interface, implemented by Terminal and Window.</div>
</section>
<section class="summary">
<ul class="summary-list">
<!-- ========== METHOD SUMMARY =========== -->
<li>
<section class="method-summary" id="method-summary">
<h2>Method Summary</h2>
<div id="method-summary-table">
<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab2" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" class="table-tab">Instance Methods</button><button id="method-summary-table-tab3" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab3', 3)" class="table-tab">Abstract Methods</button></div>
<div id="method-summary-table.tabpanel" role="tabpanel">
<div class="summary-table three-column-summary" aria-labelledby="method-summary-table-tab0">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Method</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#displayWinner(fr.lnl.game.server.games.player.Player)" class="member-name-link">displayWinner</a><wbr>(fr.lnl.game.server.games.player.Player&nbsp;winner)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Used to display the name of the winner</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#show()" class="member-name-link">show</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">used to update screen</div>
</div>
</div>
</div>
</div>
</section>
</li>
</ul>
</section>
<section class="details">
<ul class="details-list">
<!-- ============ METHOD DETAIL ========== -->
<li>
<section class="method-details" id="method-detail">
<h2>Method Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="show()">
<h3>show</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name">show</span>()</div>
<div class="block">used to update screen</div>
</section>
</li>
<li>
<section class="detail" id="displayWinner(fr.lnl.game.server.games.player.Player)">
<h3>displayWinner</h3>
<div class="member-signature"><span class="return-type">void</span>&nbsp;<span class="element-name">displayWinner</span><wbr><span class="parameters">(fr.lnl.game.server.games.player.Player&nbsp;winner)</span></div>
<div class="block">Used to display the name of the winner</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>winner</code> - the player who win the game, can be Null</dd>
</dl>
</section>
</li>
</ul>
</section>
</li>
</ul>
</section>
<!-- ========= END OF CLASS DATA ========= -->
</main>
</div>
</div>
</body>
</html>

View File

@ -0,0 +1,253 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
<title>ViewManager (client API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="description" content="declaration: module: client, package: fr.lnl.game.client.view, class: ViewManager">
<meta name="generator" content="javadoc/ClassWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../../script-dir/jquery-ui.min.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../../jquery-ui.overrides.css" title="Style">
<script type="text/javascript" src="../../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../../script-dir/jquery-3.5.1.min.js"></script>
<script type="text/javascript" src="../../../../../../script-dir/jquery-ui.min.js"></script>
</head>
<body class="class-declaration-page">
<script type="text/javascript">var evenRowColor = "even-row-color";
var oddRowColor = "odd-row-color";
var tableTab = "table-tab";
var activeTableTab = "active-table-tab";
var pathtoroot = "../../../../../../";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flex-box">
<header role="banner" class="flex-header">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="top-nav" id="navbar-top">
<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div>
<ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
<li><a href="../../../../../module-summary.html">Module</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="nav-bar-cell1-rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../../help-doc.html#class">Help</a></li>
</ul>
</div>
<div class="sub-nav">
<div>
<ul class="sub-nav-list">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field-summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor-summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method-summary">Method</a></li>
</ul>
<ul class="sub-nav-list">
<li>Detail:&nbsp;</li>
<li><a href="#field-detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor-detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method-detail">Method</a></li>
</ul>
</div>
<div class="nav-list-search"><label for="search-input">SEARCH:</label>
<input type="text" id="search-input" value="search" disabled="disabled">
<input type="reset" id="reset-button" value="reset" disabled="disabled">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip-navbar-top"></span></nav>
</header>
<div class="flex-content">
<main role="main">
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="sub-title"><span class="module-label-in-type">Module</span>&nbsp;<a href="../../../../../module-summary.html">client</a></div>
<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">fr.lnl.game.client.view</a></div>
<h1 title="Class ViewManager" class="title">Class ViewManager</h1>
</div>
<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">java.lang.Object</a>
<div class="inheritance">fr.lnl.game.client.view.ViewManager</div>
</div>
<section class="class-description" id="class-description">
<hr>
<div class="type-signature"><span class="modifiers">public final class </span><span class="element-name type-name-label">ViewManager</span>
<span class="extends-implements">extends <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></span></div>
<div class="block">View manager, main access to every views</div>
</section>
<section class="summary">
<ul class="summary-list">
<!-- =========== FIELD SUMMARY =========== -->
<li>
<section class="field-summary" id="field-summary">
<h2>Field Summary</h2>
<div class="caption"><span>Fields</span></div>
<div class="summary-table three-column-summary">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Field</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color"><code>private final fr.lnl.game.server.games.Game</code></div>
<div class="col-second even-row-color"><code><a href="#game" class="member-name-link">game</a></code></div>
<div class="col-last even-row-color">&nbsp;</div>
<div class="col-first odd-row-color"><code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/HashMap.html" title="class or interface in java.util" class="external-link">HashMap</a>&lt;fr.lnl.game.server.games.player.Player,<wbr><a href="../ClientPlayer.html" title="class in fr.lnl.game.client">ClientPlayer</a>&gt;</code></div>
<div class="col-second odd-row-color"><code><a href="#players" class="member-name-link">players</a></code></div>
<div class="col-last odd-row-color">&nbsp;</div>
<div class="col-first even-row-color"><code>private final <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Class.html" title="class or interface in java.lang" class="external-link">Class</a>&lt;? extends <a href="View.html" title="interface in fr.lnl.game.client.view">View</a>&gt;</code></div>
<div class="col-second even-row-color"><code><a href="#viewType" class="member-name-link">viewType</a></code></div>
<div class="col-last even-row-color">&nbsp;</div>
</div>
</section>
</li>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<li>
<section class="constructor-summary" id="constructor-summary">
<h2>Constructor Summary</h2>
<div class="caption"><span>Constructors</span></div>
<div class="summary-table two-column-summary">
<div class="table-header col-first">Constructor</div>
<div class="table-header col-last">Description</div>
<div class="col-constructor-name even-row-color"><code><a href="#%3Cinit%3E(fr.lnl.game.server.games.Game,java.lang.Class,fr.lnl.game.client.ViewLambda)" class="member-name-link">ViewManager</a><wbr>(fr.lnl.game.server.games.Game&nbsp;game,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Class.html" title="class or interface in java.lang" class="external-link">Class</a>&lt;? extends <a href="View.html" title="interface in fr.lnl.game.client.view">View</a>&gt;&nbsp;viewType,
<a href="../ViewLambda.html" title="interface in fr.lnl.game.client">ViewLambda</a>&nbsp;lambda)</code></div>
<div class="col-last even-row-color">&nbsp;</div>
</div>
</section>
</li>
<!-- ========== METHOD SUMMARY =========== -->
<li>
<section class="method-summary" id="method-summary">
<h2>Method Summary</h2>
<div id="method-summary-table">
<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab2" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" class="table-tab">Instance Methods</button><button id="method-summary-table-tab4" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab4', 3)" class="table-tab">Concrete Methods</button></div>
<div id="method-summary-table.tabpanel" role="tabpanel">
<div class="summary-table three-column-summary" aria-labelledby="method-summary-table-tab0">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Method</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#displayWinner(fr.lnl.game.server.games.player.Player)" class="member-name-link">displayWinner</a><wbr>(fr.lnl.game.server.games.player.Player&nbsp;winner)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">This method is call when the game is finish</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#run()" class="member-name-link">run</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">This method is call after initialized view manager to display a first screen</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#terminalView()" class="member-name-link">terminalView</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">This method is call when the view is a terminal</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#updateView()" class="member-name-link">updateView</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Call when we need to change or update view</div>
</div>
</div>
</div>
</div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-java.lang.Object">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></h3>
<code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#clone()" title="class or interface in java.lang" class="external-link">clone</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang" class="external-link">equals</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#finalize()" title="class or interface in java.lang" class="external-link">finalize</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#getClass()" title="class or interface in java.lang" class="external-link">getClass</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#hashCode()" title="class or interface in java.lang" class="external-link">hashCode</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#notify()" title="class or interface in java.lang" class="external-link">notify</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#notifyAll()" title="class or interface in java.lang" class="external-link">notifyAll</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#toString()" title="class or interface in java.lang" class="external-link">toString</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#wait()" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#wait(long)" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#wait(long,int)" title="class or interface in java.lang" class="external-link">wait</a></code></div>
</section>
</li>
</ul>
</section>
<section class="details">
<ul class="details-list">
<!-- ============ FIELD DETAIL =========== -->
<li>
<section class="field-details" id="field-detail">
<h2>Field Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="game">
<h3>game</h3>
<div class="member-signature"><span class="modifiers">private final</span>&nbsp;<span class="return-type">fr.lnl.game.server.games.Game</span>&nbsp;<span class="element-name">game</span></div>
</section>
</li>
<li>
<section class="detail" id="viewType">
<h3>viewType</h3>
<div class="member-signature"><span class="modifiers">private final</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Class.html" title="class or interface in java.lang" class="external-link">Class</a>&lt;? extends <a href="View.html" title="interface in fr.lnl.game.client.view">View</a>&gt;</span>&nbsp;<span class="element-name">viewType</span></div>
</section>
</li>
<li>
<section class="detail" id="players">
<h3>players</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/HashMap.html" title="class or interface in java.util" class="external-link">HashMap</a>&lt;fr.lnl.game.server.games.player.Player,<wbr><a href="../ClientPlayer.html" title="class in fr.lnl.game.client">ClientPlayer</a>&gt;</span>&nbsp;<span class="element-name">players</span></div>
</section>
</li>
</ul>
</section>
</li>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<li>
<section class="constructor-details" id="constructor-detail">
<h2>Constructor Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="&lt;init&gt;(fr.lnl.game.server.games.Game,java.lang.Class,fr.lnl.game.client.ViewLambda)">
<h3>ViewManager</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">ViewManager</span><wbr><span class="parameters">(fr.lnl.game.server.games.Game&nbsp;game,
<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Class.html" title="class or interface in java.lang" class="external-link">Class</a>&lt;? extends <a href="View.html" title="interface in fr.lnl.game.client.view">View</a>&gt;&nbsp;viewType,
<a href="../ViewLambda.html" title="interface in fr.lnl.game.client">ViewLambda</a>&nbsp;lambda)</span></div>
</section>
</li>
</ul>
</section>
</li>
<!-- ============ METHOD DETAIL ========== -->
<li>
<section class="method-details" id="method-detail">
<h2>Method Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="updateView()">
<h3>updateView</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">updateView</span>()</div>
<div class="block">Call when we need to change or update view</div>
</section>
</li>
<li>
<section class="detail" id="terminalView()">
<h3>terminalView</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">terminalView</span>()</div>
<div class="block">This method is call when the view is a terminal</div>
</section>
</li>
<li>
<section class="detail" id="displayWinner(fr.lnl.game.server.games.player.Player)">
<h3>displayWinner</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">displayWinner</span><wbr><span class="parameters">(fr.lnl.game.server.games.player.Player&nbsp;winner)</span></div>
<div class="block">This method is call when the game is finish</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>winner</code> - The winner of the game, can be null</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="run()">
<h3>run</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">run</span>()</div>
<div class="block">This method is call after initialized view manager to display a first screen</div>
</section>
</li>
</ul>
</section>
</li>
</ul>
</section>
<!-- ========= END OF CLASS DATA ========= -->
</main>
</div>
</div>
</body>
</html>

View File

@ -0,0 +1,518 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
<title>Window (client API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="description" content="declaration: module: client, package: fr.lnl.game.client.view, class: Window">
<meta name="generator" content="javadoc/ClassWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../../script-dir/jquery-ui.min.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../../jquery-ui.overrides.css" title="Style">
<script type="text/javascript" src="../../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../../script-dir/jquery-3.5.1.min.js"></script>
<script type="text/javascript" src="../../../../../../script-dir/jquery-ui.min.js"></script>
</head>
<body class="class-declaration-page">
<script type="text/javascript">var evenRowColor = "even-row-color";
var oddRowColor = "odd-row-color";
var tableTab = "table-tab";
var activeTableTab = "active-table-tab";
var pathtoroot = "../../../../../../";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flex-box">
<header role="banner" class="flex-header">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="top-nav" id="navbar-top">
<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div>
<ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
<li><a href="../../../../../module-summary.html">Module</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="nav-bar-cell1-rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../../help-doc.html#class">Help</a></li>
</ul>
</div>
<div class="sub-nav">
<div>
<ul class="sub-nav-list">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field-summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor-summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method-summary">Method</a></li>
</ul>
<ul class="sub-nav-list">
<li>Detail:&nbsp;</li>
<li><a href="#field-detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor-detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method-detail">Method</a></li>
</ul>
</div>
<div class="nav-list-search"><label for="search-input">SEARCH:</label>
<input type="text" id="search-input" value="search" disabled="disabled">
<input type="reset" id="reset-button" value="reset" disabled="disabled">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip-navbar-top"></span></nav>
</header>
<div class="flex-content">
<main role="main">
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="sub-title"><span class="module-label-in-type">Module</span>&nbsp;<a href="../../../../../module-summary.html">client</a></div>
<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">fr.lnl.game.client.view</a></div>
<h1 title="Class Window" class="title">Class Window</h1>
</div>
<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">java.lang.Object</a>
<div class="inheritance"><a href="AbstractView.html" title="class in fr.lnl.game.client.view">fr.lnl.game.client.view.AbstractView</a>
<div class="inheritance">fr.lnl.game.client.view.Window</div>
</div>
</div>
<section class="class-description" id="class-description">
<dl class="notes">
<dt>All Implemented Interfaces:</dt>
<dd><code><a href="View.html" title="interface in fr.lnl.game.client.view">View</a></code></dd>
</dl>
<hr>
<div class="type-signature"><span class="modifiers">public class </span><span class="element-name type-name-label">Window</span>
<span class="extends-implements">extends <a href="AbstractView.html" title="class in fr.lnl.game.client.view">AbstractView</a></span></div>
<div class="block">Window view, use mouse and keyboard to control interface</div>
</section>
<section class="summary">
<ul class="summary-list">
<!-- =========== FIELD SUMMARY =========== -->
<li>
<section class="field-summary" id="field-summary">
<h2>Field Summary</h2>
<div class="caption"><span>Fields</span></div>
<div class="summary-table three-column-summary">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Field</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color"><code>private static final javafx.scene.layout.Background</code></div>
<div class="col-second even-row-color"><code><a href="#bg" class="member-name-link">bg</a></code></div>
<div class="col-last even-row-color">&nbsp;</div>
<div class="col-first odd-row-color"><code>private javafx.scene.layout.Pane</code></div>
<div class="col-second odd-row-color"><code><a href="#buttonPane" class="member-name-link">buttonPane</a></code></div>
<div class="col-last odd-row-color">&nbsp;</div>
<div class="col-first even-row-color"><code>static final int</code></div>
<div class="col-second even-row-color"><code><a href="#cellSize" class="member-name-link">cellSize</a></code></div>
<div class="col-last even-row-color">&nbsp;</div>
<div class="col-first odd-row-color"><code>private static final javafx.scene.paint.Color</code></div>
<div class="col-second odd-row-color"><code><a href="#dark" class="member-name-link">dark</a></code></div>
<div class="col-last odd-row-color">&nbsp;</div>
<div class="col-first even-row-color"><code>static final int</code></div>
<div class="col-second even-row-color"><code><a href="#height" class="member-name-link">height</a></code></div>
<div class="col-last even-row-color">&nbsp;</div>
<div class="col-first odd-row-color"><code>private final <a href="../listener/NextPlayerButtonListener.html" title="class in fr.lnl.game.client.listener">NextPlayerButtonListener</a></code></div>
<div class="col-second odd-row-color"><code><a href="#nextPlayerButtonListener" class="member-name-link">nextPlayerButtonListener</a></code></div>
<div class="col-last odd-row-color">&nbsp;</div>
<div class="col-first even-row-color"><code>private fr.lnl.game.server.games.action.ReunionSameAction</code></div>
<div class="col-second even-row-color"><code><a href="#selectedReunionAction" class="member-name-link">selectedReunionAction</a></code></div>
<div class="col-last even-row-color">&nbsp;</div>
<div class="col-first odd-row-color"><code>private final javafx.stage.Stage</code></div>
<div class="col-second odd-row-color"><code><a href="#stage" class="member-name-link">stage</a></code></div>
<div class="col-last odd-row-color">&nbsp;</div>
<div class="col-first even-row-color"><code>static final int</code></div>
<div class="col-second even-row-color"><code><a href="#width" class="member-name-link">width</a></code></div>
<div class="col-last even-row-color">&nbsp;</div>
</div>
<div class="inherited-list">
<h3 id="fields-inherited-from-class-fr.lnl.game.client.view.AbstractView">Fields inherited from class&nbsp;fr.lnl.game.client.view.<a href="AbstractView.html" title="class in fr.lnl.game.client.view">AbstractView</a></h3>
<code><a href="AbstractView.html#game">game</a>, <a href="AbstractView.html#player">player</a></code></div>
</section>
</li>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<li>
<section class="constructor-summary" id="constructor-summary">
<h2>Constructor Summary</h2>
<div class="caption"><span>Constructors</span></div>
<div class="summary-table two-column-summary">
<div class="table-header col-first">Constructor</div>
<div class="table-header col-last">Description</div>
<div class="col-constructor-name even-row-color"><code><a href="#%3Cinit%3E(javafx.stage.Stage,fr.lnl.game.server.games.Game,fr.lnl.game.server.games.player.Player)" class="member-name-link">Window</a><wbr>(javafx.stage.Stage&nbsp;stage,
fr.lnl.game.server.games.Game&nbsp;game,
fr.lnl.game.server.games.player.Player&nbsp;player)</code></div>
<div class="col-last even-row-color">&nbsp;</div>
</div>
</section>
</li>
<!-- ========== METHOD SUMMARY =========== -->
<li>
<section class="method-summary" id="method-summary">
<h2>Method Summary</h2>
<div id="method-summary-table">
<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab2" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" class="table-tab">Instance Methods</button><button id="method-summary-table-tab4" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab4', 3)" class="table-tab">Concrete Methods</button></div>
<div id="method-summary-table.tabpanel" role="tabpanel">
<div class="summary-table three-column-summary" aria-labelledby="method-summary-table-tab0">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Method</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>private void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#addButtonToPane(java.lang.String,javafx.event.EventHandler,javafx.scene.layout.Pane,int,int)" class="member-name-link">addButtonToPane</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;content,
javafx.event.EventHandler&lt;javafx.event.ActionEvent&gt;&nbsp;listener,
javafx.scene.layout.Pane&nbsp;pane,
int&nbsp;offsetX,
int&nbsp;offsetY)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">called when we add a button in the interface</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#addToPrincipalPanel(java.lang.Object,javafx.scene.layout.Pane,int,int)" class="member-name-link">addToPrincipalPanel</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a>&nbsp;object,
javafx.scene.layout.Pane&nbsp;principalPane,
int&nbsp;i,
int&nbsp;j)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Add grid element to the principal pane</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#choseDirectionAction(fr.lnl.game.server.games.action.ReunionSameAction)" class="member-name-link">choseDirectionAction</a><wbr>(fr.lnl.game.server.games.action.ReunionSameAction&nbsp;selectedReunionAction)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Choose a direction between all possible from the previously selected action type</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>private void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#choseReunionSameAction(java.util.List)" class="member-name-link">choseReunionSameAction</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a>&lt;fr.lnl.game.server.games.action.ReunionSameAction&gt;&nbsp;actions)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Used when <code>Game.getCurrentPlayer()</code> is an instance of <code>HumanPlayer</code>.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>private javafx.scene.Parent</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#createContent()" class="member-name-link">createContent</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Create content of the stage</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#displayWinner(fr.lnl.game.server.games.player.Player)" class="member-name-link">displayWinner</a><wbr>(fr.lnl.game.server.games.player.Player&nbsp;winner)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Used to display the name of the winner</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="../listener/NextPlayerButtonListener.html" title="class in fr.lnl.game.client.listener">NextPlayerButtonListener</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getNextPlayerButtonListener()" class="member-name-link">getNextPlayerButtonListener</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#putMoveTextPane(javafx.scene.layout.Pane)" class="member-name-link">putMoveTextPane</a><wbr>(javafx.scene.layout.Pane&nbsp;principalPane)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">build left down pane and move it to its position</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#putStatePlayerPane(javafx.scene.layout.Pane)" class="member-name-link">putStatePlayerPane</a><wbr>(javafx.scene.layout.Pane&nbsp;principalPane)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Create the right pane</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#setSelectedReunionAction(fr.lnl.game.server.games.action.ReunionSameAction)" class="member-name-link">setSelectedReunionAction</a><wbr>(fr.lnl.game.server.games.action.ReunionSameAction&nbsp;selectedReunionAction)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#show()" class="member-name-link">show</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">used to update screen</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>javafx.scene.layout.StackPane</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#showMoveText()" class="member-name-link">showMoveText</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Build the left down pane (contains current player information)</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>javafx.scene.layout.StackPane</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#showStatePlayer(java.lang.String,int)" class="member-name-link">showStatePlayer</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;type,
int&nbsp;playerNumber)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Build left down pane (list all players information)</div>
</div>
</div>
</div>
</div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-java.lang.Object">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></h3>
<code><a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#clone()" title="class or interface in java.lang" class="external-link">clone</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang" class="external-link">equals</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#finalize()" title="class or interface in java.lang" class="external-link">finalize</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#getClass()" title="class or interface in java.lang" class="external-link">getClass</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#hashCode()" title="class or interface in java.lang" class="external-link">hashCode</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#notify()" title="class or interface in java.lang" class="external-link">notify</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#notifyAll()" title="class or interface in java.lang" class="external-link">notifyAll</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#toString()" title="class or interface in java.lang" class="external-link">toString</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#wait()" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#wait(long)" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html#wait(long,int)" title="class or interface in java.lang" class="external-link">wait</a></code></div>
</section>
</li>
</ul>
</section>
<section class="details">
<ul class="details-list">
<!-- ============ FIELD DETAIL =========== -->
<li>
<section class="field-details" id="field-detail">
<h2>Field Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="cellSize">
<h3>cellSize</h3>
<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type">int</span>&nbsp;<span class="element-name">cellSize</span></div>
<dl class="notes">
<dt>See Also:</dt>
<dd>
<ul class="see-list">
<li><a href="../../../../../../constant-values.html#fr.lnl.game.client.view.Window.cellSize">Constant Field Values</a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="width">
<h3>width</h3>
<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type">int</span>&nbsp;<span class="element-name">width</span></div>
<dl class="notes">
<dt>See Also:</dt>
<dd>
<ul class="see-list">
<li><a href="../../../../../../constant-values.html#fr.lnl.game.client.view.Window.width">Constant Field Values</a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="height">
<h3>height</h3>
<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type">int</span>&nbsp;<span class="element-name">height</span></div>
<dl class="notes">
<dt>See Also:</dt>
<dd>
<ul class="see-list">
<li><a href="../../../../../../constant-values.html#fr.lnl.game.client.view.Window.height">Constant Field Values</a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="dark">
<h3>dark</h3>
<div class="member-signature"><span class="modifiers">private static final</span>&nbsp;<span class="return-type">javafx.scene.paint.Color</span>&nbsp;<span class="element-name">dark</span></div>
</section>
</li>
<li>
<section class="detail" id="bg">
<h3>bg</h3>
<div class="member-signature"><span class="modifiers">private static final</span>&nbsp;<span class="return-type">javafx.scene.layout.Background</span>&nbsp;<span class="element-name">bg</span></div>
</section>
</li>
<li>
<section class="detail" id="stage">
<h3>stage</h3>
<div class="member-signature"><span class="modifiers">private final</span>&nbsp;<span class="return-type">javafx.stage.Stage</span>&nbsp;<span class="element-name">stage</span></div>
</section>
</li>
<li>
<section class="detail" id="buttonPane">
<h3>buttonPane</h3>
<div class="member-signature"><span class="modifiers">private</span>&nbsp;<span class="return-type">javafx.scene.layout.Pane</span>&nbsp;<span class="element-name">buttonPane</span></div>
</section>
</li>
<li>
<section class="detail" id="selectedReunionAction">
<h3>selectedReunionAction</h3>
<div class="member-signature"><span class="modifiers">private</span>&nbsp;<span class="return-type">fr.lnl.game.server.games.action.ReunionSameAction</span>&nbsp;<span class="element-name">selectedReunionAction</span></div>
</section>
</li>
<li>
<section class="detail" id="nextPlayerButtonListener">
<h3>nextPlayerButtonListener</h3>
<div class="member-signature"><span class="modifiers">private final</span>&nbsp;<span class="return-type"><a href="../listener/NextPlayerButtonListener.html" title="class in fr.lnl.game.client.listener">NextPlayerButtonListener</a></span>&nbsp;<span class="element-name">nextPlayerButtonListener</span></div>
</section>
</li>
</ul>
</section>
</li>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<li>
<section class="constructor-details" id="constructor-detail">
<h2>Constructor Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="&lt;init&gt;(javafx.stage.Stage,fr.lnl.game.server.games.Game,fr.lnl.game.server.games.player.Player)">
<h3>Window</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">Window</span><wbr><span class="parameters">(javafx.stage.Stage&nbsp;stage,
fr.lnl.game.server.games.Game&nbsp;game,
fr.lnl.game.server.games.player.Player&nbsp;player)</span></div>
</section>
</li>
</ul>
</section>
</li>
<!-- ============ METHOD DETAIL ========== -->
<li>
<section class="method-details" id="method-detail">
<h2>Method Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="show()">
<h3>show</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">show</span>()</div>
<div class="block">used to update screen</div>
</section>
</li>
<li>
<section class="detail" id="displayWinner(fr.lnl.game.server.games.player.Player)">
<h3>displayWinner</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">displayWinner</span><wbr><span class="parameters">(fr.lnl.game.server.games.player.Player&nbsp;winner)</span></div>
<div class="block">Used to display the name of the winner</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>winner</code> - the player who win the game, can be Null</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="choseDirectionAction(fr.lnl.game.server.games.action.ReunionSameAction)">
<h3>choseDirectionAction</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">choseDirectionAction</span><wbr><span class="parameters">(fr.lnl.game.server.games.action.ReunionSameAction&nbsp;selectedReunionAction)</span></div>
<div class="block">Choose a direction between all possible from the previously selected action type</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>selectedReunionAction</code> - previously selected type of action</dd>
<dt>See Also:</dt>
<dd>
<ul class="see-list">
<li><a href="#choseReunionSameAction(java.util.List)"><code>choseReunionSameAction(List)</code></a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="choseReunionSameAction(java.util.List)">
<h3>choseReunionSameAction</h3>
<div class="member-signature"><span class="modifiers">private</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">choseReunionSameAction</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a>&lt;fr.lnl.game.server.games.action.ReunionSameAction&gt;&nbsp;actions)</span></div>
<div class="block">Used when <code>Game.getCurrentPlayer()</code> is an instance of <code>HumanPlayer</code>.
Display button to demand to player to choose the type of action to execute</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>actions</code> - the list of possible actions</dd>
<dt>See Also:</dt>
<dd>
<ul class="see-list-long">
<li><a href="#choseDirectionAction(fr.lnl.game.server.games.action.ReunionSameAction)"><code>choseDirectionAction(ReunionSameAction)</code></a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="addButtonToPane(java.lang.String,javafx.event.EventHandler,javafx.scene.layout.Pane,int,int)">
<h3>addButtonToPane</h3>
<div class="member-signature"><span class="modifiers">private</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">addButtonToPane</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;content,
javafx.event.EventHandler&lt;javafx.event.ActionEvent&gt;&nbsp;listener,
javafx.scene.layout.Pane&nbsp;pane,
int&nbsp;offsetX,
int&nbsp;offsetY)</span></div>
<div class="block">called when we add a button in the interface</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>content</code> - content of the button</dd>
<dd><code>listener</code> - listener of the button</dd>
<dd><code>pane</code> - pane where we add the button</dd>
<dd><code>offsetX</code> - move the button from the base position of the pane to the left (when offsetX is negative) or on
the right (when offsetY is positive)</dd>
<dd><code>offsetY</code> - move the button from the base position of the pane to the up (when offsetX is negative) or on
the down (when offsetY is positive)</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="createContent()">
<h3>createContent</h3>
<div class="member-signature"><span class="modifiers">private</span>&nbsp;<span class="return-type">javafx.scene.Parent</span>&nbsp;<span class="element-name">createContent</span>()</div>
<div class="block">Create content of the stage</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>the parent element to set to the stage</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="addToPrincipalPanel(java.lang.Object,javafx.scene.layout.Pane,int,int)">
<h3>addToPrincipalPanel</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">addToPrincipalPanel</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a>&nbsp;object,
javafx.scene.layout.Pane&nbsp;principalPane,
int&nbsp;i,
int&nbsp;j)</span></div>
<div class="block">Add grid element to the principal pane</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>object</code> - object to add to the pane</dd>
<dd><code>principalPane</code> - pane where we'll add the object</dd>
<dd><code>i</code> - </dd>
<dd><code>j</code> - </dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="putStatePlayerPane(javafx.scene.layout.Pane)">
<h3>putStatePlayerPane</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">putStatePlayerPane</span><wbr><span class="parameters">(javafx.scene.layout.Pane&nbsp;principalPane)</span></div>
<div class="block">Create the right pane</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>principalPane</code> - principal pane where we'll add the left down pane</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="showStatePlayer(java.lang.String,int)">
<h3>showStatePlayer</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">javafx.scene.layout.StackPane</span>&nbsp;<span class="element-name">showStatePlayer</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;type,
int&nbsp;playerNumber)</span></div>
<div class="block">Build left down pane (list all players information)</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>type</code> - </dd>
<dd><code>playerNumber</code> - </dd>
<dt>Returns:</dt>
</dl>
</section>
</li>
<li>
<section class="detail" id="putMoveTextPane(javafx.scene.layout.Pane)">
<h3>putMoveTextPane</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">putMoveTextPane</span><wbr><span class="parameters">(javafx.scene.layout.Pane&nbsp;principalPane)</span></div>
<div class="block">build left down pane and move it to its position</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>principalPane</code> - the principal pane where we'll add the left down pane</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="showMoveText()">
<h3>showMoveText</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">javafx.scene.layout.StackPane</span>&nbsp;<span class="element-name">showMoveText</span>()</div>
<div class="block">Build the left down pane (contains current player information)</div>
<dl class="notes">
<dt>Returns:</dt>
<dd>the built pane</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="setSelectedReunionAction(fr.lnl.game.server.games.action.ReunionSameAction)">
<h3>setSelectedReunionAction</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">setSelectedReunionAction</span><wbr><span class="parameters">(fr.lnl.game.server.games.action.ReunionSameAction&nbsp;selectedReunionAction)</span></div>
</section>
</li>
<li>
<section class="detail" id="getNextPlayerButtonListener()">
<h3>getNextPlayerButtonListener</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="../listener/NextPlayerButtonListener.html" title="class in fr.lnl.game.client.listener">NextPlayerButtonListener</a></span>&nbsp;<span class="element-name">getNextPlayerButtonListener</span>()</div>
</section>
</li>
</ul>
</section>
</li>
</ul>
</section>
<!-- ========= END OF CLASS DATA ========= -->
</main>
</div>
</div>
</body>
</html>

View File

@ -0,0 +1,131 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
<title>fr.lnl.game.client.view (client API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="description" content="declaration: module: client, package: fr.lnl.game.client.view">
<meta name="generator" content="javadoc/PackageWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../../script-dir/jquery-ui.min.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../../jquery-ui.overrides.css" title="Style">
<script type="text/javascript" src="../../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../../script-dir/jquery-3.5.1.min.js"></script>
<script type="text/javascript" src="../../../../../../script-dir/jquery-ui.min.js"></script>
</head>
<body class="package-declaration-page">
<script type="text/javascript">var evenRowColor = "even-row-color";
var oddRowColor = "odd-row-color";
var tableTab = "table-tab";
var activeTableTab = "active-table-tab";
var pathtoroot = "../../../../../../";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flex-box">
<header role="banner" class="flex-header">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="top-nav" id="navbar-top">
<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div>
<ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
<li><a href="../../../../../module-summary.html">Module</a></li>
<li class="nav-bar-cell1-rev">Package</li>
<li>Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../../help-doc.html#package">Help</a></li>
</ul>
</div>
<div class="sub-nav">
<div>
<ul class="sub-nav-list">
<li>Package:&nbsp;</li>
<li><a href="#package-description">Description</a>&nbsp;|&nbsp;</li>
<li><a href="#related-package-summary">Related Packages</a>&nbsp;|&nbsp;</li>
<li><a href="#class-summary">Classes and Interfaces</a></li>
</ul>
</div>
<div class="nav-list-search"><label for="search-input">SEARCH:</label>
<input type="text" id="search-input" value="search" disabled="disabled">
<input type="reset" id="reset-button" value="reset" disabled="disabled">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip-navbar-top"></span></nav>
</header>
<div class="flex-content">
<main role="main">
<div class="header">
<div class="sub-title"><span class="module-label-in-package">Module</span>&nbsp;<a href="../../../../../module-summary.html">client</a></div>
<h1 title="Package fr.lnl.game.client.view" class="title">Package fr.lnl.game.client.view</h1>
</div>
<hr>
<div class="package-signature">package <span class="element-name">fr.lnl.game.client.view</span></div>
<section class="package-description" id="package-description">
<div class="block">View package, contains all classes about user view</div>
</section>
<section class="summary">
<ul class="summary-list">
<li>
<div id="related-package-summary">
<div class="caption"><span>Related Packages</span></div>
<div class="summary-table two-column-summary">
<div class="table-header col-first">Package</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color"><a href="../package-summary.html">fr.lnl.game.client</a></div>
<div class="col-last even-row-color">
<div class="block">Client package</div>
</div>
<div class="col-first odd-row-color"><a href="../listener/package-summary.html">fr.lnl.game.client.listener</a></div>
<div class="col-last odd-row-color">
<div class="block">Package that contains every view listeners</div>
</div>
</div>
</div>
</li>
<li>
<div id="class-summary">
<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="class-summary-tab0" role="tab" aria-selected="true" aria-controls="class-summary.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('class-summary', 'class-summary', 2)" class="active-table-tab">All Classes and Interfaces</button><button id="class-summary-tab1" role="tab" aria-selected="false" aria-controls="class-summary.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('class-summary', 'class-summary-tab1', 2)" class="table-tab">Interfaces</button><button id="class-summary-tab2" role="tab" aria-selected="false" aria-controls="class-summary.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('class-summary', 'class-summary-tab2', 2)" class="table-tab">Classes</button></div>
<div id="class-summary.tabpanel" role="tabpanel">
<div class="summary-table two-column-summary" aria-labelledby="class-summary-tab0">
<div class="table-header col-first">Class</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color class-summary class-summary-tab2"><a href="AbstractView.html" title="class in fr.lnl.game.client.view">AbstractView</a></div>
<div class="col-last even-row-color class-summary class-summary-tab2">
<div class="block">Abstract class implemented by every view classes</div>
</div>
<div class="col-first odd-row-color class-summary class-summary-tab2"><a href="Cell.html" title="class in fr.lnl.game.client.view">Cell</a></div>
<div class="col-last odd-row-color class-summary class-summary-tab2">
<div class="block">classe qui a pour but de générer chaque case de la grid et de vérifier les entités présentes dessus
(Mur, Joueur, Energie, Bombe, etc.)</div>
</div>
<div class="col-first even-row-color class-summary class-summary-tab2"><a href="Terminal.html" title="class in fr.lnl.game.client.view">Terminal</a></div>
<div class="col-last even-row-color class-summary class-summary-tab2">
<div class="block">View terminal, use standard input and output</div>
</div>
<div class="col-first odd-row-color class-summary class-summary-tab1"><a href="View.html" title="interface in fr.lnl.game.client.view">View</a></div>
<div class="col-last odd-row-color class-summary class-summary-tab1">
<div class="block">View interface, implemented by Terminal and Window.</div>
</div>
<div class="col-first even-row-color class-summary class-summary-tab2"><a href="ViewManager.html" title="class in fr.lnl.game.client.view">ViewManager</a></div>
<div class="col-last even-row-color class-summary class-summary-tab2">
<div class="block">View manager, main access to every views</div>
</div>
<div class="col-first odd-row-color class-summary class-summary-tab2"><a href="Window.html" title="class in fr.lnl.game.client.view">Window</a></div>
<div class="col-last odd-row-color class-summary class-summary-tab2">
<div class="block">Window view, use mouse and keyboard to control interface</div>
</div>
</div>
</div>
</div>
</li>
</ul>
</section>
</main>
</div>
</div>
</body>
</html>

View File

@ -0,0 +1,95 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
<title>fr.lnl.game.client.view Class Hierarchy (client API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="description" content="tree: module: client, package: fr.lnl.game.client.view">
<meta name="generator" content="javadoc/PackageTreeWriter">
<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../../script-dir/jquery-ui.min.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../../jquery-ui.overrides.css" title="Style">
<script type="text/javascript" src="../../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../../script-dir/jquery-3.5.1.min.js"></script>
<script type="text/javascript" src="../../../../../../script-dir/jquery-ui.min.js"></script>
</head>
<body class="package-tree-page">
<script type="text/javascript">var pathtoroot = "../../../../../../";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flex-box">
<header role="banner" class="flex-header">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="top-nav" id="navbar-top">
<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div>
<ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
<li><a href="../../../../../module-summary.html">Module</a></li>
<li><a href="package-summary.html">Package</a></li>
<li>Class</li>
<li class="nav-bar-cell1-rev">Tree</li>
<li><a href="../../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../../help-doc.html#tree">Help</a></li>
</ul>
</div>
<div class="sub-nav">
<div class="nav-list-search"><label for="search-input">SEARCH:</label>
<input type="text" id="search-input" value="search" disabled="disabled">
<input type="reset" id="reset-button" value="reset" disabled="disabled">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip-navbar-top"></span></nav>
</header>
<div class="flex-content">
<main role="main">
<div class="header">
<h1 class="title">Hierarchy For Package fr.lnl.game.client.view</h1>
<span class="package-hierarchy-label">Package Hierarchies:</span>
<ul class="horizontal">
<li><a href="../../../../../../overview-tree.html">All Packages</a></li>
</ul>
</div>
<section class="hierarchy">
<h2 title="Class Hierarchy">Class Hierarchy</h2>
<ul>
<li class="circle">java.lang.<a href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html" class="type-name-link external-link" title="class or interface in java.lang">Object</a>
<ul>
<li class="circle">fr.lnl.game.client.view.<a href="AbstractView.html" class="type-name-link" title="class in fr.lnl.game.client.view">AbstractView</a> (implements fr.lnl.game.client.view.<a href="View.html" title="interface in fr.lnl.game.client.view">View</a>)
<ul>
<li class="circle">fr.lnl.game.client.view.<a href="Terminal.html" class="type-name-link" title="class in fr.lnl.game.client.view">Terminal</a></li>
<li class="circle">fr.lnl.game.client.view.<a href="Window.html" class="type-name-link" title="class in fr.lnl.game.client.view">Window</a></li>
</ul>
</li>
<li class="circle">javafx.scene.Node (implements javafx.event.EventTarget, javafx.css.Styleable)
<ul>
<li class="circle">javafx.scene.shape.Shape
<ul>
<li class="circle">javafx.scene.shape.Rectangle
<ul>
<li class="circle">fr.lnl.game.client.view.<a href="Cell.html" class="type-name-link" title="class in fr.lnl.game.client.view">Cell</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li class="circle">fr.lnl.game.client.view.<a href="ViewManager.html" class="type-name-link" title="class in fr.lnl.game.client.view">ViewManager</a></li>
</ul>
</li>
</ul>
</section>
<section class="hierarchy">
<h2 title="Interface Hierarchy">Interface Hierarchy</h2>
<ul>
<li class="circle">fr.lnl.game.client.view.<a href="View.html" class="type-name-link" title="interface in fr.lnl.game.client.view">View</a></li>
</ul>
</section>
</main>
</div>
</div>
</body>
</html>

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,84 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
<title>Constant Field Values (client API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="description" content="summary of constants">
<meta name="generator" content="javadoc/ConstantsSummaryWriterImpl">
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="script-dir/jquery-ui.min.css" title="Style">
<link rel="stylesheet" type="text/css" href="jquery-ui.overrides.css" title="Style">
<script type="text/javascript" src="script.js"></script>
<script type="text/javascript" src="script-dir/jquery-3.5.1.min.js"></script>
<script type="text/javascript" src="script-dir/jquery-ui.min.js"></script>
</head>
<body class="constants-summary-page">
<script type="text/javascript">var pathtoroot = "./";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flex-box">
<header role="banner" class="flex-header">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="top-nav" id="navbar-top">
<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div>
<ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
<li><a href="client/module-summary.html">Module</a></li>
<li>Package</li>
<li>Class</li>
<li><a href="overview-tree.html">Tree</a></li>
<li><a href="index-all.html">Index</a></li>
<li><a href="help-doc.html#constant-values">Help</a></li>
</ul>
</div>
<div class="sub-nav">
<div class="nav-list-search"><label for="search-input">SEARCH:</label>
<input type="text" id="search-input" value="search" disabled="disabled">
<input type="reset" id="reset-button" value="reset" disabled="disabled">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip-navbar-top"></span></nav>
</header>
<div class="flex-content">
<main role="main">
<div class="header">
<h1 title="Constant Field Values" class="title">Constant Field Values</h1>
<section class="packages">
<h2 title="Contents">Contents</h2>
<ul>
<li><a href="#fr.lnl">fr.lnl.*</a></li>
</ul>
</section>
</div>
<section class="constants-summary" id="fr.lnl.game.client.view">
<h2 title="fr.lnl">fr.lnl.*</h2>
<ul class="block-list">
<li>
<div class="caption"><span>fr.lnl.game.client.view.<a href="client/fr/lnl/game/client/view/Window.html" title="class in fr.lnl.game.client.view">Window</a></span></div>
<div class="summary-table three-column-summary">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Constant Field</div>
<div class="table-header col-last">Value</div>
<div class="col-first even-row-color"><code id="fr.lnl.game.client.view.Window.cellSize">public&nbsp;static&nbsp;final&nbsp;int</code></div>
<div class="col-second even-row-color"><code><a href="client/fr/lnl/game/client/view/Window.html#cellSize">cellSize</a></code></div>
<div class="col-last even-row-color"><code>40</code></div>
<div class="col-first odd-row-color"><code id="fr.lnl.game.client.view.Window.height">public&nbsp;static&nbsp;final&nbsp;int</code></div>
<div class="col-second odd-row-color"><code><a href="client/fr/lnl/game/client/view/Window.html#height">height</a></code></div>
<div class="col-last odd-row-color"><code>160</code></div>
<div class="col-first even-row-color"><code id="fr.lnl.game.client.view.Window.width">public&nbsp;static&nbsp;final&nbsp;int</code></div>
<div class="col-second even-row-color"><code><a href="client/fr/lnl/game/client/view/Window.html#width">width</a></code></div>
<div class="col-last even-row-color"><code>500</code></div>
</div>
</li>
</ul>
</section>
</main>
</div>
</div>
</body>
</html>

View File

@ -0,0 +1,4 @@
module:client
fr.lnl.game.client
fr.lnl.game.client.listener
fr.lnl.game.client.view

View File

@ -0,0 +1,185 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
<title>API Help (client API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="description" content="help">
<meta name="generator" content="javadoc/HelpWriter">
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="script-dir/jquery-ui.min.css" title="Style">
<link rel="stylesheet" type="text/css" href="jquery-ui.overrides.css" title="Style">
<script type="text/javascript" src="script.js"></script>
<script type="text/javascript" src="script-dir/jquery-3.5.1.min.js"></script>
<script type="text/javascript" src="script-dir/jquery-ui.min.js"></script>
</head>
<body class="help-page">
<script type="text/javascript">var pathtoroot = "./";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flex-box">
<header role="banner" class="flex-header">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="top-nav" id="navbar-top">
<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div>
<ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
<li><a href="client/module-summary.html">Module</a></li>
<li>Package</li>
<li>Class</li>
<li><a href="overview-tree.html">Tree</a></li>
<li><a href="index-all.html">Index</a></li>
<li class="nav-bar-cell1-rev">Help</li>
</ul>
</div>
<div class="sub-nav">
<div>
<ul class="sub-nav-list">
<li>Help:&nbsp;</li>
<li><a href="#help-navigation">Navigation</a>&nbsp;|&nbsp;</li>
<li><a href="#help-pages">Pages</a></li>
</ul>
</div>
<div class="nav-list-search"><label for="search-input">SEARCH:</label>
<input type="text" id="search-input" value="search" disabled="disabled">
<input type="reset" id="reset-button" value="reset" disabled="disabled">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip-navbar-top"></span></nav>
</header>
<div class="flex-content">
<main role="main">
<h1 class="title">JavaDoc Help</h1>
<ul class="help-toc">
<li><a href="#help-navigation">Navigation</a>:
<ul class="help-subtoc">
<li><a href="#help-search">Search</a></li>
</ul>
</li>
<li><a href="#help-pages">Kinds of Pages</a>:
<ul class="help-subtoc">
<li><a href="#module">Module</a></li>
<li><a href="#package">Package</a></li>
<li><a href="#class">Class or Interface</a></li>
<li><a href="#doc-file">Other Files</a></li>
<li><a href="#tree">Tree (Class Hierarchy)</a></li>
<li><a href="#constant-values">Constant Field Values</a></li>
<li><a href="#all-packages">All Packages</a></li>
<li><a href="#all-classes">All Classes and Interfaces</a></li>
<li><a href="#index">Index</a></li>
</ul>
</li>
</ul>
<hr>
<div class="sub-title">
<h2 id="help-navigation">Navigation</h2>
Starting from the <a href="index.html">Overview</a> page, you can browse the documentation using the links in each page, and in the navigation bar at the top of each page. The <a href="index-all.html">Index</a> and Search box allow you to navigate to specific declarations and summary pages, including: <a href="allpackages-index.html">All Packages</a>, <a href="allclasses-index.html">All Classes and Interfaces</a>
<section class="help-section" id="help-search">
<h3>Search</h3>
<p>You can search for definitions of modules, packages, types, fields, methods, system properties and other terms defined in the API, using some or all of the name, optionally using "camelCase" abbreviations. For example:</p>
<ul class="help-section-list">
<li><code>j.l.obj</code> will match "java.lang.Object"</li>
<li><code>InpStr</code> will match "java.io.InputStream"</li>
<li><code>HM.cK</code> will match "java.util.HashMap.containsKey(Object)"</li>
</ul>
<p>Refer to the <a href="https://docs.oracle.com/en/java/javase/17/docs/specs/javadoc/javadoc-search-spec.html">Javadoc Search Specification</a> for a full description of search features.</p>
</section>
</div>
<hr>
<div class="sub-title">
<h2 id="help-pages">Kinds of Pages</h2>
The following sections describe the different kinds of pages in this collection.
<section class="help-section" id="module">
<h3>Module</h3>
<p>Each module has a page that contains a list of its packages, dependencies on other modules, and services, with a summary for each. These pages may contain the following categories:</p>
<ul class="help-section-list">
<li>Packages</li>
<li>Modules</li>
<li>Services</li>
</ul>
</section>
<section class="help-section" id="package">
<h3>Package</h3>
<p>Each package has a page that contains a list of its classes and interfaces, with a summary for each. These pages may contain the following categories:</p>
<ul class="help-section-list">
<li>Interfaces</li>
<li>Classes</li>
<li>Enum Classes</li>
<li>Exceptions</li>
<li>Errors</li>
<li>Annotation Interfaces</li>
</ul>
</section>
<section class="help-section" id="class">
<h3>Class or Interface</h3>
<p>Each class, interface, nested class and nested interface has its own separate page. Each of these pages has three sections consisting of a declaration and description, member summary tables, and detailed member descriptions. Entries in each of these sections are omitted if they are empty or not applicable.</p>
<ul class="help-section-list">
<li>Class Inheritance Diagram</li>
<li>Direct Subclasses</li>
<li>All Known Subinterfaces</li>
<li>All Known Implementing Classes</li>
<li>Class or Interface Declaration</li>
<li>Class or Interface Description</li>
</ul>
<br>
<ul class="help-section-list">
<li>Nested Class Summary</li>
<li>Enum Constant Summary</li>
<li>Field Summary</li>
<li>Property Summary</li>
<li>Constructor Summary</li>
<li>Method Summary</li>
<li>Required Element Summary</li>
<li>Optional Element Summary</li>
</ul>
<br>
<ul class="help-section-list">
<li>Enum Constant Details</li>
<li>Field Details</li>
<li>Property Details</li>
<li>Constructor Details</li>
<li>Method Details</li>
<li>Element Details</li>
</ul>
<p><span class="help-note">Note:</span> Annotation interfaces have required and optional elements, but not methods. Only enum classes have enum constants. The components of a record class are displayed as part of the declaration of the record class. Properties are a feature of JavaFX.</p>
<p>The summary entries are alphabetical, while the detailed descriptions are in the order they appear in the source code. This preserves the logical groupings established by the programmer.</p>
</section>
<section class="help-section" id="doc-file">
<h3>Other Files</h3>
<p>Packages and modules may contain pages with additional information related to the declarations nearby.</p>
</section>
<section class="help-section" id="tree">
<h3>Tree (Class Hierarchy)</h3>
<p>There is a <a href="overview-tree.html">Class Hierarchy</a> page for all packages, plus a hierarchy for each package. Each hierarchy page contains a list of classes and a list of interfaces. Classes are organized by inheritance structure starting with <code>java.lang.Object</code>. Interfaces do not inherit from <code>java.lang.Object</code>.</p>
<ul class="help-section-list">
<li>When viewing the Overview page, clicking on TREE displays the hierarchy for all packages.</li>
<li>When viewing a particular package, class or interface page, clicking on TREE displays the hierarchy for only that package.</li>
</ul>
</section>
<section class="help-section" id="constant-values">
<h3>Constant Field Values</h3>
<p>The <a href="constant-values.html">Constant Field Values</a> page lists the static final fields and their values.</p>
</section>
<section class="help-section" id="all-packages">
<h3>All Packages</h3>
<p>The <a href="allpackages-index.html">All Packages</a> page contains an alphabetic index of all packages contained in the documentation.</p>
</section>
<section class="help-section" id="all-classes">
<h3>All Classes and Interfaces</h3>
<p>The <a href="allclasses-index.html">All Classes and Interfaces</a> page contains an alphabetic index of all classes and interfaces contained in the documentation, including annotation interfaces, enum classes, and record classes.</p>
</section>
<section class="help-section" id="index">
<h3>Index</h3>
<p>The <a href="index-all.html">Index</a> contains an alphabetic index of all classes, interfaces, constructors, methods, and fields in the documentation, as well as summary pages such as <a href="allpackages-index.html">All Packages</a>, <a href="allclasses-index.html">All Classes and Interfaces</a>.</p>
</section>
</div>
<hr>
<span class="help-footnote">This help file applies to API documentation generated by the standard doclet.</span></main>
</div>
</div>
</body>
</html>

View File

@ -0,0 +1,482 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
<title>Index (client API)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="description" content="index">
<meta name="generator" content="javadoc/IndexWriter">
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="script-dir/jquery-ui.min.css" title="Style">
<link rel="stylesheet" type="text/css" href="jquery-ui.overrides.css" title="Style">
<script type="text/javascript" src="script.js"></script>
<script type="text/javascript" src="script-dir/jquery-3.5.1.min.js"></script>
<script type="text/javascript" src="script-dir/jquery-ui.min.js"></script>
</head>
<body class="index-page">
<script type="text/javascript">var pathtoroot = "./";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flex-box">
<header role="banner" class="flex-header">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="top-nav" id="navbar-top">
<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div>
<ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
<li><a href="client/module-summary.html">Module</a></li>
<li>Package</li>
<li>Class</li>
<li><a href="overview-tree.html">Tree</a></li>
<li class="nav-bar-cell1-rev">Index</li>
<li><a href="help-doc.html#index">Help</a></li>
</ul>
</div>
<div class="sub-nav">
<div class="nav-list-search"><label for="search-input">SEARCH:</label>
<input type="text" id="search-input" value="search" disabled="disabled">
<input type="reset" id="reset-button" value="reset" disabled="disabled">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip-navbar-top"></span></nav>
</header>
<div class="flex-content">
<main role="main">
<div class="header">
<h1>Index</h1>
</div>
<a href="#I:A">A</a>&nbsp;<a href="#I:B">B</a>&nbsp;<a href="#I:C">C</a>&nbsp;<a href="#I:D">D</a>&nbsp;<a href="#I:E">E</a>&nbsp;<a href="#I:F">F</a>&nbsp;<a href="#I:G">G</a>&nbsp;<a href="#I:H">H</a>&nbsp;<a href="#I:L">L</a>&nbsp;<a href="#I:M">M</a>&nbsp;<a href="#I:N">N</a>&nbsp;<a href="#I:P">P</a>&nbsp;<a href="#I:R">R</a>&nbsp;<a href="#I:S">S</a>&nbsp;<a href="#I:T">T</a>&nbsp;<a href="#I:U">U</a>&nbsp;<a href="#I:V">V</a>&nbsp;<a href="#I:W">W</a>&nbsp;<br><a href="allclasses-index.html">All&nbsp;Classes&nbsp;and&nbsp;Interfaces</a><span class="vertical-separator">|</span><a href="allpackages-index.html">All&nbsp;Packages</a><span class="vertical-separator">|</span><a href="constant-values.html">Constant&nbsp;Field&nbsp;Values</a>
<h2 class="title" id="I:A">A</h2>
<dl class="index">
<dt><a href="client/fr/lnl/game/client/view/AbstractView.html" class="type-name-link" title="class in fr.lnl.game.client.view">AbstractView</a> - Class in <a href="client/fr/lnl/game/client/view/package-summary.html">fr.lnl.game.client.view</a></dt>
<dd>
<div class="block">Abstract class implemented by every view classes</div>
</dd>
<dt><a href="client/fr/lnl/game/client/view/AbstractView.html#%3Cinit%3E(fr.lnl.game.server.games.Game,fr.lnl.game.server.games.player.Player)" class="member-name-link">AbstractView(Game, Player)</a> - Constructor for class fr.lnl.game.client.view.<a href="client/fr/lnl/game/client/view/AbstractView.html" title="class in fr.lnl.game.client.view">AbstractView</a></dt>
<dd>&nbsp;</dd>
<dt><a href="client/fr/lnl/game/client/listener/SelectDirectionListener.html#action" class="member-name-link">action</a> - Variable in class fr.lnl.game.client.listener.<a href="client/fr/lnl/game/client/listener/SelectDirectionListener.html" title="class in fr.lnl.game.client.listener">SelectDirectionListener</a></dt>
<dd>&nbsp;</dd>
<dt><a href="client/fr/lnl/game/client/view/Window.html#addButtonToPane(java.lang.String,javafx.event.EventHandler,javafx.scene.layout.Pane,int,int)" class="member-name-link">addButtonToPane(String, EventHandler&lt;ActionEvent&gt;, Pane, int, int)</a> - Method in class fr.lnl.game.client.view.<a href="client/fr/lnl/game/client/view/Window.html" title="class in fr.lnl.game.client.view">Window</a></dt>
<dd>
<div class="block">called when we add a button in the interface</div>
</dd>
<dt><a href="client/fr/lnl/game/client/view/Window.html#addToPrincipalPanel(java.lang.Object,javafx.scene.layout.Pane,int,int)" class="member-name-link">addToPrincipalPanel(Object, Pane, int, int)</a> - Method in class fr.lnl.game.client.view.<a href="client/fr/lnl/game/client/view/Window.html" title="class in fr.lnl.game.client.view">Window</a></dt>
<dd>
<div class="block">Add grid element to the principal pane</div>
</dd>
<dt><a href="client/fr/lnl/game/client/App.html" class="type-name-link" title="class in fr.lnl.game.client">App</a> - Class in <a href="client/fr/lnl/game/client/package-summary.html">fr.lnl.game.client</a></dt>
<dd>
<div class="block">Application starting point</div>
</dd>
<dt><a href="client/fr/lnl/game/client/App.html#%3Cinit%3E()" class="member-name-link">App()</a> - Constructor for class fr.lnl.game.client.<a href="client/fr/lnl/game/client/App.html" title="class in fr.lnl.game.client">App</a></dt>
<dd>&nbsp;</dd>
<dt><a href="client/fr/lnl/game/client/App.html#argsList" class="member-name-link">argsList</a> - Static variable in class fr.lnl.game.client.<a href="client/fr/lnl/game/client/App.html" title="class in fr.lnl.game.client">App</a></dt>
<dd>&nbsp;</dd>
</dl>
<h2 class="title" id="I:B">B</h2>
<dl class="index">
<dt><a href="client/fr/lnl/game/client/view/Cell.html#BACKGROUND_IMAGE" class="member-name-link">BACKGROUND_IMAGE</a> - Static variable in class fr.lnl.game.client.view.<a href="client/fr/lnl/game/client/view/Cell.html" title="class in fr.lnl.game.client.view">Cell</a></dt>
<dd>&nbsp;</dd>
<dt><a href="client/fr/lnl/game/client/view/Window.html#bg" class="member-name-link">bg</a> - Static variable in class fr.lnl.game.client.view.<a href="client/fr/lnl/game/client/view/Window.html" title="class in fr.lnl.game.client.view">Window</a></dt>
<dd>&nbsp;</dd>
<dt><a href="client/fr/lnl/game/client/view/Cell.html#BG" class="member-name-link">BG</a> - Static variable in class fr.lnl.game.client.view.<a href="client/fr/lnl/game/client/view/Cell.html" title="class in fr.lnl.game.client.view">Cell</a></dt>
<dd>&nbsp;</dd>
<dt><a href="client/fr/lnl/game/client/view/Cell.html#BOMB_IMAGE" class="member-name-link">BOMB_IMAGE</a> - Static variable in class fr.lnl.game.client.view.<a href="client/fr/lnl/game/client/view/Cell.html" title="class in fr.lnl.game.client.view">Cell</a></dt>
<dd>&nbsp;</dd>
<dt><a href="client/fr/lnl/game/client/view/Window.html#buttonPane" class="member-name-link">buttonPane</a> - Variable in class fr.lnl.game.client.view.<a href="client/fr/lnl/game/client/view/Window.html" title="class in fr.lnl.game.client.view">Window</a></dt>
<dd>&nbsp;</dd>
</dl>
<h2 class="title" id="I:C">C</h2>
<dl class="index">
<dt><a href="client/fr/lnl/game/client/view/Cell.html" class="type-name-link" title="class in fr.lnl.game.client.view">Cell</a> - Class in <a href="client/fr/lnl/game/client/view/package-summary.html">fr.lnl.game.client.view</a></dt>
<dd>
<div class="block">classe qui a pour but de générer chaque case de la grid et de vérifier les entités présentes dessus
(Mur, Joueur, Energie, Bombe, etc.)</div>
</dd>
<dt><a href="client/fr/lnl/game/client/view/Cell.html#%3Cinit%3E(int,int)" class="member-name-link">Cell(int, int)</a> - Constructor for class fr.lnl.game.client.view.<a href="client/fr/lnl/game/client/view/Cell.html" title="class in fr.lnl.game.client.view">Cell</a></dt>
<dd>&nbsp;</dd>
<dt><a href="client/fr/lnl/game/client/view/Window.html#cellSize" class="member-name-link">cellSize</a> - Static variable in class fr.lnl.game.client.view.<a href="client/fr/lnl/game/client/view/Window.html" title="class in fr.lnl.game.client.view">Window</a></dt>
<dd>&nbsp;</dd>
<dt><a href="client/fr/lnl/game/client/view/Terminal.html#choseAction()" class="member-name-link">choseAction()</a> - Method in class fr.lnl.game.client.view.<a href="client/fr/lnl/game/client/view/Terminal.html" title="class in fr.lnl.game.client.view">Terminal</a></dt>
<dd>
<div class="block">Used when current player is an instance of <code>HumanPlayer</code> and demand to it
an action to do</div>
</dd>
<dt><a href="client/fr/lnl/game/client/view/Window.html#choseDirectionAction(fr.lnl.game.server.games.action.ReunionSameAction)" class="member-name-link">choseDirectionAction(ReunionSameAction)</a> - Method in class fr.lnl.game.client.view.<a href="client/fr/lnl/game/client/view/Window.html" title="class in fr.lnl.game.client.view">Window</a></dt>
<dd>
<div class="block">Choose a direction between all possible from the previously selected action type</div>
</dd>
<dt><a href="client/fr/lnl/game/client/view/Terminal.html#choseReunionSameAction(java.util.List)" class="member-name-link">choseReunionSameAction(List&lt;ReunionSameAction&gt;)</a> - Method in class fr.lnl.game.client.view.<a href="client/fr/lnl/game/client/view/Terminal.html" title="class in fr.lnl.game.client.view">Terminal</a></dt>
<dd>
<div class="block">Used when current player is an instance of <code>HumanPlayer</code> and demand to it
a type of action to do</div>
</dd>
<dt><a href="client/fr/lnl/game/client/view/Window.html#choseReunionSameAction(java.util.List)" class="member-name-link">choseReunionSameAction(List&lt;ReunionSameAction&gt;)</a> - Method in class fr.lnl.game.client.view.<a href="client/fr/lnl/game/client/view/Window.html" title="class in fr.lnl.game.client.view">Window</a></dt>
<dd>
<div class="block">Used when <code>Game.getCurrentPlayer()</code> is an instance of <code>HumanPlayer</code>.</div>
</dd>
<dt><a href="client/module-summary.html">client</a> - module client</dt>
<dd>
<div class="block">Client module, include every view and controller classes from MVC model</div>
</dd>
<dt><a href="client/fr/lnl/game/client/listener/ClientEventHandler.html" class="type-name-link" title="class in fr.lnl.game.client.listener">ClientEventHandler</a> - Record Class in <a href="client/fr/lnl/game/client/listener/package-summary.html">fr.lnl.game.client.listener</a></dt>
<dd>
<div class="block">implementation of a listener from JavaFX <code>EventHandler</code></div>
</dd>
<dt><a href="client/fr/lnl/game/client/listener/ClientEventHandler.html#%3Cinit%3E(fr.lnl.game.server.listener.ModelListener)" class="member-name-link">ClientEventHandler(ModelListener)</a> - Constructor for record class fr.lnl.game.client.listener.<a href="client/fr/lnl/game/client/listener/ClientEventHandler.html" title="class in fr.lnl.game.client.listener">ClientEventHandler</a></dt>
<dd>
<div class="block">Creates an instance of a <code>ClientEventHandler</code> record class.</div>
</dd>
<dt><a href="client/fr/lnl/game/client/ClientPlayer.html" class="type-name-link" title="class in fr.lnl.game.client">ClientPlayer</a> - Record Class in <a href="client/fr/lnl/game/client/package-summary.html">fr.lnl.game.client</a></dt>
<dd>
<div class="block">Store a view per player</div>
</dd>
<dt><a href="client/fr/lnl/game/client/ClientPlayer.html#%3Cinit%3E(fr.lnl.game.server.games.player.Player,fr.lnl.game.client.view.View)" class="member-name-link">ClientPlayer(Player, View)</a> - Constructor for record class fr.lnl.game.client.<a href="client/fr/lnl/game/client/ClientPlayer.html" title="class in fr.lnl.game.client">ClientPlayer</a></dt>
<dd>
<div class="block">Creates an instance of a <code>ClientPlayer</code> record class.</div>
</dd>
<dt><a href="client/fr/lnl/game/client/view/Window.html#createContent()" class="member-name-link">createContent()</a> - Method in class fr.lnl.game.client.view.<a href="client/fr/lnl/game/client/view/Window.html" title="class in fr.lnl.game.client.view">Window</a></dt>
<dd>
<div class="block">Create content of the stage</div>
</dd>
<dt><a href="client/fr/lnl/game/client/App.html#createNewPlayer(java.lang.Class,fr.lnl.game.server.games.player.ClassPlayer,int)" class="member-name-link">createNewPlayer(Class&lt;? extends AbstractPlayer&gt;, ClassPlayer, int)</a> - Static method in class fr.lnl.game.client.<a href="client/fr/lnl/game/client/App.html" title="class in fr.lnl.game.client">App</a></dt>
<dd>
<div class="block">create a new instance of the player</div>
</dd>
<dt><a href="client/fr/lnl/game/client/ViewLambda.html#createViewLambda(fr.lnl.game.server.games.player.Player)" class="member-name-link">createViewLambda(Player)</a> - Method in interface fr.lnl.game.client.<a href="client/fr/lnl/game/client/ViewLambda.html" title="interface in fr.lnl.game.client">ViewLambda</a></dt>
<dd>
<div class="block">A lambda create an anonymous class which implements this interface</div>
</dd>
</dl>
<h2 class="title" id="I:D">D</h2>
<dl class="index">
<dt><a href="client/fr/lnl/game/client/view/Window.html#dark" class="member-name-link">dark</a> - Static variable in class fr.lnl.game.client.view.<a href="client/fr/lnl/game/client/view/Window.html" title="class in fr.lnl.game.client.view">Window</a></dt>
<dd>&nbsp;</dd>
<dt><a href="client/fr/lnl/game/client/view/Terminal.html#displayWinner(fr.lnl.game.server.games.player.Player)" class="member-name-link">displayWinner(Player)</a> - Method in class fr.lnl.game.client.view.<a href="client/fr/lnl/game/client/view/Terminal.html" title="class in fr.lnl.game.client.view">Terminal</a></dt>
<dd>
<div class="block">Used to display the winner of the game</div>
</dd>
<dt><a href="client/fr/lnl/game/client/view/View.html#displayWinner(fr.lnl.game.server.games.player.Player)" class="member-name-link">displayWinner(Player)</a> - Method in interface fr.lnl.game.client.view.<a href="client/fr/lnl/game/client/view/View.html" title="interface in fr.lnl.game.client.view">View</a></dt>
<dd>
<div class="block">Used to display the name of the winner</div>
</dd>
<dt><a href="client/fr/lnl/game/client/view/ViewManager.html#displayWinner(fr.lnl.game.server.games.player.Player)" class="member-name-link">displayWinner(Player)</a> - Method in class fr.lnl.game.client.view.<a href="client/fr/lnl/game/client/view/ViewManager.html" title="class in fr.lnl.game.client.view">ViewManager</a></dt>
<dd>
<div class="block">This method is call when the game is finish</div>
</dd>
<dt><a href="client/fr/lnl/game/client/view/Window.html#displayWinner(fr.lnl.game.server.games.player.Player)" class="member-name-link">displayWinner(Player)</a> - Method in class fr.lnl.game.client.view.<a href="client/fr/lnl/game/client/view/Window.html" title="class in fr.lnl.game.client.view">Window</a></dt>
<dd>
<div class="block">Used to display the name of the winner</div>
</dd>
<dt><a href="client/fr/lnl/game/client/listener/NextPlayerButtonListener.html#displayWinnerEvent" class="member-name-link">displayWinnerEvent</a> - Variable in class fr.lnl.game.client.listener.<a href="client/fr/lnl/game/client/listener/NextPlayerButtonListener.html" title="class in fr.lnl.game.client.listener">NextPlayerButtonListener</a></dt>
<dd>&nbsp;</dd>
<dt><a href="client/fr/lnl/game/client/listener/DisplayWinnerEvent.html" class="type-name-link" title="class in fr.lnl.game.client.listener">DisplayWinnerEvent</a> - Class in <a href="client/fr/lnl/game/client/listener/package-summary.html">fr.lnl.game.client.listener</a></dt>
<dd>
<div class="block">Used to display the winner of the game</div>
</dd>
<dt><a href="client/fr/lnl/game/client/listener/DisplayWinnerEvent.html#%3Cinit%3E()" class="member-name-link">DisplayWinnerEvent()</a> - Constructor for class fr.lnl.game.client.listener.<a href="client/fr/lnl/game/client/listener/DisplayWinnerEvent.html" title="class in fr.lnl.game.client.listener">DisplayWinnerEvent</a></dt>
<dd>&nbsp;</dd>
</dl>
<h2 class="title" id="I:E">E</h2>
<dl class="index">
<dt><a href="client/fr/lnl/game/client/view/Cell.html#ENERGY_BALL_IMAGE" class="member-name-link">ENERGY_BALL_IMAGE</a> - Static variable in class fr.lnl.game.client.view.<a href="client/fr/lnl/game/client/view/Cell.html" title="class in fr.lnl.game.client.view">Cell</a></dt>
<dd>&nbsp;</dd>
<dt><a href="client/fr/lnl/game/client/ClientPlayer.html#equals(java.lang.Object)" class="member-name-link">equals(Object)</a> - Method in record class fr.lnl.game.client.<a href="client/fr/lnl/game/client/ClientPlayer.html" title="class in fr.lnl.game.client">ClientPlayer</a></dt>
<dd>
<div class="block">Indicates whether some other object is "equal to" this one.</div>
</dd>
<dt><a href="client/fr/lnl/game/client/listener/ClientEventHandler.html#equals(java.lang.Object)" class="member-name-link">equals(Object)</a> - Method in record class fr.lnl.game.client.listener.<a href="client/fr/lnl/game/client/listener/ClientEventHandler.html" title="class in fr.lnl.game.client.listener">ClientEventHandler</a></dt>
<dd>
<div class="block">Indicates whether some other object is "equal to" this one.</div>
</dd>
</dl>
<h2 class="title" id="I:F">F</h2>
<dl class="index">
<dt><a href="client/fr/lnl/game/client/package-summary.html">fr.lnl.game.client</a> - package fr.lnl.game.client</dt>
<dd>
<div class="block">Client package</div>
</dd>
<dt><a href="client/fr/lnl/game/client/listener/package-summary.html">fr.lnl.game.client.listener</a> - package fr.lnl.game.client.listener</dt>
<dd>
<div class="block">Package that contains every view listeners</div>
</dd>
<dt><a href="client/fr/lnl/game/client/view/package-summary.html">fr.lnl.game.client.view</a> - package fr.lnl.game.client.view</dt>
<dd>
<div class="block">View package, contains all classes about user view</div>
</dd>
</dl>
<h2 class="title" id="I:G">G</h2>
<dl class="index">
<dt><a href="client/fr/lnl/game/client/App.html#game" class="member-name-link">game</a> - Static variable in class fr.lnl.game.client.<a href="client/fr/lnl/game/client/App.html" title="class in fr.lnl.game.client">App</a></dt>
<dd>&nbsp;</dd>
<dt><a href="client/fr/lnl/game/client/listener/NextPlayerButtonListener.html#game" class="member-name-link">game</a> - Variable in class fr.lnl.game.client.listener.<a href="client/fr/lnl/game/client/listener/NextPlayerButtonListener.html" title="class in fr.lnl.game.client.listener">NextPlayerButtonListener</a></dt>
<dd>&nbsp;</dd>
<dt><a href="client/fr/lnl/game/client/listener/SelectActionButton.html#game" class="member-name-link">game</a> - Variable in class fr.lnl.game.client.listener.<a href="client/fr/lnl/game/client/listener/SelectActionButton.html" title="class in fr.lnl.game.client.listener">SelectActionButton</a></dt>
<dd>&nbsp;</dd>
<dt><a href="client/fr/lnl/game/client/listener/SelectDirectionListener.html#game" class="member-name-link">game</a> - Variable in class fr.lnl.game.client.listener.<a href="client/fr/lnl/game/client/listener/SelectDirectionListener.html" title="class in fr.lnl.game.client.listener">SelectDirectionListener</a></dt>
<dd>&nbsp;</dd>
<dt><a href="client/fr/lnl/game/client/view/AbstractView.html#game" class="member-name-link">game</a> - Variable in class fr.lnl.game.client.view.<a href="client/fr/lnl/game/client/view/AbstractView.html" title="class in fr.lnl.game.client.view">AbstractView</a></dt>
<dd>&nbsp;</dd>
<dt><a href="client/fr/lnl/game/client/view/ViewManager.html#game" class="member-name-link">game</a> - Variable in class fr.lnl.game.client.view.<a href="client/fr/lnl/game/client/view/ViewManager.html" title="class in fr.lnl.game.client.view">ViewManager</a></dt>
<dd>&nbsp;</dd>
<dt><a href="client/fr/lnl/game/client/App.html#getGame()" class="member-name-link">getGame()</a> - Static method in class fr.lnl.game.client.<a href="client/fr/lnl/game/client/App.html" title="class in fr.lnl.game.client">App</a></dt>
<dd>&nbsp;</dd>
<dt><a href="client/fr/lnl/game/client/view/Window.html#getNextPlayerButtonListener()" class="member-name-link">getNextPlayerButtonListener()</a> - Method in class fr.lnl.game.client.view.<a href="client/fr/lnl/game/client/view/Window.html" title="class in fr.lnl.game.client.view">Window</a></dt>
<dd>&nbsp;</dd>
<dt><a href="client/fr/lnl/game/client/view/Cell.html#getPlayerImage()" class="member-name-link">getPlayerImage()</a> - Static method in class fr.lnl.game.client.view.<a href="client/fr/lnl/game/client/view/Cell.html" title="class in fr.lnl.game.client.view">Cell</a></dt>
<dd>&nbsp;</dd>
<dt><a href="client/fr/lnl/game/client/ClientPlayer.html#getServerPlayer()" class="member-name-link">getServerPlayer()</a> - Method in record class fr.lnl.game.client.<a href="client/fr/lnl/game/client/ClientPlayer.html" title="class in fr.lnl.game.client">ClientPlayer</a></dt>
<dd>&nbsp;</dd>
<dt><a href="client/fr/lnl/game/client/ClientPlayer.html#getView()" class="member-name-link">getView()</a> - Method in record class fr.lnl.game.client.<a href="client/fr/lnl/game/client/ClientPlayer.html" title="class in fr.lnl.game.client">ClientPlayer</a></dt>
<dd>&nbsp;</dd>
<dt><a href="client/fr/lnl/game/client/App.html#getViewManager()" class="member-name-link">getViewManager()</a> - Static method in class fr.lnl.game.client.<a href="client/fr/lnl/game/client/App.html" title="class in fr.lnl.game.client">App</a></dt>
<dd>&nbsp;</dd>
</dl>
<h2 class="title" id="I:H">H</h2>
<dl class="index">
<dt><a href="client/fr/lnl/game/client/listener/ClientEventHandler.html#handle(javafx.event.ActionEvent)" class="member-name-link">handle(ActionEvent)</a> - Method in record class fr.lnl.game.client.listener.<a href="client/fr/lnl/game/client/listener/ClientEventHandler.html" title="class in fr.lnl.game.client.listener">ClientEventHandler</a></dt>
<dd>
<div class="block">This method is call by JavaFX when we click to the button</div>
</dd>
<dt><a href="client/fr/lnl/game/client/ClientPlayer.html#hashCode()" class="member-name-link">hashCode()</a> - Method in record class fr.lnl.game.client.<a href="client/fr/lnl/game/client/ClientPlayer.html" title="class in fr.lnl.game.client">ClientPlayer</a></dt>
<dd>
<div class="block">Returns a hash code value for this object.</div>
</dd>
<dt><a href="client/fr/lnl/game/client/listener/ClientEventHandler.html#hashCode()" class="member-name-link">hashCode()</a> - Method in record class fr.lnl.game.client.listener.<a href="client/fr/lnl/game/client/listener/ClientEventHandler.html" title="class in fr.lnl.game.client.listener">ClientEventHandler</a></dt>
<dd>
<div class="block">Returns a hash code value for this object.</div>
</dd>
<dt><a href="client/fr/lnl/game/client/view/Window.html#height" class="member-name-link">height</a> - Static variable in class fr.lnl.game.client.view.<a href="client/fr/lnl/game/client/view/Window.html" title="class in fr.lnl.game.client.view">Window</a></dt>
<dd>&nbsp;</dd>
</dl>
<h2 class="title" id="I:L">L</h2>
<dl class="index">
<dt><a href="client/fr/lnl/game/client/App.html#launchTerminal()" class="member-name-link">launchTerminal()</a> - Static method in class fr.lnl.game.client.<a href="client/fr/lnl/game/client/App.html" title="class in fr.lnl.game.client">App</a></dt>
<dd>&nbsp;</dd>
<dt><a href="client/fr/lnl/game/client/listener/ClientEventHandler.html#listener" class="member-name-link">listener</a> - Variable in record class fr.lnl.game.client.listener.<a href="client/fr/lnl/game/client/listener/ClientEventHandler.html" title="class in fr.lnl.game.client.listener">ClientEventHandler</a></dt>
<dd>
<div class="block">The field for the <code>listener</code> record component.</div>
</dd>
<dt><a href="client/fr/lnl/game/client/listener/ClientEventHandler.html#listener()" class="member-name-link">listener()</a> - Method in record class fr.lnl.game.client.listener.<a href="client/fr/lnl/game/client/listener/ClientEventHandler.html" title="class in fr.lnl.game.client.listener">ClientEventHandler</a></dt>
<dd>
<div class="block">Returns the value of the <code>listener</code> record component.</div>
</dd>
</dl>
<h2 class="title" id="I:M">M</h2>
<dl class="index">
<dt><a href="client/fr/lnl/game/client/App.html#main(java.lang.String%5B%5D)" class="member-name-link">main(String[])</a> - Static method in class fr.lnl.game.client.<a href="client/fr/lnl/game/client/App.html" title="class in fr.lnl.game.client">App</a></dt>
<dd>&nbsp;</dd>
<dt><a href="client/fr/lnl/game/client/view/Cell.html#MINE_IMAGE" class="member-name-link">MINE_IMAGE</a> - Static variable in class fr.lnl.game.client.view.<a href="client/fr/lnl/game/client/view/Cell.html" title="class in fr.lnl.game.client.view">Cell</a></dt>
<dd>&nbsp;</dd>
</dl>
<h2 class="title" id="I:N">N</h2>
<dl class="index">
<dt><a href="client/fr/lnl/game/client/view/Window.html#nextPlayerButtonListener" class="member-name-link">nextPlayerButtonListener</a> - Variable in class fr.lnl.game.client.view.<a href="client/fr/lnl/game/client/view/Window.html" title="class in fr.lnl.game.client.view">Window</a></dt>
<dd>&nbsp;</dd>
<dt><a href="client/fr/lnl/game/client/listener/NextPlayerButtonListener.html" class="type-name-link" title="class in fr.lnl.game.client.listener">NextPlayerButtonListener</a> - Class in <a href="client/fr/lnl/game/client/listener/package-summary.html">fr.lnl.game.client.listener</a></dt>
<dd>
<div class="block">This method is call when the current player have selected an action to play (or if it's a computer player, will
select it), then we call <code>Game.play()</code> and we update the view</div>
</dd>
<dt><a href="client/fr/lnl/game/client/listener/NextPlayerButtonListener.html#%3Cinit%3E(fr.lnl.game.server.games.Game)" class="member-name-link">NextPlayerButtonListener(Game)</a> - Constructor for class fr.lnl.game.client.listener.<a href="client/fr/lnl/game/client/listener/NextPlayerButtonListener.html" title="class in fr.lnl.game.client.listener">NextPlayerButtonListener</a></dt>
<dd>&nbsp;</dd>
</dl>
<h2 class="title" id="I:P">P</h2>
<dl class="index">
<dt><a href="client/fr/lnl/game/client/App.html#parsePlayers()" class="member-name-link">parsePlayers()</a> - Static method in class fr.lnl.game.client.<a href="client/fr/lnl/game/client/App.html" title="class in fr.lnl.game.client">App</a></dt>
<dd>
<div class="block">Parse players arguments and create instances for each player</div>
</dd>
<dt><a href="client/fr/lnl/game/client/App.html#parseView()" class="member-name-link">parseView()</a> - Static method in class fr.lnl.game.client.<a href="client/fr/lnl/game/client/App.html" title="class in fr.lnl.game.client">App</a></dt>
<dd>
<div class="block">Parse the first argument given by user to know the view to use (Terminal or Window)</div>
</dd>
<dt><a href="client/fr/lnl/game/client/view/AbstractView.html#player" class="member-name-link">player</a> - Variable in class fr.lnl.game.client.view.<a href="client/fr/lnl/game/client/view/AbstractView.html" title="class in fr.lnl.game.client.view">AbstractView</a></dt>
<dd>&nbsp;</dd>
<dt><a href="client/fr/lnl/game/client/view/Cell.html#PLAYER_IMAGE" class="member-name-link">PLAYER_IMAGE</a> - Static variable in class fr.lnl.game.client.view.<a href="client/fr/lnl/game/client/view/Cell.html" title="class in fr.lnl.game.client.view">Cell</a></dt>
<dd>&nbsp;</dd>
<dt><a href="client/fr/lnl/game/client/view/Cell.html#PLAYER_SHIELD_IMAGE" class="member-name-link">PLAYER_SHIELD_IMAGE</a> - Static variable in class fr.lnl.game.client.view.<a href="client/fr/lnl/game/client/view/Cell.html" title="class in fr.lnl.game.client.view">Cell</a></dt>
<dd>&nbsp;</dd>
<dt><a href="client/fr/lnl/game/client/view/Cell.html#PLAYER_SHOT_IMAGE" class="member-name-link">PLAYER_SHOT_IMAGE</a> - Static variable in class fr.lnl.game.client.view.<a href="client/fr/lnl/game/client/view/Cell.html" title="class in fr.lnl.game.client.view">Cell</a></dt>
<dd>&nbsp;</dd>
<dt><a href="client/fr/lnl/game/client/view/ViewManager.html#players" class="member-name-link">players</a> - Variable in class fr.lnl.game.client.view.<a href="client/fr/lnl/game/client/view/ViewManager.html" title="class in fr.lnl.game.client.view">ViewManager</a></dt>
<dd>&nbsp;</dd>
<dt><a href="client/fr/lnl/game/client/view/Window.html#putMoveTextPane(javafx.scene.layout.Pane)" class="member-name-link">putMoveTextPane(Pane)</a> - Method in class fr.lnl.game.client.view.<a href="client/fr/lnl/game/client/view/Window.html" title="class in fr.lnl.game.client.view">Window</a></dt>
<dd>
<div class="block">build left down pane and move it to its position</div>
</dd>
<dt><a href="client/fr/lnl/game/client/view/Window.html#putStatePlayerPane(javafx.scene.layout.Pane)" class="member-name-link">putStatePlayerPane(Pane)</a> - Method in class fr.lnl.game.client.view.<a href="client/fr/lnl/game/client/view/Window.html" title="class in fr.lnl.game.client.view">Window</a></dt>
<dd>
<div class="block">Create the right pane</div>
</dd>
</dl>
<h2 class="title" id="I:R">R</h2>
<dl class="index">
<dt><a href="client/fr/lnl/game/client/listener/SelectActionButton.html#reunionSameAction" class="member-name-link">reunionSameAction</a> - Variable in class fr.lnl.game.client.listener.<a href="client/fr/lnl/game/client/listener/SelectActionButton.html" title="class in fr.lnl.game.client.listener">SelectActionButton</a></dt>
<dd>&nbsp;</dd>
<dt><a href="client/fr/lnl/game/client/view/ViewManager.html#run()" class="member-name-link">run()</a> - Method in class fr.lnl.game.client.view.<a href="client/fr/lnl/game/client/view/ViewManager.html" title="class in fr.lnl.game.client.view">ViewManager</a></dt>
<dd>
<div class="block">This method is call after initialized view manager to display a first screen</div>
</dd>
</dl>
<h2 class="title" id="I:S">S</h2>
<dl class="index">
<dt><a href="client/fr/lnl/game/client/view/Terminal.html#scanner" class="member-name-link">scanner</a> - Static variable in class fr.lnl.game.client.view.<a href="client/fr/lnl/game/client/view/Terminal.html" title="class in fr.lnl.game.client.view">Terminal</a></dt>
<dd>
<div class="block">Standard input</div>
</dd>
<dt><a href="client/fr/lnl/game/client/listener/SelectActionButton.html" class="type-name-link" title="class in fr.lnl.game.client.listener">SelectActionButton</a> - Class in <a href="client/fr/lnl/game/client/listener/package-summary.html">fr.lnl.game.client.listener</a></dt>
<dd>
<div class="block">Used when the human player select type of action it want to play</div>
</dd>
<dt><a href="client/fr/lnl/game/client/listener/SelectActionButton.html#%3Cinit%3E(fr.lnl.game.server.games.Game,fr.lnl.game.client.view.Window,fr.lnl.game.server.games.action.ReunionSameAction)" class="member-name-link">SelectActionButton(Game, Window, ReunionSameAction)</a> - Constructor for class fr.lnl.game.client.listener.<a href="client/fr/lnl/game/client/listener/SelectActionButton.html" title="class in fr.lnl.game.client.listener">SelectActionButton</a></dt>
<dd>&nbsp;</dd>
<dt><a href="client/fr/lnl/game/client/listener/SelectDirectionListener.html" class="type-name-link" title="class in fr.lnl.game.client.listener">SelectDirectionListener</a> - Class in <a href="client/fr/lnl/game/client/listener/package-summary.html">fr.lnl.game.client.listener</a></dt>
<dd>
<div class="block">Call when the player selected the direction where it wants to play it</div>
</dd>
<dt><a href="client/fr/lnl/game/client/listener/SelectDirectionListener.html#%3Cinit%3E(fr.lnl.game.server.games.Game,fr.lnl.game.client.view.Window,fr.lnl.game.server.games.action.Action)" class="member-name-link">SelectDirectionListener(Game, Window, Action)</a> - Constructor for class fr.lnl.game.client.listener.<a href="client/fr/lnl/game/client/listener/SelectDirectionListener.html" title="class in fr.lnl.game.client.listener">SelectDirectionListener</a></dt>
<dd>&nbsp;</dd>
<dt><a href="client/fr/lnl/game/client/view/Window.html#selectedReunionAction" class="member-name-link">selectedReunionAction</a> - Variable in class fr.lnl.game.client.view.<a href="client/fr/lnl/game/client/view/Window.html" title="class in fr.lnl.game.client.view">Window</a></dt>
<dd>&nbsp;</dd>
<dt><a href="client/fr/lnl/game/client/ClientPlayer.html#serverPlayer" class="member-name-link">serverPlayer</a> - Variable in record class fr.lnl.game.client.<a href="client/fr/lnl/game/client/ClientPlayer.html" title="class in fr.lnl.game.client">ClientPlayer</a></dt>
<dd>
<div class="block">The field for the <code>serverPlayer</code> record component.</div>
</dd>
<dt><a href="client/fr/lnl/game/client/ClientPlayer.html#serverPlayer()" class="member-name-link">serverPlayer()</a> - Method in record class fr.lnl.game.client.<a href="client/fr/lnl/game/client/ClientPlayer.html" title="class in fr.lnl.game.client">ClientPlayer</a></dt>
<dd>
<div class="block">Returns the value of the <code>serverPlayer</code> record component.</div>
</dd>
<dt><a href="client/fr/lnl/game/client/view/Cell.html#setImageObject(java.lang.Object,fr.lnl.game.server.games.Game)" class="member-name-link">setImageObject(Object, Game)</a> - Static method in class fr.lnl.game.client.view.<a href="client/fr/lnl/game/client/view/Cell.html" title="class in fr.lnl.game.client.view">Cell</a></dt>
<dd>&nbsp;</dd>
<dt><a href="client/fr/lnl/game/client/view/Window.html#setSelectedReunionAction(fr.lnl.game.server.games.action.ReunionSameAction)" class="member-name-link">setSelectedReunionAction(ReunionSameAction)</a> - Method in class fr.lnl.game.client.view.<a href="client/fr/lnl/game/client/view/Window.html" title="class in fr.lnl.game.client.view">Window</a></dt>
<dd>&nbsp;</dd>
<dt><a href="client/fr/lnl/game/client/view/Terminal.html#show()" class="member-name-link">show()</a> - Method in class fr.lnl.game.client.view.<a href="client/fr/lnl/game/client/view/Terminal.html" title="class in fr.lnl.game.client.view">Terminal</a></dt>
<dd>
<div class="block">Used to update view</div>
</dd>
<dt><a href="client/fr/lnl/game/client/view/View.html#show()" class="member-name-link">show()</a> - Method in interface fr.lnl.game.client.view.<a href="client/fr/lnl/game/client/view/View.html" title="interface in fr.lnl.game.client.view">View</a></dt>
<dd>
<div class="block">used to update screen</div>
</dd>
<dt><a href="client/fr/lnl/game/client/view/Window.html#show()" class="member-name-link">show()</a> - Method in class fr.lnl.game.client.view.<a href="client/fr/lnl/game/client/view/Window.html" title="class in fr.lnl.game.client.view">Window</a></dt>
<dd>
<div class="block">used to update screen</div>
</dd>
<dt><a href="client/fr/lnl/game/client/view/Window.html#showMoveText()" class="member-name-link">showMoveText()</a> - Method in class fr.lnl.game.client.view.<a href="client/fr/lnl/game/client/view/Window.html" title="class in fr.lnl.game.client.view">Window</a></dt>
<dd>
<div class="block">Build the left down pane (contains current player information)</div>
</dd>
<dt><a href="client/fr/lnl/game/client/view/Window.html#showStatePlayer(java.lang.String,int)" class="member-name-link">showStatePlayer(String, int)</a> - Method in class fr.lnl.game.client.view.<a href="client/fr/lnl/game/client/view/Window.html" title="class in fr.lnl.game.client.view">Window</a></dt>
<dd>
<div class="block">Build left down pane (list all players information)</div>
</dd>
<dt><a href="client/fr/lnl/game/client/view/Window.html#stage" class="member-name-link">stage</a> - Variable in class fr.lnl.game.client.view.<a href="client/fr/lnl/game/client/view/Window.html" title="class in fr.lnl.game.client.view">Window</a></dt>
<dd>&nbsp;</dd>
<dt><a href="client/fr/lnl/game/client/App.html#start(javafx.stage.Stage)" class="member-name-link">start(Stage)</a> - Method in class fr.lnl.game.client.<a href="client/fr/lnl/game/client/App.html" title="class in fr.lnl.game.client">App</a></dt>
<dd>&nbsp;</dd>
<dt><a href="client/fr/lnl/game/client/App.html#startGame()" class="member-name-link">startGame()</a> - Static method in class fr.lnl.game.client.<a href="client/fr/lnl/game/client/App.html" title="class in fr.lnl.game.client">App</a></dt>
<dd>
<div class="block">Parse players arguments and create a new instance of Game</div>
</dd>
</dl>
<h2 class="title" id="I:T">T</h2>
<dl class="index">
<dt><a href="client/fr/lnl/game/client/view/Terminal.html" class="type-name-link" title="class in fr.lnl.game.client.view">Terminal</a> - Class in <a href="client/fr/lnl/game/client/view/package-summary.html">fr.lnl.game.client.view</a></dt>
<dd>
<div class="block">View terminal, use standard input and output</div>
</dd>
<dt><a href="client/fr/lnl/game/client/view/Terminal.html#%3Cinit%3E(fr.lnl.game.server.games.Game,fr.lnl.game.server.games.player.Player)" class="member-name-link">Terminal(Game, Player)</a> - Constructor for class fr.lnl.game.client.view.<a href="client/fr/lnl/game/client/view/Terminal.html" title="class in fr.lnl.game.client.view">Terminal</a></dt>
<dd>&nbsp;</dd>
<dt><a href="client/fr/lnl/game/client/view/ViewManager.html#terminalView()" class="member-name-link">terminalView()</a> - Method in class fr.lnl.game.client.view.<a href="client/fr/lnl/game/client/view/ViewManager.html" title="class in fr.lnl.game.client.view">ViewManager</a></dt>
<dd>
<div class="block">This method is call when the view is a terminal</div>
</dd>
<dt><a href="client/fr/lnl/game/client/ClientPlayer.html#toString()" class="member-name-link">toString()</a> - Method in record class fr.lnl.game.client.<a href="client/fr/lnl/game/client/ClientPlayer.html" title="class in fr.lnl.game.client">ClientPlayer</a></dt>
<dd>
<div class="block">Returns a string representation of this record class.</div>
</dd>
<dt><a href="client/fr/lnl/game/client/listener/ClientEventHandler.html#toString()" class="member-name-link">toString()</a> - Method in record class fr.lnl.game.client.listener.<a href="client/fr/lnl/game/client/listener/ClientEventHandler.html" title="class in fr.lnl.game.client.listener">ClientEventHandler</a></dt>
<dd>
<div class="block">Returns a string representation of this record class.</div>
</dd>
</dl>
<h2 class="title" id="I:U">U</h2>
<dl class="index">
<dt><a href="client/fr/lnl/game/client/listener/DisplayWinnerEvent.html#updateModel(java.lang.Object)" class="member-name-link">updateModel(Object)</a> - Method in class fr.lnl.game.client.listener.<a href="client/fr/lnl/game/client/listener/DisplayWinnerEvent.html" title="class in fr.lnl.game.client.listener">DisplayWinnerEvent</a></dt>
<dd>
<div class="block">This method is call when the game is over</div>
</dd>
<dt><a href="client/fr/lnl/game/client/listener/NextPlayerButtonListener.html#updateModel(java.lang.Object)" class="member-name-link">updateModel(Object)</a> - Method in class fr.lnl.game.client.listener.<a href="client/fr/lnl/game/client/listener/NextPlayerButtonListener.html" title="class in fr.lnl.game.client.listener">NextPlayerButtonListener</a></dt>
<dd>
<div class="block">Call when clicking on "SUIVANT" button if current player is a computer player or after the human player selected
action it want to play</div>
</dd>
<dt><a href="client/fr/lnl/game/client/listener/SelectActionButton.html#updateModel(java.lang.Object)" class="member-name-link">updateModel(Object)</a> - Method in class fr.lnl.game.client.listener.<a href="client/fr/lnl/game/client/listener/SelectActionButton.html" title="class in fr.lnl.game.client.listener">SelectActionButton</a></dt>
<dd>
<div class="block">This method is call when the player select the type of action it want to play</div>
</dd>
<dt><a href="client/fr/lnl/game/client/listener/SelectDirectionListener.html#updateModel(java.lang.Object)" class="member-name-link">updateModel(Object)</a> - Method in class fr.lnl.game.client.listener.<a href="client/fr/lnl/game/client/listener/SelectDirectionListener.html" title="class in fr.lnl.game.client.listener">SelectDirectionListener</a></dt>
<dd>
<div class="block">This method is call when the player click on the button to select the direction of the previously selected action</div>
</dd>
<dt><a href="client/fr/lnl/game/client/view/ViewManager.html#updateView()" class="member-name-link">updateView()</a> - Method in class fr.lnl.game.client.view.<a href="client/fr/lnl/game/client/view/ViewManager.html" title="class in fr.lnl.game.client.view">ViewManager</a></dt>
<dd>
<div class="block">Call when we need to change or update view</div>
</dd>
</dl>
<h2 class="title" id="I:V">V</h2>
<dl class="index">
<dt><a href="client/fr/lnl/game/client/ClientPlayer.html#view" class="member-name-link">view</a> - Variable in record class fr.lnl.game.client.<a href="client/fr/lnl/game/client/ClientPlayer.html" title="class in fr.lnl.game.client">ClientPlayer</a></dt>
<dd>
<div class="block">The field for the <code>view</code> record component.</div>
</dd>
<dt><a href="client/fr/lnl/game/client/ClientPlayer.html#view()" class="member-name-link">view()</a> - Method in record class fr.lnl.game.client.<a href="client/fr/lnl/game/client/ClientPlayer.html" title="class in fr.lnl.game.client">ClientPlayer</a></dt>
<dd>
<div class="block">Returns the value of the <code>view</code> record component.</div>
</dd>
<dt><a href="client/fr/lnl/game/client/view/View.html" class="type-name-link" title="interface in fr.lnl.game.client.view">View</a> - Interface in <a href="client/fr/lnl/game/client/view/package-summary.html">fr.lnl.game.client.view</a></dt>
<dd>
<div class="block">View interface, implemented by Terminal and Window.</div>
</dd>
<dt><a href="client/fr/lnl/game/client/ViewLambda.html" class="type-name-link" title="interface in fr.lnl.game.client">ViewLambda</a> - Interface in <a href="client/fr/lnl/game/client/package-summary.html">fr.lnl.game.client</a></dt>
<dd>
<div class="block">Used as Lambda expression to instantiate a <a href="client/fr/lnl/game/client/view/View.html" title="interface in fr.lnl.game.client.view"><code>View</code></a> per <code>Player</code> stored in <a href="client/fr/lnl/game/client/ClientPlayer.html" title="class in fr.lnl.game.client"><code>ClientPlayer</code></a></div>
</dd>
<dt><a href="client/fr/lnl/game/client/App.html#viewManager" class="member-name-link">viewManager</a> - Static variable in class fr.lnl.game.client.<a href="client/fr/lnl/game/client/App.html" title="class in fr.lnl.game.client">App</a></dt>
<dd>&nbsp;</dd>
<dt><a href="client/fr/lnl/game/client/view/ViewManager.html" class="type-name-link" title="class in fr.lnl.game.client.view">ViewManager</a> - Class in <a href="client/fr/lnl/game/client/view/package-summary.html">fr.lnl.game.client.view</a></dt>
<dd>
<div class="block">View manager, main access to every views</div>
</dd>
<dt><a href="client/fr/lnl/game/client/view/ViewManager.html#%3Cinit%3E(fr.lnl.game.server.games.Game,java.lang.Class,fr.lnl.game.client.ViewLambda)" class="member-name-link">ViewManager(Game, Class&lt;? extends View&gt;, ViewLambda)</a> - Constructor for class fr.lnl.game.client.view.<a href="client/fr/lnl/game/client/view/ViewManager.html" title="class in fr.lnl.game.client.view">ViewManager</a></dt>
<dd>&nbsp;</dd>
<dt><a href="client/fr/lnl/game/client/view/ViewManager.html#viewType" class="member-name-link">viewType</a> - Variable in class fr.lnl.game.client.view.<a href="client/fr/lnl/game/client/view/ViewManager.html" title="class in fr.lnl.game.client.view">ViewManager</a></dt>
<dd>&nbsp;</dd>
</dl>
<h2 class="title" id="I:W">W</h2>
<dl class="index">
<dt><a href="client/fr/lnl/game/client/view/Cell.html#WALL_IMAGE" class="member-name-link">WALL_IMAGE</a> - Static variable in class fr.lnl.game.client.view.<a href="client/fr/lnl/game/client/view/Cell.html" title="class in fr.lnl.game.client.view">Cell</a></dt>
<dd>&nbsp;</dd>
<dt><a href="client/fr/lnl/game/client/view/Window.html#width" class="member-name-link">width</a> - Static variable in class fr.lnl.game.client.view.<a href="client/fr/lnl/game/client/view/Window.html" title="class in fr.lnl.game.client.view">Window</a></dt>
<dd>&nbsp;</dd>
<dt><a href="client/fr/lnl/game/client/listener/SelectActionButton.html#window" class="member-name-link">window</a> - Variable in class fr.lnl.game.client.listener.<a href="client/fr/lnl/game/client/listener/SelectActionButton.html" title="class in fr.lnl.game.client.listener">SelectActionButton</a></dt>
<dd>&nbsp;</dd>
<dt><a href="client/fr/lnl/game/client/listener/SelectDirectionListener.html#window" class="member-name-link">window</a> - Variable in class fr.lnl.game.client.listener.<a href="client/fr/lnl/game/client/listener/SelectDirectionListener.html" title="class in fr.lnl.game.client.listener">SelectDirectionListener</a></dt>
<dd>&nbsp;</dd>
<dt><a href="client/fr/lnl/game/client/view/Window.html" class="type-name-link" title="class in fr.lnl.game.client.view">Window</a> - Class in <a href="client/fr/lnl/game/client/view/package-summary.html">fr.lnl.game.client.view</a></dt>
<dd>
<div class="block">Window view, use mouse and keyboard to control interface</div>
</dd>
<dt><a href="client/fr/lnl/game/client/view/Window.html#%3Cinit%3E(javafx.stage.Stage,fr.lnl.game.server.games.Game,fr.lnl.game.server.games.player.Player)" class="member-name-link">Window(Stage, Game, Player)</a> - Constructor for class fr.lnl.game.client.view.<a href="client/fr/lnl/game/client/view/Window.html" title="class in fr.lnl.game.client.view">Window</a></dt>
<dd>&nbsp;</dd>
</dl>
<a href="#I:A">A</a>&nbsp;<a href="#I:B">B</a>&nbsp;<a href="#I:C">C</a>&nbsp;<a href="#I:D">D</a>&nbsp;<a href="#I:E">E</a>&nbsp;<a href="#I:F">F</a>&nbsp;<a href="#I:G">G</a>&nbsp;<a href="#I:H">H</a>&nbsp;<a href="#I:L">L</a>&nbsp;<a href="#I:M">M</a>&nbsp;<a href="#I:N">N</a>&nbsp;<a href="#I:P">P</a>&nbsp;<a href="#I:R">R</a>&nbsp;<a href="#I:S">S</a>&nbsp;<a href="#I:T">T</a>&nbsp;<a href="#I:U">U</a>&nbsp;<a href="#I:V">V</a>&nbsp;<a href="#I:W">W</a>&nbsp;<br><a href="allclasses-index.html">All&nbsp;Classes&nbsp;and&nbsp;Interfaces</a><span class="vertical-separator">|</span><a href="allpackages-index.html">All&nbsp;Packages</a><span class="vertical-separator">|</span><a href="constant-values.html">Constant&nbsp;Field&nbsp;Values</a></main>
</div>
</div>
</body>
</html>

View File

@ -0,0 +1,25 @@
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) -->
<title>client API</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="description" content="index redirect">
<meta name="generator" content="javadoc/IndexRedirectWriter">
<link rel="canonical" href="client/module-summary.html">
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
<script type="text/javascript">window.location.replace('client/module-summary.html')</script>
<noscript>
<meta http-equiv="Refresh" content="0;client/module-summary.html">
</noscript>
</head>
<body class="index-redirect-page">
<main role="main">
<noscript>
<p>JavaScript is disabled on your browser.</p>
</noscript>
<p><a href="client/module-summary.html">client/module-summary.html</a></p>
</main>
</body>
</html>

View File

@ -0,0 +1,34 @@
/*
* Copyright (c) 2020, Oracle and/or its affiliates. All rights reserved.
* ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*/
.ui-state-active,
.ui-widget-content .ui-state-active,
.ui-widget-header .ui-state-active,
a.ui-button:active,
.ui-button:active,
.ui-button.ui-state-active:hover {
/* Overrides the color of selection used in jQuery UI */
background: #F8981D;
}

View File

@ -0,0 +1 @@
Please see ..\java.base\COPYRIGHT

Some files were not shown because too many files have changed in this diff Show More