Тема:
Циклы
Условные операторы
Переменные
Строки
Арифметика
Оператор «break»
Цели:
Собери 25 золота.
Не собирай больше 30 золота.
Скажи Нарии, сколько у тебя золота.
Руководство:
Введение:
Используй оператор break , прежде чем он закончится в штатном режиме.
Описание:
На этом уровне вы узнаете, как выйти из цыкла вручную.
Разрыв(break) цикла означает, что цикл немедленно прекращает выполнение, и программа переходит к выполнению кода, который находится после вашего цикла.
Первое, что надо сделать, это переместиться для поднятия монетки с помощью moveXY и свойства монеты pos.
Не забудьте добавить стоимость монеты к вашему общему количеству золота. Используй для этого свойство монеты value.
Python:
1 2 3 4 5 |
# add like this: totalGold = totalGold + coin.value # or like this: totalGold += coin.value |
JavaScript:
1 2 3 4 5 |
// add like this: totalGold = totalGold + coin.value // or like this: totalGold += coin.value |
CoffeScript:
1 2 3 4 5 |
# add like this: totalGold = totalGold + coin.value # or like this: totalGold += coin.value |
Clojure:
1 |
(def totalGold (+ totalGold (.value coin))) |
LUA:
1 |
totalGold = totalGold + coin.value |
Пример кода показывает, как выйти из цикла если ваш totalGold больше или равен 25.
Кстати, скажите Narin`е сколько злота у вас в наличии, вы можете просто сказать say(TotalGold), но если вы хотите, можете проявить фантазию и используя оператор конкатенации строк составить фразу, например:
Python:
1 |
self.say("Здравствуй Naria, Я собрал " + totalGold + " золотых!") |
JavaScript:
1 |
this.say("Hi Naria, I collected " + totalGold + " gold!") |
CoffeScript:
1 |
@say("Hi Naria, I collected " + totalGold + " gold!") |
Clojure:
1 |
(.say this (str "I've collected " totalGold " gold!")) |
LUA:
1 |
self:say("Hi Naria, I collected " .. totalGold .. " gold!") |
От меня:
На этом уровне ваc заставят купить камень с фунцией gold.
Всё что написано про break не применимо к Clojure предлагается использовать событие набора больше 25 монеток, и сказать об этом кому надо. После цикл продолжится.
Накопление золота, прохождение:
Python:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
# Собери 25 золота и назови Нарии сумму. # Используй "breake", чтобы остановить сбор, когда totalGold >= 25. totalGold = 0 #self.moveXY(58, 33) loop: coin = self.findNearestItem() if coin: # Pick up the coin. item = self.findNearestItem() # Add the coin's value to totalGold. (See the guide for more.) # Получи ее номинал с помощью: coin.value totalGold+=item.value self.moveXY(item.pos.x, item.pos.y) if totalGold >= 25: # >= означает, что "totalGold" превысил значение 25. # Это прерывает цикл, чтобы запустить код внизу. break # Завершил сбор золота! self.moveXY(58, 33) # Подойди к Нарии и сообщи, сколько золота ты собрал. self.say(totalGold) |
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 |
// Собери 25 золота и назови Нарии сумму. // Используй "breake", чтобы остановить сбор, когда totalGold >= 25. var totalGold = 0; loop { var coin = this.findNearestItem(); if(coin) { // Pick up the coin. var item = this.findNearestItem(); // Add the coin's value to totalGold. (See the guide for more.) // Получи ее номинал с помощью: coin.value totalGold+=item.value; this.moveXY(item.pos.x, item.pos.y); } if (totalGold >= 25) { // >= означает, что "totalGold" превысил значение 25. // Это прерывает цикл, чтобы запустить код внизу. break; } } // Завершил сбор золота! this.moveXY(58, 33); // Подойди к Нарии и сообщи, сколько золота ты собрал. this.say(totalGold); |
CoffeScript:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
# Собери 25 золота и назови Нарии сумму. # Используй "breake", чтобы остановить сбор, когда totalGold >= 25. totalGold = 0 loop coin =@findNearestItem() if coin # Pick up the coin. # Add the coin's value to totalGold. (See the guide for more.) # Получи ее номинал с помощью: coin.value totalGold += coin.value @moveXY coin.pos.x, coin.pos.y else @say totalGold if totalGold >= 25 # >= означает, что "totalGold" превысил значение 25. # Это прерывает цикл, чтобы запустить код внизу. break # Завершил сбор золота! @moveXY 58, 33 # Подойди к Нарии и сообщи, сколько золота ты собрал. @say totalGold |
Clojure:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
;; # Собери 25 золота и назови Нарии сумму. (def totalGold 0) (while true (def coin (.findNearestItem this)) ;; Подбери монету и прибавь ее номинал к сумме. ;; Получи ее номинал с помощью: (.value coin) (def totalGold (+ totalGold (.value coin))) (.moveXY this (.x (.pos coin)) (.y (.pos coin))) ;; # >= означает, что "totalGold" превысил значение 25. (if (>= totalGold 25) ;; Завершил сбор золота! (when true (.moveXY this 58 33) ;; # Подойди к Нарии и сообщи, сколько золота ты собрал. (.say this totalGold) )) ) |
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 |
-- Собери 25 золота и назови Нарии сумму. -- Используй "breake", чтобы остановить сбор, когда totalGold >= 25. local totalGold = 0 loop local coin = self:findNearestItem() if coin then -- Pick up the coin. -- Add the coin's value to totalGold. (See the guide for more.) -- Получи ее номинал с помощью: coin.value totalGold = totalGold + coin.value self:moveXY(coin.pos.x, coin.pos.y) end if totalGold >= 25 then -- >= означает, что "totalGold" превысил значение 25. -- Это прерывает цикл, чтобы запустить код внизу. break end end -- Завершил сбор золота! self:moveXY(58, 33) -- Подойди к Нарии и сообщи, сколько золота ты собрал. self:say(totalGold) |
Комментарии: