====== 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(); } }