restricted:mco-2:correction:tp2

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
restricted:mco-2:correction:tp2 [2016/02/26 09:22] fbruckerrestricted:mco-2:correction:tp2 [2016/02/26 09:23] (Version actuelle) fbrucker
Ligne 1: Ligne 1:
 +====== 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 ====
 +
 +<code 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) +
 +                '}';
 +    }
 +}
 +</code>
 +
 +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.
 +
 +<code java>
 +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();
 +    }
 +}
 +</code>