en to ru translation catalogue (24 entries)

note: type: Title-text
en: Shadow
ru: Тень

note: type: Resume-text
en: Follow a bot, as if you were its shadow.
ru: Следуйте за ботом, как будто вы его тень.

note: type: \b; header
en: Exercise
ru: Упражнение

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.
ru: Вы должны следовать за <a object|bottr>целевым ботом</a> со взрывным устройством, не прикасаясь к нему, иначе он взорвется. Каждый раз, когда бот останавливается, вы должны находится вблизи от него (менее 10 метров). После того, как вам удастся остановиться неподалеку от бота 10 раз, он отведет вас на финишную площадку, и упражнение будет выполнено. При каждой остановке целевой бот проверяет ваше присутствие за спиной. Если вас там, вы должны будете начать все с самого начала.

note: type: \b; header
en: General principle
ru: Общий принцип

note: type: Plain text
en: Repeat forever :
ru: Повторять всегда :

note: type: Bullet: 'o'
en: Look for the target bot.
ru: Искать целевого бота.

note: type: Bullet: 'o'
en: Calculate the distance to the bot.
ru: Рассчитать расстояние до бота.

note: type: Bullet: 'o'
en: if the distance to the target bot is less than 5m, move backward.
ru: если расстояние до целевого бота меньше 5 метров, отойти назад.

note: type: Bullet: 'o'
en: Otherwise, calculate the direction of the target bot, and move towards it.
ru: Иначе рассчитать направление до целевого бота и двигаться к нему.

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:
ru: Как и много раз до этого, используйте <code><a cbot|while>while</a> (true)</code>, чтобы создать бесконечный цикл:

note: type: Source code
en: <code>while (true)
    {
    	</code>instructions to be repeated ...<c/>
    }
ru: <code>while (true)
    {
    	</code>инструкции, которые следует повторять ...<c/>
    }

note: type: Plain text
en: Look for the target bot with the instruction <code><a cbot|radar>radar</a></code>:
ru: Ищите целевого бота с помощью инструкции <code><a cbot|radar>radar</a></code>:

note: type: Plain text
en: You do not have to test if the radar found a target bot: there must be one.
ru: Вы не должны проверять то, нашел ли радар целевого бота: он там всего один.

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>.
ru: Используйте инструкцию <code><a cbot|dist>distance</a>( , )</code> чтобы рассчитать расстояние между двумя точками.  Первая точка будет позицией вашего собственного бота, заданная <code>position</code>. Вторая точка будет позицией целевого бота, заданная <code>target.position</code>.

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:
ru: Если расстояние до целевого бота меньше 5 метров, отойдите назад со скоростью, обратно пропорциональной расстоянию: чем ближе вы к боту, тем быстрее вы должны отойти назад.
    	Расстояние = 5.0 метров -> скорость =  0.0
    	Расстояние = 2.5 метров -> скорость = -0.5
    	Расстояние = 0.0 метров -> скорость = -1.0
    Теперь вы можете использовать <a cbot|expr>выражение</a> <code>distance/5-1</code> чтобы выполнить это, вместе с <code><a cbot|if>if</a></code> , чтобы проверить, не находится ли цель ближе 5 метров:

note: type: Source code
en: <c/>if ( len < 5 )  // too close ?
    {
    	motor(len/5-1, len/5-1);  // moves backward
    }
ru: <c/>if ( len < 5 )  // слишком близко ?
    {
    	motor(len/5-1, len/5-1);  // отходит назад
    }

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:
ru: Если расстояние до цели больше 5 метров, двигайтесь по направлению к цели. Сначала определите угол поворота, на который следует развернуться, чтобы двигаться с помощью инструкции <code><a cbot|direct>direction</a></code>. После этого вы можете настроить скорость правостороннего и левостороннего двигателей, чтобы следовать за целью:

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/>
    	}
    }
ru: <c/>else
    {
    	dir = direction(target.position);
    	if ( dir >= 0 )  // цель слева ?
    	{
    		motor(1-dir/90, 1);
    	}
    	else  // цель справа?
    	{
    		<n/>здесь пишите вы<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
ru: Когда цель расположена слева от вас, <code>dir</code> принимает положительное значение, колебаясь от 0 до 180. <a cbot|expr>Выражение</a> <code>1-dir/90</code> возвращает скорость, которая изменяется от 1 до -1, в соответствии с направлением:
    	направление =   0 -> скорость =  1.0
    	направление =  45 -> скорость =  0.5
    	направление =  90 -> скорость =  0.0
    	направление = 135 -> скорость = -0.5
    	направление = 180 -> скорость = -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.
ru: Когда цель расположена справа, <code>dir</code> отрицательное, колебаясь между 0 и -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>.
ru: Теперь вы должны выполнить только одно - задать <a cbot|var>переменные</a>, которые использует программа. <code>target</code> относится к типу <code>object</code>, поскольку <code>dir</code> и <code>len</code> относятся к типу <code>float</code>.

note: type: \t; header
en: See also
ru: См. также

note: type: Plain text
en: <a cbot>Programming</a>, <a cbot|type>types</a> and <a cbot|category>categories</a>.
ru: <a cbot>Программирование</a>, <a cbot|type>типы</a> и <a cbot|category>категории</a>.
