Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Großes Problem! Logo-Roboter-Labyrinth

Empfohlene Antworten

Veröffentlicht

Hallo,

also erstmal muss ich sagen,dass ich kein Informatiker bin,sondern dieses Fach lediglich dieses Jahr in der Schule gewählt habe.

Ich bin gleich auf ein Problem gestoßen

Unsere Aufgabe lautet:

In Logo einen Roboter programmieren,der aus jedem Labyrinth rausfindet (aus dem es geht)

und was wir über das Labyrinth wissen:

Wanddicke 10

Wandfarbe schwarz [ 0 0 0]

Eingangsfarbe blau

Ausgangsfarbe grün

Also habe ich einen Rechtsgeher entworfen,der immer rechts geht, wenn er kann und wenn nicht sich je nach Farbe etc. so dreht,dass er rechts gehen kann.

Die Prozedur sieht folgendermaßen aus:

pr robo

setpencolor [255 0 0]

setpensize [10]

re 90

sh

vw 10

wenn gleich? pixel [0 0 255] [rw 10 sa vw 10 ende]

wenn gleich? pixel [255 255 255] [rw 10 sa vw 10 robo]

wenn gleich? pixel [255 0 0] [rw 10 li 90 vw 10

wenn gleich? pixel [255 255 255] [rw 10 sa vw 10 robo]]

wenn gleich? pixel [0 0 0] [rw 10 li 90 vw 10

wenn gleich? pixel [255 255 255] [rw 10 sa vw 10 robo]

wenn gleich? pixel [0 0 0] [rw 10 li 90 vw 10

wenn gleich? pixel [255 255 255] [rw 10 sa vw 10 robo]

wenn gleich? pixel [0 0 0] [rw 10 li 90 robo]]]

ende

Das kommt dann auch wunderbar durch "normale"Labyrinthe durch:

my.php?image=logo1yi3.png

Das Problem sind dann etwa solche "Sackgassen".

Zufällig bin ich darauf gekommen,dass es bei einfachen Sackgassen, also wo der Igel einfach nur wieder rückwärts rauslaufen muss, es gut funktioniert, wenn man zwischen den letzten Teil der Prozedur und "ende" einfach noch einfügt:

"setpencolor [ 0 255 255 ] (türkis)

rw 10

sa

vw 10

robo"

Allerdings gibt es noch folgende Problemsackgassen:

my.php?image=logo2hh0.png

my.php?image=logo3wh8.png

Und hier liegt mein wirkliches Problem:

ich komm einfach nicht dahinter, wie ich ´dem Programm sage, dass es solang der roten Spur folgen kann, bis der Rechtsgeher wieder funktioniert.

Wie man, denke ich, erkennen müsste liegt dem ganzen ja die Rekursion zur Grunde.

Dieser Zusatz,der dazu führt "einfache Sackgassen" auch lösen zu können, ist denke ich, nicht ausbaufähig und es war eher Zufall,dass sich das ergeben hat.

Hat jemand von euch vielleicht eine Idee, wie ich mein Programm in dieser Hinsicht erweitern kann?

Es ist wirklich sehr wichtig.

Vielen Dank schon im Vorraus,

Raira

Achja,dass die Bilder nicht funktionieren, hab ich leider auch gemerkt, aber ich kümmer mich da morgen drum,vielleicht kann ja jemand mein Problem trotzdem [ansatzweise] verstehen.

ich werd aus deinem Code da nicht ganz schlau, aber ich kenne diese "Rechtsdreher" in der folgenden Form:


schleife anfang

  wenn gradeaus frei 

    dann geh grade aus

    sonst drehe rechts

schleife ende

oder hab ich dein

der immer rechts geht, wenn er kann
falsch verstanden?

Sinnig wäre ein Roboter, der sich mit der rechten Hand an der Wand festhält:


wenn rechts wand {

  wenn vorne wand {

    drehe links

  } sonst {

     gehe vor

  }

} sonst {

  drehe rechts

  gehe vor

}

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.