Als conciërge, wil ik dat de drone zelf een inspectieronde door het lokaal vliegt en vanzelf terugkomt op zijn startpunt, zodat ik zonder vliegervaring de ruimte kan laten controleren.
Een route die halverwege tegen het plafond botst of de batterij leegtrekt, mag nooit beginnen. In deel 2 controleert je script de hele route vóórdat de drone opstijgt.
inspection_route.py. Er is geen theorie: gebruik
wat je weet uit sprint 1–3. Open een hint pas als je echt vastzit.
Voordat de drone opstijgt, controleert het script de complete route aan de regels van de conciërge. Anders dan in sprint 2 stopt het script niet bij de eerste fout: de piloot wil in één keer álle fouten zien, elk met het nummer van het waypoint, zodat hij ze allemaal tegelijk kan verbeteren. Pas als er geen enkele fout is, mag de route door naar deel 3.
| Regel | Wanneer is het goed? |
|---|---|
| Richting | Alleen forward, back, left, right, up of down. |
| Afstand | Per waypoint van 20 tot en met 200 cm. Korter kan de drone niet precies; langer past niet in het lokaal. |
| Totale route | Alle afstanden van de heenweg samen zijn hooguit 800 cm. |
| Hoogte | Na het opstijgen hangt de drone op 80 cm. Tijdens de hele route blijft hij tussen 30 en 200 cm (beide grenzen mogen nog). |
| Batterij | Voor elke 100 cm vliegen — heen én terug samen — reken je 2% batterij. Daarbovenop moet er minstens 25% over blijven. |
up 100 is prima als de drone laag hangt, en fout als hij al hoog zit. Je moet dus onthouden hoe
hoog de drone na elk waypoint is.
Zet deze routes in je code klaar (twee lijsten per route) en controleer ze. Voor de batterij vervang je de meting tijdelijk door een vast getal. Bepaal eerst op papier welke fouten er in zitten; er staat bewust geen verwachte uitvoer bij.
| Route | Waypoints | Batterij |
|---|---|---|
| A | forward 150 · left 100 · up 50 · forward 100 · right 100 · down 50 | 80% |
| B | forward 250 · spin 90 · up 150 · back 100 | 80% |
| C | route A | 40% |
| D | down 50 · forward 200 · forward 200 · forward 200 · forward 200 · left 20 | 90% |
Bedenk er daarna zelf twee bij: één route die precies op alle grenzen zit en tóch goed is, en één met een fout die geen van de routes hierboven heeft.
exit(), en waarop controleert hij?enumerate() door de route, dan heb je bij elk waypoint zijn plek. Begint jouw nummering bij 0 of bij 1 — en wat verwacht de piloot?up en down. Welke waarde heeft je hoogte-teller vóór het eerste waypoint? En controleer je de hoogte vóór of ná het optellen?challenge.md.challenge.md.