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
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
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
......@@ -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
* 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**
......@@ -44,8 +46,13 @@ permettront de valider votre implémentation.
![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.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter