Menu
CoddyTech

Fundamentos de arrays 2D

Parte da seção Lógica e fluxo do Journey de GDScript da Coddy. Lição 12 de 78.

Um array 2D armazena valores em linhas e colunas, como uma tabela ou os blocos de um mapa de jogo. Em GDScript, um array 2D é um array cujos elementos são arrays: cada array interno é uma linha.

var level := [
	[1, 1, 1, 1],
	[1, 0, 2, 1],
	[1, 1, 1, 1]
]

Neste mapa, 0 é o chão, 1 é uma parede e 2 é uma moeda. Escrever uma linha por linha mantém a grade legível, e o GDScript também aceita o literal inteiro em uma única linha.

print() exibe um array 2D em uma única linha, com cada linha dentro de seus próprios colchetes:

print(level)
[[1, 1, 1, 1], [1, 0, 2, 1], [1, 1, 1, 1]]

size() no array externo conta as linhas. level[0] é a primeira linha, um array comum, então level[0].size() conta as colunas:

print(level.size()) # 3 linhas
print(level[0].size()) # 4 colunas

Um loop for sobre o array externo fornece uma linha a cada passagem:

for row in level:
	print(row)
[1, 1, 1, 1]
[1, 0, 2, 1]
[1, 1, 1, 1]

As células podem ser de qualquer tipo: [["X", "O"], ["O", "X"]] é uma grade de strings. Você também pode começar com um array vazio e append() linhas inteiras:

var board := []
board.append(["X", "O", "X"])
board.append(["O", "X", "O"])
print(board.size()) # 2
challenge icon

Desafio

Fácil

Construa o mapa de uma pequena masmorra. Crie um array 2D chamado level com estas 4 linhas, nesta ordem:

1 1 1 1 1
1 0 2 0 1
1 0 1 3 1
1 1 1 1 1

Cada linha é um array de 5 números. Em seguida, imprima o número de linhas e o número de colunas, usando size(), antes que o loop fornecido imprima as linhas. A saída deve ser:

Rows: 4
Columns: 5
[1, 1, 1, 1, 1]
[1, 0, 2, 0, 1]
[1, 0, 1, 3, 1]
[1, 1, 1, 1, 1]

Experimente você mesmo

extends Node

func _ready():
	# Substitua [] pelo mapa da masmorra
	var level := []

	# Imprima aqui o número de linhas e de colunas

	for row in level:
		print(row)
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Lógica e fluxo

Pratique por conta própria: Compilador de GDScript online