Основы двумерных массивов
Часть раздела Логика и потоки выполнения путешествия по GDScript на Coddy. Урок 12 из 78.
Двумерный массив хранит значения в строках и столбцах, как таблица или плитки игровой карты. В GDScript двумерный массив — это массив, элементы которого являются массивами: каждый внутренний массив представляет собой одну строку.
var level := [
[1, 1, 1, 1],
[1, 0, 2, 1],
[1, 1, 1, 1]
]На этой карте 0 — пол, 1 — стена, а 2 — монета. Если записывать каждую строку на отдельной строке, сетку будет легче читать. GDScript также допускает запись всего литерала в одну строку.
print() выводит двумерный массив в одну строку, при этом каждая строка заключена в свои скобки:
print(level)[[1, 1, 1, 1], [1, 0, 2, 1], [1, 1, 1, 1]]size() у внешнего массива считает строки. level[0] — это первая строка, обычный массив, поэтому level[0].size() считает столбцы:
print(level.size()) # 3 строки
print(level[0].size()) # 4 столбцаЦикл for по внешнему массиву выдаёт по одной строке за проход:
for row in level:
print(row)[1, 1, 1, 1]
[1, 0, 2, 1]
[1, 1, 1, 1]Ячейки могут иметь любой тип: [["X", "O"], ["O", "X"]] — это сетка строк. Также можно начать с пустого массива и добавлять целые строки с помощью append():
var board := []
board.append(["X", "O", "X"])
board.append(["O", "X", "O"])
print(board.size()) # 2Задание
ЛегкоПострой карту небольшого подземелья. Создай двумерный массив с именем level из этих 4 строк в указанном порядке:
1 1 1 1 1
1 0 2 0 1
1 0 1 3 1
1 1 1 1 1Каждая строка — это массив из 5 чисел. Затем выведи количество строк и количество столбцов, используя size(), прежде чем данный цикл выведет строки. Вывод должен быть таким:
Rows: 4
Columns: 5
[1, 1, 1, 1, 1]
[1, 0, 2, 0, 1]
[1, 0, 1, 3, 1]
[1, 1, 1, 1, 1]Попробуйте сами
extends Node
func _ready():
# Замените [] картой подземелья
var level := []
# Выведите здесь количество строк и столбцов
for row in level:
print(row)
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Логика и потоки выполнения
1Строки: углублённое изучение
Методы строкПоиск в строкахЗамена и обрезка пробеловРазделение и объединениеПовторение — проверка имени пользователя4Словари. Часть 2
Вложенные словариМассивы словарейОбъединение словарейКопирование словарейПовторение — подсчёт частоты10Продвинутые функции
Возврат нескольких значенийЛямбда-функции. Часть 1Лямбда-функции. Часть 2Повторение — сортировка с помощью лямбда-функцииРекурсивные функции. Часть 1Рекурсивные функции. Часть 2Повторение — сумма вложенного массива13Система управления запасами
Обзор проектаДобавление товара2Продвинутое управление ветвлением
Сопоставление с переменнымиУсловия в шаблонахШаблоны массивовШаблоны словарейПроверка принадлежностиИтоги — парсер команд5Приложение «Телефонная книга»
Показать менюДобавить контакт8Менеджер успеваемости студентов
Обзор проектаДобавить студента3Многомерные массивы
Основы двумерных массивовДоступ к элементам двумерного массиваВложенные циклы с двумерными массивамиПовторение: двумерные массивыРваные массивыТипичные шаблоны работы с двумерными массивамиПовторение: игровое поле6Множества и словари
Что такое множество?Словарь как множествоДобавление и удалениеОбъединение и пересечениеРазность множествПовторение — удаление дубликатовПотренируйтесь самостоятельно: Онлайн-компилятор GDScript