Lernpfad:Rekursion in Java/Rekursion bei Schachproblemen

Aus Informatik-Box
Zur Navigation springen Zur Suche springen

Im Kontext des Schachspiels gibt es zwei sehr bekannte Problemstellungen. An dieser Stelle sollen einfach nur ein paar Links für interessierte hinzugefügt werden:

  1. Dameproblem

Man versucht 8 Damen auf dem Schachbrett zu positionieren. Dabei müssen die Damen so aufgestellt werden, dass sich keine Damen gegenseitig schlagen.

Ein rekursiver Algorithmus könnte wie folgt aussehen:

dame(t, zeilen) 
  Falls t < 8 ist
  DANN
    pos = erste Leere Zeile
    wiederhole solange pos < 8 ist
      setze die Dame auf die Position
      prüfe ob die Dame mit einer anderen kollidiert
      Falls ja
        nächste freie Zeile verwenden
      Falls nein
        loesung = dame(t+1, zeilen)
    Falls !loesung 
    DANN 
      gib false zurueck
  SONST
    speicher die Lösung / gib die Lösung aus 
    gib true zurueck
  1. Springerproblem
    1. https://de.wikipedia.org/wiki/Springerproblem
    2. http://www.axel-conrad.de/springer/springer.html
    3. https://docplayer.org/41857208-Backtracking-mit-heuristiken.html
  1. https://www.mathe-online.at/materialien/matroid/files/schach/schachbrett.html
  1. Labyrinth http://www.erasmus-reinhold-gymnasium.de/info/rekursion-iteration/Backtracking_final.pdf