2. Lägg mojängen i verktygsfacket

20 min

Nu är det dags för robotarna att få sina detektivverktyg och utföra övningsuppdrag för att lära känna verktygen. De verktyg som en ny robotdetektiv behöver är en mojäng, detektor och scanner.

Verktygen förvaras i en inbyggd verktygsförvaring i robotens “mage”. I verktygsförvaringen finns bara plats för sex verktyg och den är uppdelad i två fack. Roboten kan bara komma åt det yttersta verktyget i vardera fack. I ena facket läggs de verktyg som ska användas på uppdraget. När de sedan har använts läggs de i det andra facket.

Övningsuppdragen sker på tid och det är viktigt att verktygen ligger i rätt ordning: det som ska användas först ska ligga längst ut och det som ska användas sist ska ligga längst in.

Så här går övningsuppdraget till:

Först ska robotarna kolla så att det inte finns några osynliga fällor, då används scannern. Sedan ska den hemliga lådan i rummet hittas med hjälp av detektorn. När de hittat lådan öppnas den med hjälp av mojängen. Så här ser uppdraget ut för robotteamet som övervakar övningen:

Frågor

  1. I vilken ordning ska verktygen ligga i verktygsfacket för att robotarna ska kunna utföra uppdragen optimalt (så bra och snabbt som möjligt)?

  2. Skriv ett nytt uppdrag till robotarna där detektorn används först och scannern sist.

  3. Hur skulle verktygsfacket i roboten kunna designas för att det verktyg som stoppas in först också kan kommas åt först?

Vad har detta med datorer och kod att göra?

Exemplet med verktygsförvaringen kan liknas vid en datastruktur. I programmering används datastrukturer för att ordna data (t ex ord eller siffror) så att datorn effektivt kan lagra och komma åt dem. Det finns olika sorters datastrukturer, där en lista är den enklaste formen.

Facken i robotarnas verktygsförvaring är som datastrukturen stack (engelskans stapel), där det man stoppar in sist tas ut först. Det är lite som en tallriksstapel i skolmatsalen – det går bara att ta den tallrik som ligger överst, som är den som sist lagts på stapeln. Motsatsen, att det man stoppar in först tas ut först, kallas för en .

Använder du ett musikprogram där du kan lägga till låtar i en lista för att spelas lite senare? Läggs de i en eller stack? Vad är bra med det sättet? Vad är sämre?