Programmieren eines Roboters?
Moin!
Meine Schule hat einen Informatik-Adventskalender. Die Aufgabe heute ist es, ein Roboter zu programmieren.
Ich weiß schon, dass ich die Zahlen in einer Liste speichern muss und dem Roboter dann soviele Schritte wie in der Liste angegeben sind laufen lassen muss. Jedoch weiß ich nicht genau, wie ich die Liste machen soll. Kann wer weiterhelfen?
"Der Roboter muss zum Schlitten zurückkehren. Dabei darf er sich nicht von den Asteoriden aufhalten lassen.
Die sechs Zahlen vor dem Roboter geben an, in welchen Spalten der Durchbruch in den Astoridenreihen ist:
Die Zahl in Spalte 2 gibt die Postion des Durchbruches in der untersten Zeile an; Die Zahl in Spalte 3 gibt die Position des Durchbruches in der nächsten Zeile an; usw.
Die Positionen der Durchbrüche sind immer aufsteigend.
Hinweis: Die Asteoridenreihen sind immer durch eine leere Zeile voneinander getrennt. Es gibt immer 6 Asteoridenreihen."
1 Antwort
Also entweder nimmst du eine Zählervariable , die du immer hochzählst je Reihe und mit der du bestimmst auf welches Feld der Liste du zugreifst:
Oder du nimmst immer das erste/letzte Element und entfernst dieses nach der benutzung.
Oder du berechnest dir den Index in der Liste aus der Zeile in der du dich befindest.
Erstmal: Ich glaube du befüllst die Liste falschherum. Kannst du evtl. mal dir die Listendaten anzeigen lassen, dann kannst du das überprüfen.
Dann: Du gehst bis zur Lücke und gehst hindurch. Dann willst du zur nächsten Lücke gehen.
Problem aber: Die Lücken sind absolut vom linken rand aus adressiert. Di addressierst sie aber relativ zur vorherigen Lücke.
Sprich: Entweder läufst du erst bis zum linken Rand bevor du dich zur nächsten Lücke aufmachst oder du berechnest die Differenz zur vorherigen Lücke verwendest diese.
EDIT: Ach ne, ich Korrigiere: Du adressierst ja gar nicht, du machst das anders. Das Problem wird eher sien, dass du in die richtige Richtung laufen musst?
Wobei das auch nicht das Problem sien sollte, wenn es aussieht wie auf dem Bild. Dann vielleichtdoch nur eine verkehrte Reihenfolge?
Ich weiß es leider auch nicht. Habe es jetzt so gemacht, dass der Roboter die Liste richtig herrum befüllt, aber trotzdem funktioniert es nicht.
Ich sehe unter der anderen Antwort du hast die Lösung gefunden.
Jetzt sehe ich das auch und um es genauer auszuführen: Du wolltest den Index z1+1 ersetzen. Du erhöhst z1 dabei aber nicht, deshalb ersetzt du immer denselben Index.
Zum anderen kann es natürlich auch noch zusätzlich sein, dass der Index erst existieren muss, bevor er ersetzt werden kann.
Moin, also ich habe jetzt bisschen probiert. Die erste Spalte geht jetzt aber danach läuft der Roboter einfach weiter bis nach ganz hinten, und ich weiß nicht wieso.
Hier meine aktuelle Lösung: https://ibb.co/tXBzRBb