Niki Programmierung?

1 Antwort

Kenne zwar das Programm nicht, aber sieht aus wie Robot Karol, und wird wohl genauso funktionieren. In diesem Fall kann man einfach einen typischen Labyrinth-Durchlauf-Code benutzen.

Lösung:

Einen Schritt nach vorne machen, sodass du innerhalb des Levels bist.

Und dann einfach in Dauerschleife:

  • Drehe dich nach links
  • Solange vor dir eine Wand ist drehe dich nach rechts
  • Schritt

Not sure wie man die zwei Punkte da einsammelt, aber ggf. einfach nach jedem Schritt noch prüfen, ob man auf so einem Punkt steht, und falls ja, diesen einsammeln. Und evtl. die Dauerschleife nur solange laufen lassen, bis man die zwei Punkte eingesammelt hat - Wie genau man die Anzahl der gesammelten Punkte abfrägt habe ich leider nirgends gefunden, aber vlt. weißt du's. Vlt. gibt's diese Bedingung auch garnicht, dann mach einfach nur eine unendliche Schleife.

Woher ich das weiß:Hobby – Programmieren ist mein Hobby & Beruf

PassTrei 
Fragesteller
 02.04.2022, 23:21

Ich danke dir!

1
MrAmazing2  02.04.2022, 23:57
@PassTrei

Bitte, gerne! :)
Hat's geklappt? Sag bescheid falls du Hilfe brauchst

0
PassTrei 
Fragesteller
 03.04.2022, 00:11
@MrAmazing2

Hey, ich weiß nur nicht wie ich jetzt eine schleife mache ich kann entweder "repeat" oder "while" benutzen. Aber ich weiß nicht was ich als "until" machen kann , es gibt kein wiederhole 10 mal, oder erst nach 2 punkten.

0
PassTrei 
Fragesteller
 03.04.2022, 00:11
@PassTrei

Der code ist

Program ball_suchen;

procedure rechts;

begin

drehe_links;

drehe_links;

drehe_links;

end;

Procedure tunnel;

begin

  if platz_belegt then nimm_auf;

  drehe_links;

  While not vorne_frei do rechts;

  vor;

End;

Begin

  vor;

  tunnel;

End.

   

0
MrAmazing2  03.04.2022, 00:17
@PassTrei

Der Code sieht schonmal gut aus!

Jetzt muss nurnoch irgendwie das "tunnel;" ausgeführt werden bis beide Bälle eingesammelt wurden.

Idee:

  • Repeat tunnel until platz_belegt
  • nimm_auf

Und dann einfach noch ein zweites mal:

  • Repeat tunnel until platz_belegt
  • nimm_auf

Das "if platz_belegt then nimm_auf;" kannst du dann aus tunnel streichen, das brauchen wir darin nicht mehr.

0