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

Aus Informatik-Box
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 6: Zeile 6:
{{Aufgabe:Start}}
{{Aufgabe:Start}}
Versuche auf einem 5x5 Feld 5 Damen aufzustellen.  
Versuche auf einem 5x5 Feld 5 Damen aufzustellen.  
Lösung:
{{Collapse:Start}}
<p5js height="201">https://editor.p5js.org/HerrThiessen/embed/HJJo3XGfE</p5js>
{{Collapse:End}}
{{Aufgabe:End}}
{{Aufgabe:End}}


Ein rekursiver Algorithmus könnte wie folgt aussehen:  
Ein rekursiver Algorithmus könnte wie folgt aussehen:  
<syntaxhighlight >
<syntaxhighlight >
dame(t, zeilen)  
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)
Zeile 17: Zeile 23:
     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, zeilen)
       dame(t+1)
       Entferne die aktuelle Dame aus der Reihe
       Entferne die aktuelle Dame aus der Reihe
   SONST
   SONST

Version vom 8. Januar 2019, 23:04 Uhr

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.

Icon Heft.png
Arbeitsauftrag

Versuche auf einem 5x5 Feld 5 Damen aufzustellen.

Lösung:

Klicken, um das Programm zu starten.



Ein rekursiver Algorithmus könnte wie folgt aussehen:

dame(t) 
  Falls t < 8 ist DANN 
  	Wiederhole für alle Positionen (starte bei 0)
    aktuelle Reihe gleich nächste Position
    Falls die aktuelle Reihe noch frei ist DANN
    	setze die Dame auf die freie Reihe
      Falls die Dame mit keiner anderen kollidiert DANN 
      	dame(t+1)
      Entferne die aktuelle Dame aus der Reihe
  SONST
    speicher die Lösung

  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