Robot in een doolhof

In dit project, ga je een robot programmeren om door verschillende doolhoven heen te komen.

Er zijn 5 doolhoven voor je gemaakt. De code die je gaat schrijven om te ontsnappen uit deze doolhoven moet zo simpel, beknopt, en elegant mogelijk zijn.

Deze oplossing zou bijvoorbeeld werken voor doolhof 1:

Maar een herhaal blok nesten in een andere, zorgt ervoor dat de code beknopter wordt en, zoals de meeste programmeurs zouden vinden, ook eleganter:

Dit werkt omdat het niet uitmaakt welke kant de robot opkijkt wanneer hij zijn bestemming bereikt.

In pseudocode zou je dit kunnen weergeven met BEWEEG_VOORUIT(), DRAAI_RECHTSOM() en DRAAI_LINKSOM().


  1. Bestudeer beide de robot en de bord sprites. Schrijf voor elk gegeven doolhoven, de kortste en meest elegante code om de robot te helpen ontsnappen. Gebruik enkel deze 4 speciale Bewegingblokken (naast de Controle blokken die je nodighebt):




  2. Analyseer de code. Op blokjes papier, teken het doolhof waarvoor deze code bedoeld was. Gebruik Snap! niet.
  3. Deel je tekening met andere studenten, en bespreek hoe je dit gemaakt hebt.

Zelf check: Robot

  1. Deze vraag is vergelijkbaar met degene die je zult zien op het eindexamen.
    De robot in de afbeelding hieronder kan binnen een wit vierkant bewegen en moet eindigen bij het grijze vierkant. Het mag niet binnen het zwarte gedeelte bewegen.

    Hieronder staat een procedure DraaiEnGaan:
    PROCEDURE DraaiEnBeweeg (aantalDraaien, aantalBewegingen)
      {
        HERHAAL aantalDraaien KEER
        {
          DRAAI_LINKSOM ()
        }
        HERHAAL aantalBewegingen KEER
        {
          BEWEEG_VOORUIT ()
        }
      }

    Welke van de onderstaande code zal de robot in het grijze vak doen eindigen?
    DraaiEnBeweeg(1,3)
    DraaiEnBeweeg(1,5)
    DraaiEnBeweeg(1,2)
    DraaiEnBeweeg(1,3)
    DraaiEnBeweeg(3,5)
    DraaiEnBeweeg(1,2)
    DraaiEnBeweeg(3,1)
    DraaiEnBeweeg(5,3)
    DraaiEnBeweeg(2,1)
    DraaiEnBeweeg(1,4)
    DraaiEnBeweeg(3,6)
    DraaiEnBeweeg(1,3)
 
  1. Bouw je eigen doolhof en robot ontsnappingscode voor dat doolhof.
    • Analyseer de Teken je Doolhof code in de Bord-sprite (zie hieronder).
    • Experiment. Als je sommige nullen in eentjes verandert, kun je een pad maken voor de robot om te bewegen.
    • De bord matrix variabele bezit een lijst van lijsten. Elke aparte lijst van nullen en enen corresponderen met een rij van vierkanten in het doolhof.
    • Bewerk bord matrix om een doolhof te maken die je leuk vindt, schrijf dan de Ontsnap Je Doolhof code voor de robot.
TerugVolgende