/**
  *
  * Beschreibung
  * Testklasse, um die einzelnen Funktionen der Klassen für die Barbudi (ohne Grafik) zu testen.
  *
  * @version 1.0 vom 10.04.2011
  * @author Schaller
  */

public class Testen {

  public static void main(String[] args) {
    Spieler s = new Spieler(102);
    System.out.println("Spieler erzeugt.");
    if (s.getGuthaben()!=102) {
      System.out.println("Guthaben des Spielers wird im Konstruktor nicht richtig gesetzt.");
    } else {
      System.out.println("Guthaben des Spielers wird im Konstruktor korrekt gesetzt.");
    }// end of if
    s.setze(32);
    if (s.getGuthaben()!=70) {
      System.out.println("Methode setze funktioniert nicht richtig. Das Guthaben sollte reduziert werden.");
    } else {
      System.out.println("Methode setzt passt Guthaben korrekt an.");
    }// end of if
    s.gewonnen();
    if (s.getGuthaben()!=134) {
      System.out.println("Methode gewonnen oder Methode setze funktioniert nicht richtig. Nach dem Gewinn ist das Guthaben nicht um den Einsatz erhöht.");
    } else {
      System.out.println("Methode gewonnen funktioniert richtig.");
    } // end of if
    s.setze(54);
    if (s.getGuthaben()!=80) {
      System.out.println("Methode setze funktioniert nicht richtig. Das Guthaben sollte reduziert werden.");
    } else {
      System.out.println("Methode setzt passt Guthaben korrekt an.");
    }// end of if
    s.verloren();
    if (s.getGuthaben()!=80) {
      System.out.println("Methode verloren oder Methode setze funktioniert nicht richtig. Nach dem Verlust ist das Guthaben nicht um den Einsatz reduziert.");
    } else {
      System.out.println("Methode verloren funktioniert richtig.");
    } // end of if
    
    
    //---- Würfel testen -------------------
    
    Wuerfel w = new Wuerfel();
    int[] anzahl = new int[6];
    for (int i=0; i<6 ;i++ ) {
      anzahl[i] =0;
    } // end of for
    
    for (int i=0; i <60000; i++ ) {
      w.wuerfeln();
      anzahl[w.getWurf()-1]++;
    } // end of for
    
    System.out.println("60000 mal Würfel brachte folgendes Ergebnis:");
    for (int i=0; i<6 ; i++ ) {
      System.out.println(""+anzahl[i]+" Mal wurde "+(i+1)+" gewürfelt.");
    } // end of for
    System.out.println("Falls nicht jede Zahl etwa 10000 mal gewürfelt wurde, stimmt der Würfel nicht");
    
    // ---- Spielleitung testen ---------
    
    Spielleitung sl = new Spielleitung();
    if (sl.getWuerfel(0) == null || sl.getWuerfel(1) == null) {
      System.out.println("Fehler: Würfel werden nicht im Konstruktor von Spielleitung erzeugt.");
    } // end of if
    if (!(sl.getWuerfel(0) instanceof Wuerfel) || !(sl.getWuerfel(1) instanceof Wuerfel)) {
      System.out.println("Fehler: Würfel werden nicht im Konstruktor von Spielleitung erzeugt.");
    } // end of if
    
    Spieler s1 = new Spieler(102);
    Spieler s2 = new Spieler(103);
    Spieler s3 = new Spieler(104);
    sl.addSpieler(s1);
    sl.addSpieler(s2);
    sl.addSpieler(s3);
    if (sl.getSpieler(0)!=s1 || sl.getSpieler(1)!=s2) {
      System.out.println("Fehler: Spieler werden nicht korrekt mit addSpieler hinzugefügt.");
    } else {
      System.out.println("addSpieler fügt Spieler korrekt hinzu.");
    }// end of if
    if (sl.getSpielerAmZug()!=s1) {
      System.out.println("Fehler: Am Anfang sollte der 1. Spieler der aktuelle Spieler sein.");
    } // end of if
    
    
    
    
  }
}
