Robot in een doolhof

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

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 de robot- en bordsprites. Schrijf voor elk gegeven doolhof, de kortste en meest elegante code om de robot te helpen ontsnappen. Gebruik enkel deze 4 speciale Bewegingblokken (naast de Controle blokken die je nodig hebt):




  2. Analyseer de code. Teken het doolhof op ruitjespapier na. Gebruik Snap! niet.
  3. Deel je tekening met andere studenten, en bespreek hoe je dit gemaakt hebt.

Zelf check: Robot

  1. 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 stukjes code zorgt ervoor dat de robot in het grijze vak uitkomt?
    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-ontsnapcode voor dat doolhof.
    • Analyseer de Teken je Doolhof code in de Bord-sprite (zie hieronder).
    • Experimenteer. 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 hoort bij een rij van vierkanten in het doolhof.
    • Bewerk bord matrix om een doolhof te maken dat je leuk vindt, schrijf dan de Ontsnap Je Doolhof code voor de robot.
TerugVolgende