Lernpfad:Rekursion in Java/Rekursion bei Schachproblemen: Unterschied zwischen den Versionen

keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 2: Zeile 2:
An dieser Stelle sollen einfach nur ein paar Links für Interessierte hinzugefügt werden:
An dieser Stelle sollen einfach nur ein paar Links für Interessierte hinzugefügt werden:


== Dameproblem ==
== Das Damenproblem ==
 
Beim [[wikipedia:Damenproblem]] versucht man 8 Damen so auf dem Schachbrett zu positionieren, dass sich keine der Damen gegenseitig schlagen können.
https://de.wikipedia.org/wiki/Damenproblem
Man versucht 8 Damen auf dem Schachbrett zu positionieren. Dabei müssen die Damen so aufgestellt werden,
dass sich keine Damen gegenseitig schlagen.
{{Aufgabe:Start}}
{{Aufgabe:Start}}
Versuche auf einem 5x5 Feld 5 Damen aufzustellen.  
Versuche auf einem 5x5 Feld 5 Damen aufzustellen.  
 
{{Aufgabe:End}}{{Lösung:Start|Mögliche Lösungen}}
Lösung:
{{Collapse:Start}}
<p5js height="201">https://editor.p5js.org/HerrThiessen/embed/HJJo3XGfE</p5js>
<p5js height="201">https://editor.p5js.org/HerrThiessen/embed/HJJo3XGfE</p5js>
{{Collapse:End}}
{{Lösung:End}}
{{Aufgabe:End}}
 


Ein rekursiver Algorithmus könnte wie folgt aussehen:  
Ein rekursiver Algorithmus könnte wie folgt aussehen:  
<syntaxhighlight >
<pre>
dame(t)  
dame(t)  
  Falls t < 8 ist DANN  
Falls t < 8 ist DANN  
  Wiederhole für alle Positionen (starte bei 0)
Wiederhole für alle Positionen (starte bei 0)
    aktuelle Reihe gleich nächste Position
aktuelle Reihe gleich nächste Position
    Falls die aktuelle Reihe noch frei ist DANN
Falls die aktuelle Reihe noch frei ist DANN
    setze die Dame auf die freie Reihe
setze die Dame auf die freie Reihe
      Falls die Dame mit keiner anderen kollidiert DANN  
Falls die Dame mit keiner anderen kollidiert DANN  
      dame(t+1)
dame(t+1)
      Entferne die aktuelle Dame aus der Reihe
  Entferne die aktuelle Dame aus der Reihe
  SONST
SONST
    speicher die Lösung  
speicher die Lösung  
</syntaxhighlight >
</pre>
 
<p5js >
 
</p5js>


== Springerproblem ==
== Springerproblem ==
## https://de.wikipedia.org/wiki/Springerproblem
# https://de.wikipedia.org/wiki/Springerproblem
## http://www.axel-conrad.de/springer/springer.html
# http://www.axel-conrad.de/springer/springer.html
## https://docplayer.org/41857208-Backtracking-mit-heuristiken.html
# https://docplayer.org/41857208-Backtracking-mit-heuristiken.html


# https://www.mathe-online.at/materialien/matroid/files/schach/schachbrett.html
# https://www.mathe-online.at/materialien/matroid/files/schach/schachbrett.html


#Labyrinth http://www.erasmus-reinhold-gymnasium.de/info/rekursion-iteration/Backtracking_final.pdf
#Labyrinth http://www.erasmus-reinhold-gymnasium.de/info/rekursion-iteration/Backtracking_final.pdf