en to de translation catalogue (27 entries)

note: type: Title-text
en: Shadow
de: Schatten

note: type: Resume-text
en: Follow a bot, as if you were its shadow.
de: Beschatten Sie einen Roboter.

note: type: ScriptName-text
en: Follow
de: Schatten

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

note: type: Plain text
en: You must follow the <a object|bottr>target bot</a> with the explosive device, but without touching it, otherwise it will blow up. Every time the target bot stops, you must be close to it (less than 10m). After you managed to stay close to the target bot at 10 successive stops, it will lead you to the finishing pad, and the exercise is over. At every stop, the target bot checks that you are there. If you are not there, you must start over again.
de: Folgen Sie der <a object|bottr>mobilen Zielscheibe</a> mit dem Sprengkörper, ohne sie zu berühren, denn andernfalls geht sie in die Luft. Jedes Mal, wenn der Ziel-Roboter stoppt, müssen Sie sich in seiner Nähe befinden (weniger als 10m Abstand). Wenn Sie es geschafft haben, 10 mal hintereinander bei einem Stopp nahe genug am Ziel-Roboter zu sein, wird er Sie zur Zielfläche führen und die Übung ist bestanden. Bei jedem Stopp prüft der Ziel-Roboter, ob Sie in der Nähe sind. Falls nicht, müssen Sie von vorn beginnen.

note: type: \b; header
en: General principle
de: Vorgehensweise:

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

note: type: Bullet: 'o'
en: Look for the target bot.
de: Suche nach Zielscheibe.

note: type: Bullet: 'o'
en: Calculate the distance to the bot.
de: Berechne den Abstand zu diesem Roboter.

note: type: Bullet: 'o'
en: if the distance to the target bot is less than 5m, move backward.
de: Falls der Abstand kleiner ist als 5m, fahre rückwärts.

note: type: Bullet: 'o'
en: Otherwise, calculate the direction of the target bot, and move towards it.
de: Ansonsten berechne die Richtung und bewege dich darauf zu.

note: type: Plain text
en: As many times before, use <code><a cbot|while>while</a> (true)</code> in order to perform the infinite loop:
de: Wie schon so häufig zuvor benutzen Sie auch hier ein <code><a cbot|while>while</a> (<a cbot|true>true</a>)</code>, um die Endlosschleife zu realisieren:

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

note: type: Plain text
en: Look for the target bot with the instruction <code><a cbot|radar>radar</a></code>:
de: Suchen Sie mit der <code><a cbot|radar>radar</a></code>-Anweisung nach der Zielscheibe:

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

note: type: Plain text
en: You do not have to test if the radar found a target bot: there must be one.
de: Sie müssen nicht testen, ob das Radar einen Ziel-Roboter gefunden hat: es muss einen geben.

note: type: Plain text
en: Use the instruction <code><a cbot|dist>distance</a>( , )</code> to calculate the distance between two points. The first point will be the position of your own bot, given by <code>position</code>. The second point is the position of the target bot, given by <code>target.position</code>.
de: Benutzen Sie die Anweisung <code><a cbot|dist>distance</a>( , )</code>, um den Abstand zwischen zwei Punkten zu berechnen. Der erste Punkt ist hierbei die Position Ihres eigenen Roboters, gegeben durch <code><a cbot|object>position</a></code>. Der zweite Punkt ist die Position des Ziel-Roboters, <code>target.<a cbot|object>position</a></code>.

note: type: Source code
en: <c/>len = distance(position, target.position);
de: <c/>len = <a cbot|dist>distance</a>(<a cbot|object>position</a>, target.<a cbot|object>position</a>);

note: type: Plain text
en: If the distance to the target bot is smaller than 5m, move backward with a speed inversely proportional to the distance: the closer you are to the bot, the faster you must move backward.
    	Distance = 5.0 meters -> speed =  0.0
    	Distance = 2.5 meters -> speed = -0.5
    	Distance = 0.0 meters -> speed = -1.0
    You can use the <a cbot|expr>expression</a> <code>distance/5-1</code> in order to achieve this, together with the <code><a cbot|if>if</a></code> to test if the target is closer than 5m:
de: Falls der Abstand zum Ziel-Roboter kleiner als 5m ist, bewegen Sie sich mit einer vom Abstand abhängigen Geschwindigkeit rückwärts: je näher Sie am Ziel-Roboter sind, umso schneller müssen Sie sich zurückbewegen.
    	Abstand = 5.0 Meter -> Geschw. =  0.0
    	Abstand = 2.5 Meter -> Geschw. = -0.5
    	Abstand = 0.0 Meter -> Geschw. = -1.0
    Sie können den <a cbot|expr>Ausdruck</a> <code>distance/5-1</code> verwenden, um dies zu erreichen. Zusammen mit der <code><a cbot|if>if</a></code>-Anweisung für den Test, ob der Abstand kleiner ist als 5m sollte es so aussehen:

note: type: Source code
en: <c/>if ( len < 5 )  // too close ?
    {
    	motor(len/5-1, len/5-1);  // moves backward
    }
de: <c/>if ( len < 5 )  // zu dicht ?
    {
    	motor(len/5-1, len/5-1);  // rückwärts fahren
    }

note: type: Plain text
en: If the distance to the target is greater than 5m, move towards the target. First calculate the angle necessary to face the target with the instruction <code><a cbot|direct>direction</a></code>. You can then adjust the speed of the right-hand and left-hand motor in order to follow the target:
de: Wenn der Abstand zur Zielscheibe größer ist als 5m, bewegen Sie sich auf sie zu. Berechnen Sie hierzu zunächst den Winkel mit der Anweisung <code><a cbot|direct>direction</a></code>. Sie können dann die Geschwindigkeiten des linken und des rechten Motors so anpassen, dass sich der Roboter auf das Ziel zubewegt:

note: type: Source code
en: <c/>else
    {
    	dir = direction(target.position);
    	if ( dir >= 0 )  // target on the left side?
    	{
    		motor(1-dir/90, 1);
    	}
    	else  // target on the right side?
    	{
    		<n/>it is up to you to fill in<c/>
    	}
    }
de: <c/><a cbot|if>else</a>
    {
    	dir = <a cbot|direct>direction</a>(target.<a cbot|object>position</a>);
    	<a cbot|if>if</a> ( dir >= 0 )  // Ziel auf linker Seite?
    	{
    		<a cbot|motor>motor</a>(1-dir/90, 1);
    	}
    	<a cbot|if>else</a>  // Ziel auf rechter Seite?
    	{
    		<n/>Ihre Aufgabe, dies auszufüllen<c/>
    	}
    }

note: type: Plain text
en: When the target is on your left, <code>dir</code> takes a positive value, ranging between 0 and 180. The <a cbot|expr>expression</a> <code>1-dir/90</code> returns a speed ranging between 1 and -1, according to the direction:
    	direction =   0 -> speed =  1.0
    	direction =  45 -> speed =  0.5
    	direction =  90 -> speed =  0.0
    	direction = 135 -> speed = -0.5
    	direction = 180 -> speed = -1.0
de: Wenn der Zielroboter sich links von Ihrer Bewegungsrichtung befindet, enthält <code>dir</code> einen positiven Wert zwischen 0 und 180. Der <a cbot|expr>Ausdruck</a> <code>1-dir/90</code> ergibt eine Geschwindigkeit zwischen 1 und -1, abhängig von der Richtung:
    	Richtung =   0 -> Geschw. =  1.0
    	Richtung =  45 -> Geschw. =  0.5
    	Richtung =  90 -> Geschw. =  0.0
    	Richtung = 135 -> Geschw. = -0.5
    	Richtung = 180 -> Geschw. = -1.0

note: type: Plain text
en: When the target is on the right side, <code>dir</code> is negative, ranging between 0 and -180.
de: Ist der Zielroboter auf der linken Seite, dann ist <code>dir</code> negativ und liegt zwischen 0 und -180.

note: type: Plain text
en: The only task left for you now is to declare the <a cbot|var>variables</a> that you use in the program. <code>target</code> is of type <code>object</code>, whereas <code>dir</code> and <code>len</code> are of type <code>float</code>.
de: Die einzige Aufgabe, die Ihnen noch bleibt, ist die Deklaration der <a cbot|var>Variablen</a> die Sie im Programm benutzen. <code>target</code> ist vom Typ <code><a cbot|object>object</a></code>, wogegen <code>dir</code> und <code>len</code> vom Typ <code><a cbot|float>float</a></code> sind.

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>.
