README.md 3.51 KB
Newer Older
lanoix-a's avatar
lanoix-a committed
1
2
# Projet S2 : Bataille Navale

lanoix-a's avatar
lanoix-a committed
3
![French_battleship_Brennus_NH_64443](img/French_battleship_Brennus_NH_64443.jpg)
lanoix-a's avatar
lanoix-a committed
4
5
6
7
8
9
10

## Présentation rapide 

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
lanoix-a's avatar
lanoix-a committed
11
12
 (http://37.187.38.219/api/v0) et une librairie Java 
 interfaçant le serveur vous est fournie (en partie).
lanoix-a's avatar
lanoix-a committed
13

Arnaud LANOIX's avatar
Arnaud LANOIX committed
14
15
**En cas de questions / bugs / etc. privilégiez les _issues_ de ce dépôt git.**

lanoix-a's avatar
lanoix-a committed
16
17
18

## Travail à faire

lanoix-a's avatar
lanoix-a committed
19
### initialisation du projet
lanoix-a's avatar
lanoix-a committed
20

lanoix-a's avatar
lanoix-a committed
21
1. créez un git spécifique à votre groupe sur le gitlab de l'université : 
lanoix-a's avatar
lanoix-a committed
22
 https://gitlab.univ-nantes.fr/ avec la convention de nommage suivante :
lanoix-a's avatar
lanoix-a committed
23
`projetS2-2021-NUM_GROUPE-INITIALES_ENSEIGNANT` ; `exemple projetS2-03-AL`
lanoix-a's avatar
lanoix-a committed
24
 
lanoix-a's avatar
lanoix-a committed
25
26
 

lanoix-a's avatar
lanoix-a committed
27
2. ajoutez comme "maintainer" votre enseignant-référent et M. Arnaud Lanoix    
lanoix-a's avatar
lanoix-a committed
28

lanoix-a's avatar
lanoix-a committed
29
3. déposez sur votre git, l'ensemble des sources récupérées ici :
lanoix-a's avatar
lanoix-a committed
30
https://gitlab.univ-nantes.fr/iut.info1.project/battleship-student-project-2021/-/archive/master/battleship-student-project-2021-master.zip
lanoix-a's avatar
lanoix-a committed
31
32
33
OU faites un fork de ce dépot.


lanoix-a's avatar
lanoix-a committed
34
35
36
37
38
39

 **Vous respecterez la structure imposée en terme de dossiers/paquetages**
 
  NB :le source récupéré contient un repertoire lib/ 
     contenant une archive jar `battleship-library-1.x.jar`
     
lanoix-a's avatar
lanoix-a committed
40
  il faut ajouter ce .jar comme une librairie dans votre IDE préféré
lanoix-a's avatar
lanoix-a committed
41
     
lanoix-a's avatar
lanoix-a committed
42
43
  il s'agit de code qui vous est fourni, que vous devrez utiliser
  mais que vous ne pouvez pas modifier
lanoix-a's avatar
lanoix-a committed
44

lanoix-a's avatar
lanoix-a committed
45
46
47
48
49

### implémentation de `ships.*`

2. il vous faut (terminer de) développer le modèle de données représentant 
la flotte de bateaux ; pour cela, il vous faut coder 
lanoix-a's avatar
lanoix-a committed
50
les classes suivantes (dans `src/info1/ships/`) : 
lanoix-a's avatar
lanoix-a committed
51
52
53
54
55
    *  `Coord` implémentant `ICoord`
    *  `Ship` implémentant `IShip` et (si nécessaire) modifier les classes "filles" fournies
    *  `NavyFleet` implémentant `INavyFleet`
    
Les interfaces à implémenter sont présentes dans `battleship-library-1.x.jar` ; 
lanoix-a's avatar
lanoix-a committed
56
elles sont sont documentées dans la javadoc fournie (documentation/javadoc).
lanoix-a's avatar
lanoix-a committed
57

lanoix-a's avatar
lanoix-a committed
58
NB :des cas de tests écrit en Junit 5.4 vous 
lanoix-a's avatar
lanoix-a committed
59
60
61
62
permettront de valider votre implémentation :
   * `CoordTest`
   * `NavyFleetTest`
   * `ShipTest`
lanoix-a's avatar
lanoix-a committed
63

lanoix-a's avatar
lanoix-a committed
64
![package ships](documentation/package_ships.png)
lanoix-a's avatar
lanoix-a committed
65

lanoix-a's avatar
lanoix-a committed
66
67
68
69

### utilisation de `info1.network.Network` ...


lanoix-a's avatar
lanoix-a committed
70
vous pouvez maintenant utiliser la classe `Network` pour échanger avec le serveur, 
lanoix-a's avatar
lanoix-a committed
71
72
càd créer ou rejoindre une partie, puis jouer, càd effectuer un tir 
sur une coordonnée précise.
lanoix-a's avatar
lanoix-a committed
73

lanoix-a's avatar
lanoix-a committed
74
![package network](documentation/package_network.png)
lanoix-a's avatar
lanoix-a committed
75

lanoix-a's avatar
lanoix-a committed
76
77
La classe `Network` est documentée dans la javadoc fournie (documentation/javadoc).

lanoix-a's avatar
lanoix-a committed
78
Plus de détail sur l'usage de la classe Network dans ![HowToUseNetwork](documentation/HowtoUseNetwork.md).
lanoix-a's avatar
lanoix-a committed
79

lanoix-a's avatar
lanoix-a committed
80
81
La classe de tests `RunningGameTest` illustre également l'utilisation de `info1.network.Network` ; elle devrait 
fonctionner une fois que vous avez correctement implémenter les classes du package `ships.*`.s
lanoix-a's avatar
lanoix-a committed
82

lanoix-a's avatar
lanoix-a committed
83
### ... et développement d'une interface graphique
lanoix-a's avatar
lanoix-a committed
84

lanoix-a's avatar
lanoix-a committed
85
Développez une interface graphique en Swing vous permettant de jouer, cad
lanoix-a's avatar
lanoix-a committed
86

lanoix-a's avatar
lanoix-a committed
87
1. positionner des bateaux
lanoix-a's avatar
lanoix-a committed
88

lanoix-a's avatar
lanoix-a committed
89
2. créer une flotte de bateaux
lanoix-a's avatar
lanoix-a committed
90

lanoix-a's avatar
lanoix-a committed
91
3. initialiser une partie sur le serveur
lanoix-a's avatar
lanoix-a committed
92

lanoix-a's avatar
lanoix-a committed
93
4. rejoindre une partie initialisée sur le serveur
Arnaud LANOIX's avatar
Arnaud LANOIX committed
94

lanoix-a's avatar
lanoix-a committed
95
96
97
98
99
100
101
102
103
104
105
5. jouer via le serveur

6. gagner ;-)



## Remarques 

Chaque groupe aura un enseignant-référent qui passera
vous voir régulièrement afin de vous assister 
mais aussi évaluer votre travail.
Arnaud LANOIX's avatar
Arnaud LANOIX committed
106
107


Arnaud LANOIX's avatar
Arnaud LANOIX committed
108
109
110



lanoix-a's avatar
lanoix-a committed
111
_Image du bateau issue de https://en.wikipedia.org/wiki/French_battleship_Brennus_