Тема:
Базовый синтаксис
Аргументы
Переменные
Циклы
Условные операторы
Обработка ввода
Цели:
Победи огров.
Человек должен уцелеть.
Руководство:
Информация
Так же, как вы проверяете тип(type) противника(enemy), вы можете так же можете проверить положение или позицию(pos) флага(flag). Вы можете даже найти х и у координаты позиции(pos) флага(flag).
1 2 3 |
flag = self.findFlag() self.say(flag.pos) self.say(flag.pos.x) |
JavaScript:
1 2 3 |
var flag = this.findFlag(); this.say(flag.pos); this.say(flag.pos.x); |
CoffeScript:
1 2 3 |
flag = @findFlag() @say flag.pos @say flag.pos.x |
Clojure:
1 2 3 |
(def flag (.findFlag this)) (.say this (.pos flag)) (.say this (.x (.pos flag))) |
LUA:
1 2 3 |
local flag = self:findFlag() self:say(flag.pos) self:say(flag.pos.x) |
Обзор
Используйте метод pickUpFlag , чтобы пойти и забрать флаги, которые вы разместили. Ваши новые очки имеют метод
findNearestItem , который позволяет вашему герою автоматически подобирать монеты, но только тогда, когда они в пределах прямой видимости. Используйте флаги, чтобы управлять своим героем, в лугу полным монет.
Вы можете перейти к позиции нужного предмета, как здесь:
1 2 3 4 5 6 |
item = self.findNearestItem() if item: position = item.pos x = position.x y = position.y self.moveXY(x, y) |
JavaScript:
1 2 3 4 5 6 7 |
var item = this.findNearestItem(); if (item) { var position = item.pos; var x = position.x; var y = position.y; this.moveXY(x, y); } |
CoffeScript:
1 2 3 4 5 6 |
item = @findNearestItem() if item position = item.pos x = position.x y = position.y @moveXY(x, y) |
Clojure:
1 2 3 4 5 6 7 8 |
(if item (when true (def position (.pos item)) (def x (.x position)) (def y (.y position)) (.moveXY this x y) ) ) |
LUA:
1 2 3 4 5 6 7 |
local item = self:findNearestItem() if item then local position = item.pos local x = position.x local y = position.y self:moveXY(x, y) end |
Каждый элемент представляет собой объект, который является типом данных, как строка или число. Объекты содержат другие фрагменты данных, известных как свойства.
Каждый элемент объекта (и каждая единица) имеет свойство POS, которое отвечает, за её позицию. И каждая позиция представляет собой объект, который имеет х и у свойства, которые можно использовать с moveXY и buildXY.
Совет: помните, что вы должны нажать Submit, прежде чем вы сможете разместить флаги. Луга создаются случайным образом, так что расположение будет меняться каждый раз.
Награда:
Защити фермера, прохождение:
Python:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
# Собери все монеты на каждом поле. # Используй флаги для перемещения между полями. # Нажмите "Завершить", когда будете готовы разместить флаги. loop: flag = self.findFlag() if flag: #pass # "pass" это "заполнитель" для методов, которые пока ничего не делают, но уже объявлены. # Pick up the flag. self.pickUpFlag(flag) else: # Automatically move to the nearest item you see. item = self.findNearestItem() if item: position = item.pos x = position.x y = position.y self.moveXY(x, y) |
JavaScript:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
// Собери все монеты на каждом поле. // Используй флаги для перемещения между полями. // Нажмите "Завершить", когда будете готовы разместить флаги. loop { var flag = this.findFlag(); if (flag) { // Подберите флаг. this.pickUpFlag(flag); } else { // Автоматически перемещаться до ближайшего элемента, который вы видите. var item = this.findNearestItem(); if (item) { var position = item.pos; var x = position.x; var y = position.y; this.moveXY(x, y); } } } |
CoffeScript:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
# Собери все монеты на каждом поле. # Используй флаги для перемещения между полями. # Нажмите "Завершить", когда будете готовы разместить флаги. loop flag = @findFlag() if flag # Подберите флаг. #@say "Delete this and pick up the flag instead." @pickUpFlag(flag) else # Автоматически перемещаться до ближайшего элемента, который вы видите. item = @findNearestItem() if item position = item.pos x = position.x y = position.y @moveXY x, y else @say "Поставьте флаг к которому нужно дойти." |
Clojure:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
;; Собери все монеты на каждом поле. ;; Используй флаги для перемещения между полями. ;; Нажмите "Завершить", когда будете готовы разместить флаги. (dotimes [n 1000] (def flag (.findFlag this)) (if flag ;; Подберите флаг. (.pickUpFlag this flag) ;; Автоматически перемещаться до ближайшего элемента, который вы видите. (when true (def item (.findNearestItem this)) (if item (.moveXY this (.x (.pos item)) (.y (.pos item))) (.say this "Поставьте флаг к которому нужно дойти."))))) |
LUA:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
-- Собери все монеты на каждом поле. -- Используй флаги для перемещения между полями. -- Нажмите "Завершить", когда будете готовы разместить флаги. loop local flag = self:findFlag() if flag then -- Подберите флаг. self:pickUpFlag(flag) else -- Автоматически перемещаться до ближайшего элемента, который вы видите. local item = self:findNearestItem() if item then local position = item.pos local x = position.x local y = position.y self:moveXY(x, y) else self:say("Поставьте флаг к которому нужно дойти.") end end end |
Комментарии: