Advertisement
Guest User

BOULE

a guest
Nov 28th, 2014
158
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.62 KB | None | 0 0
  1. /* SCIPER Etudiant(e) : 246970
  2.  */
  3. import java.util.ArrayList;
  4.  
  5. /*******************************************
  6.  * Completez le programme a partir d'ici. Tableau à utiliser pour identifier les
  7.  * cases de type passes : {6, 7, 8, 9};
  8.  *******************************************/
  9.  
  10. /*
  11.  * PROGRAMME PRINCIPAL (FOURNI) NE MODIFIER QUE SELON LES CONSIGNES DE L'ENONCE
  12.  */
  13. class Boule {
  14.     public static void main(String[] args) {
  15.  
  16.         // TEST 1 System.out.println("Test partie 1 :");
  17.         System.out.println("--------------");
  18.         Simple pari1 = new Simple(400, 2);
  19.         System.out.println(pari1);
  20.         System.out.print("Gain si le 2 est tiré : ");
  21.         System.out.println(pari1.gain(2));
  22.         Passes pari2 = new Passes(50);
  23.         System.out.println(pari2);
  24.         System.out.print("Gain si le 9 (qui est une case passes) est tiré : ");
  25.         System.out.println(pari2.gain(9)); // FIN TEST 1
  26.  
  27.         // TEST 2 System.out.println("Test partie 2 :");
  28.         System.out.println("--------------");
  29.         Joueur stark = new Joueur("Stark");
  30.         stark.setTactique(new Simple(300, 2));
  31.         // parier lasomme de 300 sur le 2
  32.  
  33.         Joueur white = new Joueur("White");
  34.         white.setTactique(new Passes(40)); // parier 40 jetons sur les passes
  35.  
  36.         System.out.println("Gains de " + stark.getNom() + " : ");
  37.         // ce questark, qui a misé sur le numéro 2, si le 2 est tiré
  38.         System.out.println(stark.gain(2));
  39.         // ce que stark, qui a misé sur le 2, gagnera si le 12 est tiré
  40.         System.out.println(stark.gain(12));
  41.  
  42.         System.out.println("Gains de " + white.getNom() + " : ");
  43.         // ce quewhite gagnera si 9, qui est une case passe, est tirée
  44.         System.out.println(white.gain(9));
  45.         // ce que white gagnera si le 16qui n'est pas une case passe est tiré
  46.         System.out.println(white.gain(16));
  47.  
  48.         // TEST 3 System.out.println("Test partie 3 :");
  49.         System.out.println("--------------");
  50.         Jeu j = new Jeu();
  51.         j.participe(stark);
  52.         j.participe(white);
  53.  
  54.         // simule le tirage de 9, 2 et 32 (la boule tombe sur une de ces
  55.         for (int tirage : new int[] { 9, 2, 32 }) {
  56.             j.lance(tirage);
  57.             // la boule tombe sur la case tirage
  58.             j.afficherGains();
  59.             System.out.println("");
  60.  
  61.         } // FIN TEST 3
  62.  
  63.     }
  64. }
  65.  
  66. // mes methodes sont dans un ordre aleatoire et mes variables ont des noms
  67. // n'ayant pas de signification precise
  68. // veuillez m'en excuser
  69. class Jeu {
  70.     private ArrayList<Joueur> jou = new ArrayList<Joueur>();
  71.     private int last;
  72.  
  73.     // constructeur vide au depart (d'ou la methode participe(Joueur))
  74.     public Jeu() {
  75.     }
  76.  
  77.     public void afficherGains() {
  78.         System.out.println("Le numero qui sort est le " + last);
  79.         for (int i = 0; i < jou.size(); i++) {
  80.             System.out.print("Le joueur " + jou.get(i).getNom() + " a parie "
  81.                     + jou.get(i).getMontant() + " et ");
  82.             //check si il y a un gain ou pas
  83.             if (jou.get(i).gain(last) == 0) {
  84.                 System.out.println("perd cette somme");
  85.             } else {
  86.                 System.out
  87.                         .println("gagne " + jou.get(i).gain(last) + " francs");
  88.             }
  89.         }
  90.  
  91.     }
  92.  
  93.     public void lance(int n) {
  94.         last = n;
  95.     }
  96.  
  97.     public void participe(Joueur pop) {
  98.         jou.add(pop);
  99.     }
  100. }
  101.  
  102. class Joueur {
  103.     private String nom;
  104.     private Pari jeu;
  105.  
  106.     public Joueur(String nom) {
  107.         this.nom = nom;
  108.         this.jeu = null;
  109.     }
  110.  
  111.     // toujours check le 0 en premier
  112.     public int gain(int n) {
  113.         if (jeu == null) {
  114.             return 0;
  115.         }
  116.         return jeu.gain(n);
  117.     }
  118.  
  119.     public int getMontant() {
  120.         if (jeu == null) {
  121.             return 0;
  122.         }
  123.         return jeu.getMontant();
  124.     }
  125.  
  126.     public void setTactique(Pari pari) {
  127.         jeu = pari;
  128.     }
  129.  
  130.     public String getNom() {
  131.         return nom;
  132.     }
  133. }
  134.  
  135. abstract class Pari {
  136.     private int somme;
  137.  
  138.     public Pari(int somme) {
  139.         this.somme = somme;
  140.     }
  141.  
  142.     public int getMontant() {
  143.         return somme;
  144.     }
  145.  
  146.     public String toString() {
  147.         return ("Pari de " + somme);
  148.     }
  149.  
  150.     abstract public int gain(int n);
  151. }
  152.  
  153. class Simple extends Pari {
  154.     private static final int FACTEUR = 7;
  155.     private int numero;
  156.  
  157.     public Simple(int somme, int numero) {
  158.         super(somme);
  159.         this.numero = numero;
  160.     }
  161.  
  162.     public int gain(int n) {
  163.         if (numero == n) {
  164.             return getMontant() * FACTEUR;
  165.         } else {
  166.             return 0;
  167.         }
  168.     }
  169.  
  170.     private int getN() {
  171.         return numero;
  172.     }
  173.  
  174.     public String toString() {
  175.         return "Pari de " + getMontant() + " sur le numero " + getN();
  176.     }
  177. }
  178.  
  179. class Passes extends Pari {
  180.     private static final int[] CASES = new int[] { 6, 7, 8, 9 };
  181.  
  182.     public Passes(int somme) {
  183.         super(somme);
  184.     }
  185.  
  186.     public String toString() {
  187.         return "Pari de " + getMontant() + " sur une case passe";
  188.     }
  189.  
  190.     public int gain(int n) {
  191.         //check toutes les cases passe
  192.         for (int i = 0; i < CASES.length; i++) {
  193.             if (n == CASES[i]) {
  194.                 return getMontant();
  195.             }
  196.         }
  197.         return 0;
  198.     }
  199. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement