Class DameModel

java.lang.Object
  extended by java.util.Observable
      extended by DameModel

public class DameModel
extends java.util.Observable

Loest Damenproblem auf einem 8*8 Schachbrett von C. F. Gauss, gibt alle 12 Loesungen ohne Rotation und Spiegelung aus.


Field Summary
private   loesungen
          Loesungsmenge.
private  boolean[] negDiag
          Bedrohungen durch bereits gesetzte Dame in den negativen Diagonalen.
private  boolean[] posDiag
          Bedrohungen durch bereits gesetzte Dame in den positiven Diagonalen.
private  int[] spalten
          Schachbrett, jede Spaltenkomponente enthaelt Zeilennummer, in der eine Dame steht, baut Loesung auf.
private  boolean[] zeilen
          Bedrohungen durch bereits gesetzte Dame in Zeilen.
 
Constructor Summary
DameModel()
          Konstruktor, setzt alle Bedrohungen auf false.
 
Method Summary
  getLoesungen()
           
private  boolean istBedroht(int zeile, int spalte)
          Ueberprueft Bedrohungen.
private  void loescheBedrohung(int zeile, int spalte)
          Loescht Bedrohungen.
 void reset()
          Stellt Startzustand her.
private  void setzeBedrohung(int zeile, int spalte)
          Setzt Bedrohungen.
private  void setzeDame(int spalte)
          Suchen der Loesungen, rekursiv.
 void start()
          Startet die Rekursion.
 java.lang.String toString()
          Schachuebliche Darstellung aller Loesungen.
 
Methods inherited from class java.util.Observable
addObserver, clearChanged, countObservers, deleteObserver, deleteObservers, hasChanged, notifyObservers, notifyObservers, setChanged
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

spalten

private int[] spalten
Schachbrett, jede Spaltenkomponente enthaelt Zeilennummer, in der eine Dame steht, baut Loesung auf.


zeilen

private boolean[] zeilen
Bedrohungen durch bereits gesetzte Dame in Zeilen.


posDiag

private boolean[] posDiag
Bedrohungen durch bereits gesetzte Dame in den positiven Diagonalen.


negDiag

private boolean[] negDiag
Bedrohungen durch bereits gesetzte Dame in den negativen Diagonalen.


loesungen

private  loesungen
Loesungsmenge.

Constructor Detail

DameModel

public DameModel()
Konstruktor, setzt alle Bedrohungen auf false.

Method Detail

getLoesungen

public  getLoesungen()

reset

public void reset()
Stellt Startzustand her.


start

public void start()
Startet die Rekursion.


setzeDame

private void setzeDame(int spalte)
Suchen der Loesungen, rekursiv.

Parameters:
spalte - Spalte, in welcher Suche fortgesetzt wird

istBedroht

private boolean istBedroht(int zeile,
                           int spalte)
Ueberprueft Bedrohungen.

Parameters:
zeile - Dame steht in Zeile zeile
spalte - Dame steht in Spalte spalte

setzeBedrohung

private void setzeBedrohung(int zeile,
                            int spalte)
Setzt Bedrohungen.

Parameters:
zeile - Dame steht in Zeile zeile
spalte - Dame steht in Spalte spalte

loescheBedrohung

private void loescheBedrohung(int zeile,
                              int spalte)
Loescht Bedrohungen.

Parameters:
zeile - Dame steht in Zeile zeile
spalte - Dame steht in Spalte spalte

toString

public java.lang.String toString()
Schachuebliche Darstellung aller Loesungen.

Overrides:
toString in class java.lang.Object
Returns:
Loesungen