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, n)

 Falls t < n ist
 DANN
   pos = erste Leere Zeile
   wiederhole solange pos < n 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)
   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