Nantes Université

Skip to content
Extraits de code Groupes Projets
Valider 8cfe454f rédigé par lanoix-a's avatar lanoix-a
Parcourir les fichiers

ajout use network

parent 15594734
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -8,7 +8,8 @@ Il va s'agir de développer une application cliente permettant de jouer ...@@ -8,7 +8,8 @@ Il va s'agir de développer une application cliente permettant de jouer
en réseau à la bataille navale : https://fr.wikipedia.org/wiki/Bataille_navale_(jeu) en réseau à la bataille navale : https://fr.wikipedia.org/wiki/Bataille_navale_(jeu)
Un serveur de jeu est accessible en ligne sous la forme d'une API Rest Un serveur de jeu est accessible en ligne sous la forme d'une API Rest
et une librairie java interfaçant le serveur vous est fournie (en partie). (http://37.187.38.219/api/v0) et une librairie Java
interfaçant le serveur vous est fournie (en partie).
## Travail à faire ## Travail à faire
...@@ -20,7 +21,8 @@ et une librairie java interfaçant le serveur vous est fournie (en partie). ...@@ -20,7 +21,8 @@ et une librairie java interfaçant le serveur vous est fournie (en partie).
* ajouter comme "developer" votre enseignant-référent et M. Arnaud Lanoix * ajouter comme "developer" votre enseignant-référent et M. Arnaud Lanoix
* déposer sur votre git les sources récupérées ici : * déposer sur votre git, l'ensemble des sources récupérées ici :
https://gitlab.univ-nantes.fr/iut.info1.project/battleship-student-project-2021/-/archive/master/battleship-student-project-2021-master.zip
**Vous respecterez la structure imposée en terme de dossiers/paquetages** **Vous respecterez la structure imposée en terme de dossiers/paquetages**
...@@ -44,8 +46,13 @@ permettront de valider votre implémentation. ...@@ -44,8 +46,13 @@ permettront de valider votre implémentation.
![package ships](documentation/package_ships.png) ![package ships](documentation/package_ships.png)
3. vous pouvez maintenant utiliser la classe `info1.network.Network` pour échanger avec le serveur,
càd créer ou rejoindre une partie, puis jouer, càd effectuer un tir
sur une coordonnée précise.
![package network](documentation/package_network.png)
Plus de détail sur l'usage de la classe Network par ![ici](documentation/HowtoUseNetwork.md)
......
# Documentation de **Network**
La serveur de jeu est un serveur REST disponible à l'adresse suivante :
http://37.187.38.219/api/v0
La logique d'échange est la suivante :
## 1ere phase : initialisation
Des joueurs s'inscrivent sur le serveur via
`Network.suscribeNewPlayer(...)`
On peut lister les joueurs déjà inscrits via
`Network.listActivePlayers(...)`
Des joueurs initient des parties sur le serveur via
`Network.initNewGame(...)`
On peut lister les parties initialisées via
`Network.listInitializedGames(...)`
Un joueur peut rejoindre une partie initialisée
`Network.joinGame(...)`
alors la phase de jeu commence...
## 2ième phase : dérouler d'une partie
A tour de rôle les deux joueurs de la partie vont pouvoir jouer.
Avant de jouer, il faut vérifier l'état de la partie via
`Network.getInfo(...)`
Puis on peut jouer si c'est à notre tour via
`Network.playOneTurn(...)`
## Les limitations du serveur sont les suivantes
* le joueur qui a initialisé une partie ne sera pas prévenu qu'un joueur
a rejoint sa partie ;
* lorsqu'un joueur a joué l'autre joueur n'est pas prévenu que c'est
à son tour de jouer ;
* lorsqu'un joueur touche (ou coule) un navire adverse,
l'autre joueur n'est pas prévenu ;
* lorsqu'un joueur gagne la partie, l'autre joueur n'est pas
prévenu non plus.
**NB : il faut utiliser `Network.getInfo(...)` pour s'informer
périodiquement de l'état courant de la partie**
documentation/package_network.png

66,7 ko

0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Veuillez vous inscrire ou vous pour commenter