en to de translation catalogue (29 entries)

note: type: Resume-text
en: Use the radar to find lots of stupid blue crosses.
de: Benutzen Sie den Radar, um hier endlich aufzuräumen.

note: type: ScriptName-text
en: Find
de: Ordnung1

note: type: \b; header
en: Exercise
de: Übung

note: type: Plain text
en: Let the bot find all the <a object|waypoint>blue crosses</a> on the ground. As soon as the bot passed over one of the crosses, it will disappear. Here is the general principle that you will apply:
de: Lassen Sie den Roboter alle <a object|waypoint>blauen Kreuze</a> auf dem Boden finden. Sobald der Roboter ein Kreuz passiert hat, verschwindet es. Hier das allgemeine Prinzip nach dem Sie vorgehen müssen:

note: type: Plain text
en: Repeat forever:
de: Wiederhole immer wieder:

note: type: Bullet: 'o'
en: Look for a cross
de: Suche nach einem Kreuz.

note: type: Bullet: 'o'
en: If there is none, stop the program.
de: Falls keines mehr existiert, beende das Programm.

note: type: Bullet: 'o'
en: Calculate the direction of the cross.
de: Berechne die Richtung des Kreuzes.

note: type: Bullet: 'o'
en: Set the speed of the motors in such a way that they will find their way to the cross.
de: Stelle passende Motorgeschwindigkeiten ein, um das Kreuz zu erreichen.

note: type: \b; header
en: The program
de: Das Programm

note: type: Plain text
en: Use a <code><a cbot|while>while</a></code> loop in order to repeat several instructions over and over:
de: Benutzen Sie eine <code><a cbot|while>while</a></code>-Schleife, um einige Anweisungen immer und immer wieder auszuführen:

note: type: Source code
en: <code>while ( true )
    {
    	</code>instructions...<c/>
    }
de: <code><a cbot|while>while</a> ( <a cbot|true>true</a> )
    {
    	</code>Anweisungen...<c/>
    }

note: type: Plain text
en: The instruction <code><a cbot|radar>radar</a></code> will detect the blue crosses and put their description into a variable, for example <code>spot</code>. In this case, <code><a cbot|radar>radar</a>()</code> needs only one parameter, i.e. the category of the object that it must look for:
de: Die Anweisung <code><a cbot|radar>radar</a></code> findet die blauen Kreuze und schreibt ihre Beschreibung in eine Variable, zum Beispiel <code>spot</code>. In diesem Fall benötigt <code><a cbot|radar>radar</a>()</code> nur einen Parameter, und zwar die Kategorie des Objekts, nach dem gesucht werden soll:

note: type: Source code
en: <c/>spot = radar(WayPoint);
de: <c/>spot = <a cbot|radar>radar</a>(<a cbot|category>WayPoint</a>);

note: type: Plain text
en: Once all the crosses have been found, <code>radar</code> will return the value <code><a cbot|null>null</a></code>. You will have to test this case and react accordingly with the instruction <code><a cbot|if>if</a></code>:
de: Wenn alle Kreuze gefunden wurden, gibt <code><a cbot|radar>radar</a></code> den Wert <code><a cbot|null>null</a></code> zurück. Sie müssen diesen Fall prüfen und entsprechend reagieren. Benutzen Sie hierfür eine <code><a cbot|if>if</a></code>-Anweisung:

note: type: Source code
en: <c/>if ( spot == null )  // no more ?
    {
    	motor(0, 0);  // stops the motors
    	break;        // stops the loop
    }
de: <c/><a cbot|if>if</a> ( spot == <a cbot|null>null</a> )  // keine mehr ?
    {
    	<a cbot|motor>motor</a>(0, 0);  // Motoren stoppen
    	<a cbot|break>break</a>;        // Schleife verlassen
    }

note: type: Plain text
en: <n/>The instruction <code><a cbot|break>break</a></code> will stop the infinite loop <code>while (true)</code>.
de: <n/>Die Anweisung <code><a cbot|break>break</a></code> setzt der Endlosschleife <code><a cbot|while>while</a> (true)</code> ein Ende.

note: type: Plain text
en: Use the instruction <code><a cbot|direct>direction</a>()</code> to calculate the angle of the rotation that the bot must perform in order to turn towards the blue cross. The coordinates of the object are given by <code>spot.position</code>. The following line will put the angle of the necessary rotation into the <a cbot|var>variable</a> <code>dir</code>:
de: Verwenden Sie die Anweisung <code><a cbot|direct>direction</a>()</code>, um den Winkel zu berechnen, der für die Drehung des Roboters in die Richtung des Kreuzes erforderlich ist. Die Koordinaten dieses Objekts sind gegeben durch <code>spot.<a cbot|object>position</a></code>. Folgende Zeile schreibt den Winkels der erforderlichen Drehung in die <a cbot|var>Variable</a> <code>dir</code>:

note: type: Source code
en: <c/>dir = direction(spot.position);
de: <c/>dir = <a cbot|direct>direction</a>(spot.<a cbot|object>position</a>);

note: type: Plain text
en: The value of the angle is positive if the blue cross is on your left hand, and negative if it is on your right hand. If the cross to be reached is on your left hand, you must set the right-hand motor to full speed, and set the left-hand motor to a lower speed, according to the angle:
de: Der Winkel ist positiv, wenn das Kreuz sich linkerhand befindet und negativ, wenn es sich rechts befindet. Wenn das Kreuz sich auf der linken Seite befindet, setzen Sie den rechten Motor auf Höchstgeschwindigkeit und den linken Motor auf eine geringere Geschwindigkeit, je nach Winkel:

note: type: Plain text
en:     direction = <code>  0</code> -> speed = <code> 1.0</code>
        direction = <code> 45</code> -> speed = <code> 0.5</code>
        direction = <code> 90</code> -> speed = <code> 0.0</code>
        direction = <code>135</code> -> speed = <code>-0.5</code>
        direction = <code>180</code> -> speed = <code>-1.0</code>
de:     Richtung = <code>  0</code> -> Geschw. = <code> 1.0</code>
        Richtung = <code> 45</code> -> Geschw. = <code> 0.5</code>
        Richtung = <code> 90</code> -> Geschw. = <code> 0.0</code>
        Richtung = <code>135</code> -> Geschw. = <code>-0.5</code>
        Richtung = <code>180</code> -> Geschw. = <code>-1.0</code>

note: type: Plain text
en: The graphic below shows the speed of the left-hand and right-hand motor as set by the instruction <code><a cbot|motor>motor</a></code>, according to the angle:
de: Die untere Abbildung zeigt die Geschwindigkeiten des rechten und linken Motors, wie sie durch die Anweisung <code><a cbot|motor>motor</a></code> in Abhängigkeit vom Winkel gesetzt werden:

note: type: Plain text
en: If the cross is straight ahead, the angle is 0 degrees. The motors will get the speeds 1 and 1, which means full speed ahead. If the cross is behind, the right motor will be set to speed -1: it will turn around. You can use the <a cbot|expr>expression</a> <code>1+dir/90</code> in order to calculate the necessary speed of the motors:
de: Befindet sich das Kreuz genau in Fahrtrichtung, dann ist der Winkel 0 Grad. Die Motoren bekommen die Geschwindigkeiten 1 und 1, was für Höchstgeschwindigkeit voraus steht. Liegt das Kreuz hinter dem Roboter, wird die Geschwindigkeit des rechten Motors auf -1 gesetzt: der Roboter dreht sich. Sie können den <a cbot|expr>Ausdruck</a> <code>1+dir/90</code> verwenden, um die erforderlichen Geschwindigkeiten für die Motoren zu berechnen:

note: type: Source code
en: <c/>if ( dir < 0 )  // on the right side?
    {
    	motor(1, 1+dir/90);  // turns more or less
    }
de: <c/><a cbot|if>if</a> ( dir < 0 )  // auf rechter Seite?
    {
    	<a cbot|motor>motor</a>(1, 1+dir/90);  // mehr oder weniger drehen
    }

note: type: Plain text
en: Use the same principle if the angle has got a positive value, ranging between 0 and 180 degrees. It is up to you to work out the exact instructions to be performed:
de: Benutzen Sie das gleiche Prinzip, falls der Winkel einen positiven Wert zwischen 0 und 180 Grad hat. Es ist Ihre Aufgabe, die exakten Anweisungen zu erarbeiten:

note: type: Source code
en: <code>else  // on the left side?
    {
    	</code>up to you to fill in here...<c/>
    }
de: <code><a cbot|if>else</a>  // auf linker Seite?
    {
    	</code>Füllen Sie dies aus...<c/>
    }

note: type: Plain text
en: At the beginning of the program, you must still declare all the variables. <code>spot</code> is of type <code><a cbot|object>object</a></code>, whereas <code>dir</code> is of type <code><a cbot|float>float</a></code>.
de: Ganz am Anfang des Programms müssen Sie alle verwendeten Variablen deklarieren. <code>spot</code> ist vom Typ <code><a cbot|object>object</a></code>, wogegen <code>dir</code> vom Typ <code><a cbot|float>float</a></code> ist.

note: type: \t; header
en: See also
de: Siehe auch

note: type: Plain text
en: <a cbot>Programming</a>, <a cbot|type>types</a> and <a cbot|category>categories</a>.
de: Die <a cbot>CBOT-Sprache</a>, die <a cbot|type>Variablentypen</a> und die <a cbot|category>Kategorien</a>.
