Nu moet je uitzoeken hoe je dit ding moet besturen.
Het lijkt erop dat je de onderzeeër een reeks commando’s kan geven zoals forward 1
, down 2
, of up 3
:
forward X
verhoogt de horizontale positie met X
eenheden.down X
verhoogt de diepte met X
eenheden.up X
verlaagt de diepte met X
eenheden.Merk op dat aangezien je een onderzeeër aan het besturen bent, down
en up
een invloed hebben op de diepte, waardoor ze dus het tegenovergestelde effect hebben van wat je zou verwachten.
De koers van de onderzeeër lijkt op voorhand vastgelegd te zijn (de invoer van opgave). Je moet waarschijnlijk uitzoeken waar je heen gaat. Bijvoorbeeld:
forward 5
down 5
forward 8
up 3
down 8
forward 2
Je horizontale positie en diepte beginnen beide op 0
. De bovenstaande commando’s zouden ze dan op de volgende manier aanpassen:
forward 5
telt 5
op bij je horizontale positie, die in totaal 5
wordt.down 5
telt 5
op bij je diepte, die een waarde van 5
krijgt.forward 8
telt 8
op bij je horizontale positie, die in totaal 13
wordt.up 3
vermindert je diepte met 3
, waardoor die de waarde 2
krijgt.down 8
telt 8
op bij je diepte, die een waarde van 10
krijgt.forward 2
telt 2
op bij je horizontale positie, die in totaal 15
wordt.Nadat je deze commando’s uitgevoerd hebt, bereik je een horizontale positie van 15
en een diepte van 10
. (Het product van deze waarden is 150
.)
Bereken de horizontale positie en de diepte die je zou hebben na het volgen van de geplande koers. Wat krijg je als je je finale horizontale positie vermenigvuldigt met je finale diepte? Bepaal dit op de volgende manier:
dive
waaraan de padnaam (string
) moet doorgegeven worden van een tekstbestand met een reeks commando’s voor de onderzeeër. De functie moet het product (number
) teruggeven van de finale horizontale positie en de finale diepte.In deze interactieve sessie gaan we ervan uit dat de tekstbestanden commands01.txt
1 en commands02.txt
2 zich in de huidige directory bevinden.
> dive("commands01.txt")
150
> dive("commands02.txt")
2147104