Пример #1
0
 /**
  * Verarbeitet den Klick auf den Button "Aufgeben" aus der GUI, wobei dabei der Spieler, welcher
  * aufgeben geklickt hat, noch ermittelt werden muss. Da der Spieler, welcher aufgeben geklickt
  * hat, auf jedenfall verloren hat. Wird das Ergebnis des Spiels sofort in die Statistik
  * eingetragen.
  */
 @SuppressWarnings("static-access")
 public void aufgegebenGeklickt() {
   try {
     this.lnkStatistik = lnkStatistik.gibStatistik();
   } catch (StatistikException e) {
     lnkGUI.zeigeFehlerAn(
         "Die Statistikdatei ist fehlerhaft, Ihre Statistik wurde zurückgesetzt.");
   }
   Spieler spieler1, spieler2;
   spieler1 = lnkSpielstand.gibSpieler1();
   spieler2 = lnkSpielstand.gibSpieler2();
   if (spieler1.equals(lnkSpielstand.gibAktuellenSpieler())) {
     lnkStatistik.aktualisiereEintrag(
         spieler2, Spielausgang.sieg, this.gibStatistikunterteilung());
     lnkStatistik.aktualisiereEintrag(
         spieler1, Spielausgang.aufgegeben, this.gibStatistikunterteilung());
     this.lnkSpielstand.setzeSpielAusgang(Zustand.weiss);
   } else {
     lnkStatistik.aktualisiereEintrag(
         spieler1, Spielausgang.sieg, this.gibStatistikunterteilung());
     lnkStatistik.aktualisiereEintrag(
         spieler2, Spielausgang.aufgegeben, this.gibStatistikunterteilung());
     this.lnkSpielstand.setzeSpielAusgang(Zustand.schwarz);
   }
   lnkSpiel.setzeEnde(true);
   lnkGUI.actionPerformed(new java.awt.event.ActionEvent(this, 0, "Spiel_MenueEnde"));
 }
Пример #2
0
 /**
  * Verarbeitet den Klick auf den Button "speichern" aus der GUI, indem die GUI diese Methode
  * aufruft. Der Klick wird durch Delegation an die Spielstandklasse aufgelöst.
  */
 @SuppressWarnings("static-access")
 public void speichern() {
   if (lnkSpiel.istSpielZuEnde() == true) {
     if (this.gibSpielausgang(lnkSpielstand.gibSpieler1()) == Spielausgang.sieg) {
       lnkSpielstand.setzeSpielAusgang(Zustand.schwarz);
     } else if (this.gibSpielausgang(lnkSpielstand.gibSpieler1()) == Spielausgang.sieg) {
       lnkSpielstand.setzeSpielAusgang(Zustand.weiss);
     } else {
       lnkSpielstand.setzeSpielAusgang(Zustand.frei);
     }
   }
   lnkSpielstand.setzeKommentar(lnkGUI.speichern_gibKommentar());
   lnkSpielstand.setzeTitel(
       lnkSpielstand.gibSpieler1().gibName() + " vs " + lnkSpielstand.gibSpieler2().gibName());
   java.util.Date date = new java.util.Date();
   java.text.SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
   lnkSpielstand.setzeDatum(formatter.format(date));
   formatter.applyPattern("yyyy-MM-dd_hh-mm-ss");
   try {
     lnkSpielstand.speichern(this.SPEICHER_ORDNER + formatter.format(date) + ".xml");
     this.lnkGUI.speichern_erfolgreich();
   } catch (SpeichernException e) {
     this.lnkGUI.zeigeFehlerAn("Konnte nicht speichern!");
   }
 }
Пример #3
0
 /**
  * startet ein neues Spiel, indem es zunächst einen neuen Spielstand mit den vorher vom Benutzer
  * gemachten und an den Controller übermittelten Informationen erstellt. Dieser erstellt wiederum
  * die beiden Spieler. Der fertige Spielstand wird anschließend vom neu erzeugten Spiel geladen.
  * Bei Bedarf werden anschließend zusätzlich KIs erzeugt, die je einen Spieler erhalten.
  */
 public void neuesSpielStarten() {
   Spieler spieler1, spieler2;
   Variante var;
   // 1. Spieler soll immer schwarz sein
   spieler1 = new Spieler(Zustand.schwarz, lnkGUI.neuesSpiel_gibSpieler1Name(), SpielerTyp.mensch);
   spieler2 = new Spieler(Zustand.weiss, lnkGUI.neuesSpiel_gibSpieler2Name(), SpielerTyp.mensch);
   // Variante erzeugen
   if (this.lnkGUI.neuesSpiel_gibVariante() == go.gui.NeuesSpiel.SPIELART_STEINSCHLAG) {
     var = new Steinschlag();
     this.lnkGUI.spiel_buttonsFuerSteinschlagKonfigurieren();
   } else {
     var = new Klassisch();
   }
   // Spielstand erzeugen
   this.lnkSpielstand = new Spielstand(spieler1, spieler2, var, lnkGUI.neuesSpiel_gibGroesse());
   // Spiel erzeugen
   this.lnkSpiel =
       new Spiel(var, lnkSpielstand, var.initialisiereSpielbrett(lnkGUI.neuesSpiel_gibGroesse()));
   // KI erzeugen
   switch (lnkGUI.neuesSpiel_gibKI()) {
     case leicht:
       if (lnkGUI.neuesSpiel_gibKIFarbe() == Zustand.schwarz) {
         spieler1.setzeTyp(SpielerTyp.leicht);
         lnkKIHaupt =
             new KI(
                 spieler1,
                 new Leicht(lnkGUI.neuesSpiel_gibKIFarbe(), new KIVariante(var)),
                 this.lnkSpiel.gibSpielbrett());
       } else {
         spieler2.setzeTyp(SpielerTyp.leicht);
         lnkKIHaupt =
             new KI(
                 spieler2,
                 new Leicht(lnkGUI.neuesSpiel_gibKIFarbe(), new KIVariante(var)),
                 this.lnkSpiel.gibSpielbrett());
       }
       break;
     case schwer:
       if (lnkGUI.neuesSpiel_gibKIFarbe() == Zustand.schwarz) {
         spieler1.setzeTyp(SpielerTyp.schwer);
         lnkKIHaupt =
             new KI(
                 spieler1,
                 new Schwer(lnkGUI.neuesSpiel_gibKIFarbe(), new KIVariante(var)),
                 this.lnkSpiel.gibSpielbrett());
       } else {
         spieler2.setzeTyp(SpielerTyp.schwer);
         lnkKIHaupt =
             new KI(
                 spieler2,
                 new Schwer(lnkGUI.neuesSpiel_gibKIFarbe(), new KIVariante(var)),
                 this.lnkSpiel.gibSpielbrett());
       }
       break;
   }
   // Observer setzen
   this.lnkSpiel.gibSpielbrett().addObserver(lnkGUI);
   this.lnkSpielstand.addObserver(this);
   if (this.lnkKIHaupt != null) {
     this.lnkKIHaupt.addObserver(this);
   }
   // Update vom Spielbrett machen, falls Spieler hinzugefügt wurden.
   this.lnkSpiel.gibSpielbrett().updateUI();
   this.update(lnkSpielstand, lnkSpielstand.gibAktuellenSpieler());
 }