====== Correction TP2 ======
On suppose que vous avez un [[restricted:mco-2:correction:tp1|TP1 fonctionnel]]. Nous ajouterons ici une méthode ''static'' à la classe ''Main'' pour terster la classe ''Track''.
===== Les classes =====
On montrera la classe Trac et son utilisation avec la méthode main de la classe Main.
==== Track.java ====
package com.mco;
import java.util.Arrays;
public class Track {
private Dice[] dices;
public Track() {
dices = new Dice[5];
for (int i=0; i < 5; i+=1) {
dices[i] = new Dice();
}
}
public void roll() {
for (Dice dice: dices) {
dice.roll();
}
}
public Dice[] getDices() {
return dices;
}
@Override
public String toString() {
return "Track{" +
"dices=" + Arrays.toString(dices) +
'}';
}
}
Spécificités :
* Accès à l'attribut ''dices '' via un getter qui rend l'attribut.
* Utilisation des [[public:java:misc#Control Flow Statements|2 formes de boucle for]]. La classique dans le constructeur, la construction en for each dans la méthode roll().
* On utilise la méthode roll de chaque dé. On peut utiliser le même nom pour Track et Dice puisque ces méthdoes ne s'appliquent à des classes différentes (''Dice'' et ''Track'').
==== Main.java ====
On ne montrera que les ajouts par rapport à la correction du TP1.
package com.mco;
public class Main {
static void testTrack() {
System.out.println("---- Track tests ----");
final int NUMBER_TRIES = 100;
Track track = new Track();
int sum = 0;
for (int i=0; i < NUMBER_TRIES ; i += 1) {
track.roll();
System.out.println(track);
for (Dice dice: track.getDices()) {
sum += dice.getPosition();
}
}
System.out.println((float) sum / NUMBER_TRIES);
}
public static void main(String[] args) {
testTrack();
}
}