Тема:
Переменные
Строки
Условные операторы
Арифметика
Циклы
Массивы
Цели:
Отправить друзей домой.
Не пускай огров.
Руководство:
Вступление:
Массив(array) представляет собой список элементов.
Python, CoffeScript:
1 2 |
# An array of strings: friendNames = ['Joan', 'Ronan', 'Nikita', 'Augustus'] |
JavaScript:
1 2 |
// An array of strings: var friendNames = ['Joan', 'Ronan', 'Nikita', 'Augustus']; |
Clojure:
1 2 |
;; An array of strings: (def friendNames ["Joan", "Ronan", "Nikita", "Augustus"]) |
LUA:
1 2 |
-- An array of strings: local friendNames = {'Joan', 'Ronan', 'Nikita', 'Augustus'} |
Описание:
Массивы это упорядоченные списки данных. На этом уровне у вас есть массив, хранящий строковые имена ваших четырёх друзей.
Для того, что бы спасти своих друзей, вы должны сказать каждому из них, чтобы они по очереди вернулись домой. Вы можете использовать имеющийся пример кода, для прохождения циклом по массиву.
Python:
1 2 3 4 5 6 7 8 |
# friendNames is an array. friendNames = ['Joan', 'Ronan', 'Nikita', 'Augustus'] #You can access specific elements of an array using a number surrounded by square brackets: name = friendNames[0] # Causes the hero to say: "Joan" self.say(name) |
JavaScript:
1 2 3 4 5 6 7 8 |
// friendNames is an array. var friendNames = ['Joan', 'Ronan', 'Nikita', 'Augustus']; // You can access specific elements of an array using a number surrounded by square brackets: var name = friendNames[0]; // Causes the hero to say: "Joan" this.say(name) |
CoffeScript:
1 2 3 4 5 6 7 8 |
# friendNames is an array. friendNames = ['Joan', 'Ronan', 'Nikita', 'Augustus'] # You can access specific elements of an array using a number surrounded by square brackets: name = friendNames[0] # Causes the hero to say: "Joan" @say name |
Clojure:
1 2 3 4 5 6 7 8 |
;; friendNames is an array. (def friendNames ["Joan", "Ronan", "Nikita", "Augustus"]) ;; You can access specific elements of an array using a number surrounded by square brackets: (def name (nth friendNames 0)) ;; Causes the hero to say: "Joan" (.say this name) |
LUA:
1 2 3 4 5 6 7 8 |
-- friendNames is an array. local friendNames = {'Joan', 'Ronan', 'Nikita', 'Augustus'} -- You can access specific elements of an array using a number surrounded by square brackets: local name = friendNames[1] --Causes the hero to say: "Joan" self:say(name) |
Вы можете использовать переменную со индексом, вместо номера, для доступа к элементу массива.
Для цикла по всем значениям в массиве, используйте while-цикл для увеличения индекса переменной в каждой итерации цикла.
При каждом проходе цикла, по этому индекусу, из массива, вы будете получать имя друга, скажите ему, что бы он вернулся домой.
Python:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
friendNames = ['Joan', 'Ronan', 'Nikita', 'Augustus'] # Arrays start at index 0 friendIndex = 0 # len(friendNames) gives you the length of the friendNames array. # The length is equal to the number of items in the array (4, in this case) while friendIndex < len(friendNames): friendName = friendNames[friendIndex] self.say(friendName + ', go home!') friendIndex += 1 # This while-loop will execute using friendIndex 0, then 1, 2, and 3 # Note that the length of the array is 4, but the last element is 3! |
JavaScript:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
var friendNames = ['Joan', 'Ronan', 'Nikita', 'Augustus']; // Arrays start at index 0 var friendIndex = 0; // friendNames.length gives you the length of the friendNames array. // The length is equal to the number of items in the array (4, in this case) while(friendIndex < friendNames.length) { var friendName = friendNames[friendIndex]; this.say(friendName + ', go home!'); friendIndex += 1; } // This while-loop will execute using friendIndex 0, then 1, 2, and 3 // Note that the length of the array is 4, but the last element is 3! |
CoffeScript:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
friendNames = ['Joan', 'Ronan', 'Nikita', 'Augustus'] # Arrays start at index 0 friendIndex = 0 # friendNames.length gives you the length of the friendNames array. # The length is equal to the number of items in the array (4, in this case) while friendIndex < friendNames.length friendName = friendNames[friendIndex] @say friendName + ', go home!' friendIndex += 1 # This while-loop will execute using friendIndex 0, then 1, 2, and 3 # Note that the length of the array is 4, but the last element is 3! |
Clojure:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
(def friendNames ["Joan", "Ronan", "Nikita", "Augustus"]) ;; Arrays start at index 0 (def friendIndex 0) ;; len(friendNames) gives you the length of the friendNames array. ;; The length is equal to the number of items in the array (4, in this case) (while (< friendIndex friendCount) (def friendName (nth friendNames friendIndex)) (def friendIndex (inc friendIndex)) (.say this name) ) ;; This while-loop will execute using friendIndex 0, then 1, 2, and 3 ;; Note that the length of the array is 4, but the last element is 3! |
LUA:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
local friendNames = {'Joan', 'Ronan', 'Nikita', 'Augustus'} -- Arrays start at index 1 local friendIndex = 1 -- friendNames.length gives you the length of the friendNames array. -- The length is equal to the number of items in the array (4, in this case) while friendIndex <= #friendNames do local friendName = friendNames[friendIndex] self:say(friendName .. ', go home!') friendIndex = friendIndex +1 end -- This while-loop will execute using friendIndex 0, then 1, 2, and 3 -- Note that the length of the array is 4, but the last element is 3! |
Спаситель Сарвена, прохождение:
Python:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
# Массив - это список элементов. # Этот массив - список имен твоих друзей. friendNames = ['Joan', 'Ronan', 'Nikita', 'Augustus'] # Индекс массива начинается с 0, а не с 1! friendIndex = 0 # Включи в цикл все имена в массиве. # Функция len() возвращает длину списка. while friendIndex < len(friendNames): # Используй квадратные скобки чтобы извлечь имя из массива. friendName = friendNames[friendIndex] # Прикажи другу идти домой. # Используй + для объединения двух строковых элементов. self.say(friendName + ', go home!') # Увеличивай индекс, чтобы получить следующее имя из массива. friendIndex +=1 # Вернись и построй частокол, чтобы защититься от огров. self.moveXY(27, 30) self.buildXY("fence", 30, 30) |
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 |
// Массив - это список элементов. // Этот массив - список имен твоих друзей. var friendNames = ['Joan', 'Ronan', 'Nikita', 'Augustus']; // Индекс массива начинается с 0, а не с 1! var friendIndex = 0; // Включи в цикл все имена в массиве. // Свойство length возвращает длину массива. while (friendIndex < friendNames.length) { // Используй квадратные скобки чтобы извлечь имя из массива. var friendName = friendNames[friendIndex]; // Прикажи другу идти домой. // Используй + для объединения двух строковых элементов. this.say(friendName + ', go home!'); // Увеличивай индекс, чтобы получить следующее имя из массива. friendIndex+=1; } // Вернись и построй частокол, чтобы защититься от огров. this.moveXY(25, 30); this.buildXY("fence", 30, 30); |
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 |
# Массив - это список элементов. # Этот массив - список имен твоих друзей. friendNames = ['Joan', 'Ronan', 'Nikita', 'Augustus'] # Индекс массива начинается с 0, а не с 1! friendIndex = 0 # Включи в цикл все имена в массиве. # Свойство length возвращает длину массива. while friendIndex < friendNames.length # Используй квадратные скобки чтобы извлечь имя из массива. friendName = friendNames[friendIndex] # Прикажи другу идти домой. # Используй + для объединения двух строковых элементов. @say friendName + ', go home!' # Увеличивай индекс, чтобы получить следующее имя из массива. friendIndex += 1 # Вернись и построй частокол, чтобы защититься от огров. @moveXY 25, 30 @buildXY "fence", 30, 30 |
Clojure:
Повторюсь continue в clojure нет. Но переживать по этому поводу не стоит.
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 |
;; Массив - это список элементов. ;; Этот массив - список имен твоих друзей. (def friendNames ["Joan", "Ronan", "Nikita", "Augustus"]) ;; Индекс массива начинается с 0, а не с 1! (def friendIndex 0) ;; The count function gets the length of the list. (def friendCount (count friendNames)) ;; Включи в цикл все имена в массиве. (while (< friendIndex friendCount) ;; The nth function gets the nth item of the list. (nth array index) (def friendName (nth friendNames friendIndex)) ;; Прикажи другу идти домой. ;; The str function concatenate strings. (.say this (str friendName ", go home!")) ;; Увеличивай индекс, чтобы получить следующее имя из массива. (def friendIndex (inc friendIndex)) ) ;; Вернись и построй частокол, чтобы защититься от огров. (.moveXY this 25 30) (.buildXY this "fence" 30 30) |
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 |
-- Массив - это список элементов. -- Этот массив - список имен твоих друзей. local friendNames = {'Joan', 'Ronan', 'Nikita', 'Augustus'} -- В Lua индекс массива начинается с 1, а не с 0. local friendIndex = 1 -- Включи в цикл все имена в массиве. -- Оператор # возвращает длину массива while friendIndex <= #friendNames do -- Используй квадратные скобки чтобы извлечь имя из массива. local friendName = friendNames[friendIndex] -- Прикажи другу идти домой. -- Используй .. для объединения строковых элементов. self:say(friendName .. ', go home!') -- Увеличивай индекс, чтобы получить следующее имя из массива. friendIndex = friendIndex + 1 end -- Вернись и построй частокол, чтобы защититься от огров. self:moveXY(25, 30) self:buildXY("fence", 30, 30) |
Комментарии: