Menu
CoddyTech

Acessando elementos de arrays 2D

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

Para acessar uma célula de um array 2D, use dois índices: o primeiro seleciona a linha, o segundo seleciona a coluna dentro dessa linha. Ambos começam em 0.

var level := [
	[1, 1, 1, 1],
	[1, 0, 2, 1],
	[1, 1, 1, 1]
]
print(level[1][2]) # 2 (linha 1, coluna 2)
print(level[0][0]) # 1

level[1] retorna a linha [1, 0, 2, 1], e [2] então seleciona o índice 2 dessa linha. Índices negativos contam a partir do final, como em qualquer array: level[-1][-1] é a célula no canto inferior direito.

Atribua um valor a uma célula para alterá-la. Quando o jogador pega a moeda, o tile dela se torna chão:

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

Um índice fora da grade é um erro que interrompe o programa: level[3][0] falha porque as linhas vão de 0 a 2. Quando os índices vêm de uma entrada ou de um cálculo, verifique-os primeiro em relação ao tamanho da grade:

var row := 2
var col := 5
if row >= 0 and row < level.size() and col >= 0 and col < level[row].size():
	print(level[row][col])
else:
	print("Outside the map")

Isso imprime Outside the map, porque a coluna 5 não existe. and para na primeira condição que é false, então level[row] só é lido quando a linha existe.

challenge icon

Desafio

Fácil

Escreva uma função chamada get_tile com três parâmetros:

  1. grid: um array 2D de inteiros (declare-o como grid: Array)
  2. row: um índice de linha
  3. col: um índice de coluna

Ela retorna o valor nessa linha e coluna. Se row ou col estiver fora da grade (for menor que 0 ou não for menor que o número de linhas ou colunas), ela retorna -1. Índices negativos são considerados fora da grade.

Por exemplo, get_tile([[1, 2, 3], [4, 5, 6]], 1, 2) retorna 6, e get_tile([[1, 2], [3, 4]], 2, 1) retorna -1.

Os testes chamam get_tile() por conta própria e verificam o valor que ela retorna. Não a chame nem imprima nada.

Experimente você mesmo

func get_tile(grid: Array, row: int, col: int):
	# Escreva o código aqui
	pass
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