Java/Roulette: Unterschied zwischen den Versionen

Aus ZUM-Unterrichten
main>Ugh
Keine Bearbeitungszusammenfassung
(kein Unterschied)

Version vom 5. Februar 2007, 20:33 Uhr

Eine Umsetzung eines Roulettespiels mit BlueJ.

BlueJRoulette.gif

Quelltext

Klasse Kugel

<java> public class Kugel {

   // instance variables - replace the example below with your own
   private int zahl;
   private String farbe;
   // Konstruktor - Startposition 
   public Kugel()
   {
       zahl = 0;
       farbe = "gruen";
   }
   public void rolleKugel()
   {
       // Zahl zwischen 0 und 36
       zahl = (int) ((Math.random()*37));
       if (zahl == 1 || zahl == 3 || zahl == 5
         ||zahl == 7 || zahl == 9 || zahl == 12
         ||zahl == 14 ||zahl == 16 ||zahl == 18
         ||zahl == 19 ||zahl == 21 ||zahl == 23
         ||zahl == 25 ||zahl == 27 ||zahl == 30
         ||zahl == 32 ||zahl == 34 ||zahl == 36) {
           farbe = "rot";
       }
       else {
           if (zahl == 0) {
               farbe = "gruen";
           }
           else {
               farbe = "schwarz";
           }
       }
   }
   public String getFarbe(){
       return farbe;
   }
   
   public void testeKugel(int anzahl){
       int anzahlRot=0;
       int anzahlSchwarz=0;
       int anzahlGruen=0;
       for (int i=1;i<=anzahl;i++){
           rolleKugel();
           if (farbe.equals("rot")) {
               anzahlRot++;
           }
           if (farbe.equals("schwarz")) {
               anzahlSchwarz++;
           }
           if (farbe.equals("gruen")) {
               anzahlGruen++;
           }
       }
       System.out.println(anzahlRot+" von "+anzahl+" waren rot.");
       System.out.println((anzahlRot*1000/anzahl)/10.0 + " Prozent der Spiele.\n");
       System.out.println(anzahlSchwarz+" von "+anzahl+" waren schwarz.");
       System.out.println((anzahlSchwarz*1000/anzahl)/10.0 + " Prozent der Spiele.\n");
       System.out.println(anzahlGruen+" von "+anzahl+" waren gruen.");
       System.out.println((anzahlGruen*1000/anzahl)/10.0 + " Prozent der Spiele.\n");
   }
   

} // Ende der Klasse </java>

Klasse Spieler

<java> public class Spieler {

   private double vermoegen;
   private double einsatz;
   private String farbe;
   public Spieler()
   {
       vermoegen = 1000;
       einsatz = 10;
       farbe = "schwarz";
   }
   
   public double getEinsatz() {
       return einsatz;
   }
   public String getFarbe() {
       return farbe;
   }
   
   public void verbucheSpielergebnis(double betrag) {
       vermoegen += betrag;   
   }

} </java>

Klasse Croupier

<java> public class Croupier {

   private Kugel k;
   private Spieler spieler1;
   private Spieler spieler2;
   private double bankvermoegen;
   public Croupier(Spieler pSpieler1, Spieler pSpieler2)
   {
       k = new Kugel();
       bankvermoegen = 1000000;
       spieler1 = pSpieler1;
       spieler2 = pSpieler2;
   }
   public void spieleEineRunde()
   {
       k.rolleKugel();
       if (k.getFarbe().equals(spieler1.getFarbe())) {
           bankvermoegen-=spieler1.getEinsatz();
           spieler1.verbucheSpielergebnis(spieler1.getEinsatz());
       }
       else {
           bankvermoegen+=spieler1.getEinsatz();
           spieler1.verbucheSpielergebnis(-spieler1.getEinsatz());   
       }
       if (k.getFarbe().equals(spieler2.getFarbe())) {
           bankvermoegen-=spieler2.getEinsatz();
           spieler2.verbucheSpielergebnis(spieler2.getEinsatz());
       }
       else {
           bankvermoegen+=spieler2.getEinsatz();
           spieler2.verbucheSpielergebnis(-spieler2.getEinsatz());   
       }        
   }

} </java>