Exemplo n.º 1
0
  /**
   * fragt das Spiel nach den erlangten Punkten der einzelnen Spieler und entscheidet wer gewonnen
   * hat und trägt das Ergebniss in die Statistik ein. Hilfsmethode von Update.
   */
  @SuppressWarnings("static-access")
  private void aktualisiereStatistik() {
    try {
      this.lnkStatistik = lnkStatistik.gibStatistik();
    } catch (StatistikException e) {
      this.lnkGUI.zeigeFehlerAn(
          "Die Statistikdatei ist fehlerhaft, Ihre Statistik wurde zurückgesetzt.");
    }
    this.lnkGUI.setzeSteinNichtSetzbar(true);
    Spieler spieler1, spieler2;
    spieler1 = lnkSpielstand.gibSpieler1();
    spieler2 = lnkSpielstand.gibSpieler2();
    this.lnkStatistik.aktualisiereEintrag(
        spieler1, this.gibSpielausgang(spieler1), this.gibStatistikunterteilung());
    this.lnkStatistik.aktualisiereEintrag(
        spieler2, this.gibSpielausgang(spieler2), this.gibStatistikunterteilung());
    /*
    if (this.lnkSpiel.gibPunkte(spieler1) > this.lnkSpiel.gibPunkte(spieler2)) {
    	this.lnkStatistik.aktualisiereEintrag(spieler1, Spielausgang.sieg,
    			Statistikunterteilung.Steinschlag);
    	this.lnkStatistik.aktualisiereEintrag(spieler2,
    			Spielausgang.niederlage, Statistikunterteilung.Steinschlag);
    	this.lnkGUI.spiel_setzeNachricht(spieler1.gibName()
    			+ " hat gewonnen!");
    	this.lnkSpielstand.setzeSpielAusgang(Zustand.schwarz);
    } else if (this.lnkSpiel.gibPunkte(spieler1) < this.lnkSpiel
    		.gibPunkte(spieler2)) {
    	this.lnkStatistik.aktualisiereEintrag(spieler2, Spielausgang.sieg,
    			Statistikunterteilung.Steinschlag);
    	this.lnkStatistik.aktualisiereEintrag(spieler1,
    			Spielausgang.niederlage, Statistikunterteilung.Steinschlag);
    	this.lnkGUI.spiel_setzeNachricht(spieler2.gibName()
    			+ " hat gewonnen!");
    	this.lnkSpielstand.setzeSpielAusgang(Zustand.weiss);
    } else {
    	this.lnkStatistik.aktualisiereEintrag(spieler2,
    			Spielausgang.unentschieden,
    			Statistikunterteilung.Steinschlag);
    	this.lnkStatistik.aktualisiereEintrag(spieler1,
    			Spielausgang.unentschieden,
    			Statistikunterteilung.Steinschlag);
    	this.lnkGUI.spiel_setzeNachricht("Es steht unentschieden.");
    	this.lnkSpielstand.setzeSpielAusgang(Zustand.frei);
    }
    */
    try {
      this.lnkStatistik.speichern();
    } catch (Exception e) {
      this.lnkGUI.zeigeFehlerAn("Die Statistik konnte nicht gespeichert werden");
    }

    this.lnkGUI.actionPerformed(new java.awt.event.ActionEvent(this, 0, "Spiel_Ende"));
    if (this.lnkSpiel.gibPunkte(spieler1) > this.lnkSpiel.gibPunkte(spieler2)) {
      this.lnkGUI.spiel_setzeNachricht(spieler1.gibName() + " hat gewonnen!");
    } else if (this.lnkSpiel.gibPunkte(spieler1) < this.lnkSpiel.gibPunkte(spieler2)) {
      this.lnkGUI.spiel_setzeNachricht(spieler2.gibName() + " hat gewonnen!");
    } else {
      this.lnkGUI.spiel_setzeNachricht("Es steht unentschieden.");
    }
    this.lnkGUI.spiel_setzePunkteSpieler1(this.lnkSpiel.gibPunkte(spieler1));
    this.lnkGUI.spiel_setzePunkteSpieler2(this.lnkSpiel.gibPunkte(spieler2));
  }