Тема:
Аргументы
Переменные
Строки
Циклы
Массивы
Литералы объектов
Цели:
Собери все камни.
Руководство:
Вступление:
При использовании move вам нужно создать объект литерал, для передачи его в качестве аргумента.
Вы можете указать объект литерал на прямую, например: pos = { «x»: 20, «y»: 35 }.
Объект литерал состоит из ключей связанных с ним. Например pos.x вернёт значение 20, а pos.y равен значению 35.
Описание:
При использовании move, вам может понадобится передать созданный объект литерал в качестве аргумента.
Python:
1 2 |
# В Python, объект literal(литерал) также называется dictionary(словарь) ob = { "x": 20, "y": 35 } |
JavaScript:
1 2 |
// это объект literal (литерал) var ob = { "x": 20, "y": 35 }; |
CoffeScript:
1 2 |
# это объект literal (литерал) pos = {x: 20, y: 35} |
LUA:
1 2 |
-- это объект literal (литерал) local pos = { x=20, y=35 } |
Вы помните, что move не блокирует выполнение кода? На этом уровне вы будите использовать while цикл, что бы продолжать двигаться к заданной позиции, пока ваша pos.x меньше, чем определённое число.
Для перехода к пометке X, передайте литерал объекта методу перемещения.
Для того, чтобы перейти к драгоценному камню, используйте объект pos драгаценного камня в качестве аргумента для перемещения.
Слалом, прохождение:
Python:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
# Используй литералы объектов чтобы пройти безопасным путём и собрать самоцветы. # Ты не можешь использовать moveXY() на этом уровне! Используй move() чтобы идти куда надо. gems = hero.findItems() while hero.pos.x < 20: # move() принимает объект с х и у свойствами, а не просто цифры. hero.move({'x': 20, 'y': 35}) while hero.pos.x < 25: # Местонахождение самоцвета это объект со свойствами х и у. gem0 = gems[0] hero.move(gem0.pos) # Когда твой х меньше 30, # Используй объект чтобы идти к 30, 35. while hero.pos.x < 30: # move() принимает объект с х и у свойствами, а не просто цифры. hero.move({'x': 30, 'y': 35}) # Когда твой х меньше чем 35, # Иди к позиции gems[1]. while hero.pos.x < 35: gem0 = gems[1] hero.move(gem0.pos) # До оставшейся пары самоцветов доберись самостоятельно! while hero.pos.x < 40: # move() принимает объект с х и у свойствами, а не просто цифры. hero.move({'x': 40, 'y': 35}) while hero.pos.x < 45: # Местонахождение самоцвета это объект со свойствами х и у. gem0 = gems[2] hero.move(gem0.pos) while hero.pos.x < 50: # move() принимает объект с х и у свойствами, а не просто цифры. hero.move({'x': 50, 'y': 35}) while hero.pos.x < 55: # Местонахождение самоцвета это объект со свойствами х и у. gem0 = gems[3] hero.move(gem0.pos) |
JavaScript:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
// Используй литералы объектов чтобы пройти безопасным путём и собрать самоцветы. // Ты не можешь использовать moveXY() на этом уровне! Используй move() чтобы идти куда надо. gems = hero.findItems(); while (hero.pos.x < 20) { // move() принимает объект с х и у свойствами, а не просто цифры. hero.move({'x': 20, 'y': 35}); } while (hero.pos.x < 25) { // Местонахождение самоцвета это объект со свойствами х и у. gem0 = gems[0]; hero.move(gem0.pos); } // Когда твой х меньше 30, // Используй объект чтобы идти к 30, 35. while (hero.pos.x <30) { // move() принимает объект с х и у свойствами, а не просто цифры. hero.move({'x': 30, 'y': 35}); } // Когда твой х меньше чем 35, // Иди к позиции gems[1]. while (hero.pos.x < 35) { // Местонахождение самоцвета это объект со свойствами х и у. gem0 = gems[1]; hero.move(gem0.pos); } // До оставшейся пары самоцветов доберись самостоятельно! while (hero.pos.x < 40) { // move() принимает объект с х и у свойствами, а не просто цифры. hero.move({'x': 40, 'y': 35}); } while (hero.pos.x < 45) { // Местонахождение самоцвета это объект со свойствами х и у. gem0 = gems[2]; hero.move(gem0.pos); } while (hero.pos.x < 50) { // move() принимает объект с х и у свойствами, а не просто цифры. hero.move({'x': 50, 'y': 35}); } while (hero.pos.x < 55) { // Местонахождение самоцвета это объект со свойствами х и у. gem0 = gems[3]; hero.move(gem0.pos); } |
CoffeScript:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
# Используй литералы объектов чтобы пройти безопасным путём и собрать самоцветы. # Ты не можешь использовать moveXY() на этом уровне! Используй move() чтобы идти куда надо. gems = @findItems() while @pos.x < 20 # move() принимает объект с х и у свойствами, а не просто цифры. @move {x: 20, y: 35} while @pos.x < 25 # Местонахождение самоцвета это объект со свойствами х и у. gem0 = gems[0] @move gem0.pos # Когда твой х меньше 30, # Используй объект чтобы идти к 30, 35. while @pos.x < 30 # move() принимает объект с х и у свойствами, а не просто цифры. @move {x: 30, y: 35} # Когда твой х меньше чем 35, # Иди к позиции gems[1]. while @pos.x < 35 # Местонахождение самоцвета это объект со свойствами х и у. gem0 = gems[1] @move gem0.pos # До оставшейся пары самоцветов доберись самостоятельно! while @pos.x < 40 # move() принимает объект с х и у свойствами, а не просто цифры. @move {x: 40, y: 35} while @pos.x < 45 # Местонахождение самоцвета это объект со свойствами х и у. gem0 = gems[2] @move gem0.pos while @pos.x < 50 # move() принимает объект с х и у свойствами, а не просто цифры. @move {x: 50, y: 35} while @pos.x < 55 # Местонахождение самоцвета это объект со свойствами х и у. gem0 = gems[3] @move gem0.pos |
Clojure:
1 |
;; |
LUA:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
-- Используй литералы объектов чтобы пройти безопасным путём и собрать самоцветы. -- Ты не можешь использовать moveXY() на этом уровне! Используй move() чтобы идти куда надо. local gems = self:findItems() while self.pos.x < 20 do -- move() принимает объект с х и у свойствами, а не просто цифры. self:move({ x=20, y=35 }) end while self.pos.x < 25 do -- Местонахождение самоцвета это объект со свойствами х и у. local gem0 = gems[1] self:move(gem0.pos) end -- Когда твой х меньше 30, -- Используй объект чтобы идти к 30, 35. while self.pos.x < 30 do -- move() принимает объект с х и у свойствами, а не просто цифры. self:move({ x=30, y=35 }) end -- Когда твой х меньше чем 35, -- Иди к позиции gems[1]. while self.pos.x < 35 do -- Местонахождение самоцвета это объект со свойствами х и у. local gem0 = gems[2] self:move(gem0.pos) end -- До оставшейся пары самоцветов доберись самостоятельно! while self.pos.x < 40 do -- move() принимает объект с х и у свойствами, а не просто цифры. self:move({ x=40, y=35 }) end while self.pos.x < 45 do -- Местонахождение самоцвета это объект со свойствами х и у. local gem0 = gems[3] self:move(gem0.pos) end while self.pos.x < 50 do -- move() принимает объект с х и у свойствами, а не просто цифры. self:move({ x=50, y=35 }) end while self.pos.x < 55 do -- Местонахождение самоцвета это объект со свойствами х и у. local gem0 = gems[4] self:move(gem0.pos) end |
А вообще мне не нравится предыдущий навязанный код… мы же уже изучили циклы… поэтому так:
Python:
1 2 3 4 5 6 7 8 9 10 |
gems = hero.findItems() i=0 while i<=3: while hero.pos.x < 20+i*10: hero.move({'x': 20+i*10, 'y': 35}) while hero.pos.x < 25+i*10: gem0 = gems[i] hero.move(gem0.pos) i+=1 |
JavaScript:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
gems = hero.findItems(); i=0; while (i<=3){ while (hero.pos.x < 20+i*10) { hero.move({'x': 20+i*10, 'y': 35}); } while (hero.pos.x < 25+i*10) { gem0 = gems[i]; hero.move(gem0.pos); } i+=1; } |
CoffeScript:
1 2 3 4 5 6 7 8 9 10 |
gems = @findItems() i=0 while i<=3 while @pos.x < 20+i*10 @move {x: 20+i*10, y: 35} while @pos.x < 25+i*10 gem0 = gems[i] @move gem0.pos i+=1 |
Clojure:
1 |
;; |
LUA:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
local gems = self:findItems() local i=0 while i<=3 do while self.pos.x < 20+i*10 do self:move({ x=20+i*10, y=35 }) end while self.pos.x < 25+i*10 do local gem0 = gems[1+i] self:move(gem0.pos) end i=i+1; end |
Комментарии: