Тема:
Базовый синтаксис
Циклы
Условные операторы
Переменные
Арифметика
Цели:
Добраться до оазиса
Руководство:
Введение:
Динамически уворачивайтесь от этих подлых яков!
Есть пара простых правил чтобы выжить в этом бегстве от яков:
1. Постоянно продолжайте двигаться вперёд. Другими словами убедитесь что на каждом шаге вы двигатесь в к точке с координатой pos.x + 5
по горизонтали.
2. Двигайетсь вверх и вниз чтобы избежать тех яков которые приближаются к вам, находясь под или над вами. Помни: изменение вертикальной координаты на yPos + 1
переместит героя вверх, а yPos - 1
соответственно перепестит героя вниз.
Обзор:
Динамически уворачивайтесь от этих подлых яков!
Есть пара простых правил чтобы выжить в этом бегстве от яков:
1. Постоянно продолжайте двигаться вперёд. Другими словами убедитесь что на каждом шаге вы двигатесь в к точке с координатой pos.x + 5
по горизонтали.
2. Двигайетсь вверх и вниз чтобы избежать тех яков которые приближаются к вам, находясь под или над вами. Помни: изменение вертикальной координаты на yPos + 1
переместит героя вверх, а yPos - 1
соответственно перепестит героя вниз.
Оазис, прохождение:
Python:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
# А-а-а-а, паника, бежим! Вам нужно изловчиться, чтобы добраться до оазиса. loop: enemy = self.findNearestEnemy() xPos = self.pos.x + 5 yPos = 17 if enemy: # Вам нужно изменять координаты по вертикали ровно на 1 метр чтобы увернуться от яков! if enemy.pos.y > self.pos.y: # Если Як над Вами, то yPos нужно уменьшить! yPos-=1 pass if enemy.pos.y < self.pos.y: # Если Як под Вами, то yPos нужно увеличить! yPos+=1 pass self.moveXY(xPos, yPos) |
JavaScript:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
// А-а-а-а, паника, бежим! Вам нужно изловчиться, чтобы добраться до оазиса. loop { var enemy = this.findNearestEnemy(); var xPos = this.pos.x + 5; var yPos = 17; if(enemy) { // Вам нужно изменять координаты по вертикали ровно на 1 метр чтобы увернуться от яков! if(enemy.pos.y > this.pos.y) { // Если Як над Вами, то yPos нужно уменьшить! yPos-=1; } else if (enemy.pos.y < this.pos.y) { // Если Як под Вами, то yPos нужно увеличить! yPos+=1; } } this.moveXY(xPos, yPos); } |
CoffeScript:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
# А-а-а-а, паника, бежим! Вам нужно изловчиться, чтобы добраться до оазиса. loop xPos = @pos.x + 5 yPos = 17 enemy = @findNearestEnemy() if enemy # Вам нужно изменять координаты по вертикали ровно на 1 метр чтобы увернуться от яков! if enemy.pos.y > @pos.y # Если Як над Вами, то yPos нужно уменьшить yPos-=1 else if enemy.pos.y < @pos.y # Если Як под Вами, то yPos нужно увеличить! yPos+=1 @moveXY xPos, yPos |
Clojure:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
;; А-а-а-а, паника, бежим! Вам нужно изловчиться, чтобы добраться до оазиса. (dotimes [n 1000] (let [enemy (.findNearestEnemy this) xPos (+ (.x (.pos this)) 5)] (def yPos 17) (when enemy ;; Вам нужно изменять координаты по вертикали ровно на 1 метр чтобы увернуться от яков! (if (> (.y (.pos enemy)) (.y (.pos this))) ;; Если Як над Вами, то yPos нужно уменьшить! (def yPos (dec yPos)) (if (< (.y (.pos enemy)) (.y (.pos this))) ;; Если Як под Вами, то yPos нужно увеличить! (def yPos (inc yPos)) ) ) ) (.moveXY this xPos yPos) ) ) |
LUA:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
-- А-а-а-а, паника, бежим! Вам нужно изловчиться, чтобы добраться до оазиса. loop local enemy = self:findNearestEnemy(); local xPos = self.pos.x + 5; local yPos = 17; if (enemy) then -- Вам нужно изменять координаты по вертикали ровно на 1 метр чтобы увернуться от яков! if (enemy.pos.y > self.pos.y) then -- Если Як над Вами, то yPos нужно уменьшить! yPos=yPos-1 elseif (enemy.pos.y < self.pos.y) then -- Если Як под Вами, то yPos нужно увеличить! yPos=yPos+1 end end self:moveXY(xPos, yPos); end |
Комментарии: