207b
<< <> >>

Die Lösung

Man sehe für die Motoren Benzintanks vor.

Der Kraftstoff

  1. Pro Etappe verbraucht der Motor (auch wenn er nicht läuft!) 13 Liter (die Anzahl PLOPs, die Winkeldrehung).
  2. Ist der Kraftstofftank nahezu leer, dann werden genau 30 Liter hinzugetankt (die Anzahl Etappen, der größte Winkel).

Die Überlegung

Pro Etappe verbraucht er 13 Liter, über 30 Etappen: 30 * 13 Liter.
30 * 13 = 13 * 30.
Wie oft wird er tanken müssen?
Richtig, 13-mal. Und wie viele Schritte sollten es noch gleich sein? ...

Und hier die Lösung:

Wenn in einer Etappe nichts mehr im Tank ist, wird getankt und gePLOPt. Die übrigen (17) Etappen sind PILI. Nun lasse man den Benzintank beiseite und merke sich den Gedankengang, denn der wird im folgenden Code verwendet.

Der Forth-Code

Forth file: gc207.frt

 \ ROBOTER-ARM
 MARKER -ARM FORTH DEFINITIONS DECIMAL
 : VARIABLES ( n - ) CREATE CELLS ALLOT
   DOES> ( index body - adresse ) SWAP CELLS + ;

 5 DUP CONSTANT #MOTOREN
 DUP VARIABLES HIER       \ Liste der Motorstellungen
 DUP VARIABLES DORT       \ Liste der Zielstellungen
 DUP VARIABLES SCHRITT    \ -1 oder +1 (Richtungen)
 DUP VARIABLES TANK       \ Kraftstoffmenge
 DUP VARIABLES VERBRAUCH  \ Verbrauch pro Etappe
 CELLS   0 HIER   SWAP 0 FILL

 0 VALUE #ETAPPEN         \ Fuer den laengsten Weg
 20 VALUE WARTE           \ Verzoegerung pro Etappe

 : ZIEL ( m0 m1 m2 m3 m4 - ) \ Ziel festlegen
   #MOTOREN BEGIN 1-
      TUCK DORT !
   ?DUP 0= UNTIL ;
>>