Robot Karol bedingte Wiederholung "dynamische Treppe"

pippo289

Cadet 2nd Year
Registriert
Sep. 2015
Beiträge
25
Hallo,

ich versuche nun seit Tagen den Quest 33 "dynamische Treppe" bei robot Karol zu lösen und komme einfach nicht weiter. Egal, was ich probiere, ich komme nicht auf die Lösung, da ich noch nichts gefunden habe, was einem Algorithmus entspricht, der jede Treppe bauen kann, egal wie groß sie ist und sich nur an der Marke im Raum orientiert.

karol problem.png
 
Tipp: Rekursion. (edit: geht vermutlich auch ohne; edit #2: vermutlich doch nicht, da die Operationen recht eingeschränkt sind 🤷‍♂️ )
Tipp 2: setzte am Anfang jeder Zeile eine neue Marke. Dann musst du nur bis zur rechten Marke laufen und dann wieder zur selbstgesetzten Marke zurück.

Ansonsten: ich habe da mal was gebaut:
Code:
baueRechts

Anweisung baueRechts
  Hinlegen
  Schritt
  wenn IstMarke dann
    Beenden
  endewenn
  MarkeSetzen
  wiederhole immer
    Hinlegen
    Schritt
    wenn IstMarke dann
      laufeLinks
    endewenn
  endewiederhole
endeAnweisung

Anweisung laufeLinks
  LinksDrehen(2)
  wiederhole immer
    Schritt
    wenn IstMarke dann
      MarkeLöschen
      RechtsDrehen(2)
      baueRechts
    endewenn
  endewiederhole
endeAnweisung
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: pippo289
Dein Beitrag enthält keine Frage und keine Beschreibung der Aufgabe. "Baue eine Treppe bis zur Marke" wird nicht die ganze Aufgabe sein, denn mir stellen sich da ein paar Fragen ob den Randbedingungen.
 
Hallo, danke für die Antworten. Also mit Rekursion habe ich auch gedacht. Hab es mehrfach probiert, aber keine konkrete Lösung bekommen.

@BeBur
Ich habe extra den Link sowie den Screenshot eingefügt, sodass man es bestmöglich nachvollziehen kann. Doch - es geht genau darum, eine Treppe zu bauen, die bis zur Marke geht (allerdings ist die Marke halt mal nach 3 Feldern nach Beginn, mal erst nach 4 Feldern und die Treppe dementsprechend höher). Die Möglichkeiten, welche der Roboter hat, siehst du im Spickzettel (auch auf dem Screenshot zu sehen).
 
pippo289 schrieb:
Ich habe extra den Link sowie den Screenshot eingefügt
Der Link wurde offenbar verschluckt, da ist keiner in deinem Beitrag. Oder meinst du oben im Bild? Den solltest du als Text in den Beitrag reineditieren.

Laufe doch n-1 nach vorne, platziere k=n token, gehen einen Schritt zurück, platziere k=n-1 token und so weiter bis k<1
 
@BeBur danke für deine Antwort, wie gesagt - das Prinzip/ die Idee habe ich ja auch bereits gehabt/ geäußert, das ist mir alles klar. Jedoch lässt sich das eben nicht so einfach in den Robot-Karol Code umsetzen. Da ist das alles bisschen komplizierter. Kannst gern mal versuchen, deine Idee umzusetzen und eine Lösung präsentieren - würde mich freuen, wenn noch jemand mitknobelt. 😉

@Wo bin ich hier deinen Code habe ich noch nicht probiert, da ich noch nicht am Rechner war. Mach ich heute Abend. Bin gespannt.
 
Nachtrag:

Vielen, vielen Dank @Wo bin ich hier --> ich habe den Code jetzt getestet und er funktioniert. Musste mich aber erst mal hart reindenken, wie du es gemacht hast, aber die Idee mit der Marke ist es, was mir gefehlt hat. Du setzt quasi noch eine zusätzliche Marke als Orientierung, die du dann wieder entfernst, was genial ist, denn so wird dieses Problem gelöst, bei dem bauen in die andere Richtung. Mega smart!

Vielen Dank!
 
  • Gefällt mir
Reaktionen: Wo bin ich hier
Nachtrag II:

dieser Code hier funktioniert auch und ist natürlich viel einfacher, da können auch die Schüler drauf kommen, aber für die Lösung war ich wohl etwas zu verkopft, da sie eben "nur" für die drei angegebenen Level funktioniert und kein allgemeiner Algorithmus ist.
1.png
 
@pippo289 wenn du den Teil mit "wenn IstMarke dann" in eine Schleife machst und als Zähler nicht 2/3/4 machst, sondern als Variable und dann n+1 - dann hast du deinen Algorithmus ;)
 
@User38 das funktioniert so leider nicht, da Karol keine Variable wie "n+1" kennt, sonst wäre es natürlich recht easy einen allgemeinen Algorithmus zu schreiben ;)
 

Ähnliche Themen

Antworten
4
Aufrufe
2.492
Antworten
5
Aufrufe
3.865
Zurück
Oben