Fondamenti degli array 2D
Fa parte della sezione Logica e flusso del percorso GDScript di Coddy. Lezione 12 di 78.
Un array 2D memorizza i valori in righe e colonne, come una tabella o le caselle di una mappa di gioco. In GDScript, un array 2D è un array i cui elementi sono array: ogni array interno è una riga.
var level := [
[1, 1, 1, 1],
[1, 0, 2, 1],
[1, 1, 1, 1]
]In questa mappa, 0 è il pavimento, 1 è un muro e 2 è una moneta. Scrivere una riga per linea mantiene la griglia leggibile, e GDScript accetta anche l’intero valore letterale su una sola riga.
print() mostra un array 2D su una riga, con ogni riga racchiusa tra parentesi quadre:
print(level)[[1, 1, 1, 1], [1, 0, 2, 1], [1, 1, 1, 1]]size() sull’array esterno conta le righe. level[0] è la prima riga, un array ordinario, quindi level[0].size() conta le colonne:
print(level.size()) # 3 righe
print(level[0].size()) # 4 colonneUn ciclo for sull'array esterno ti dà una riga a ogni iterazione:
for row in level:
print(row)[1, 1, 1, 1]
[1, 0, 2, 1]
[1, 1, 1, 1]Le celle possono essere di qualsiasi tipo: [["X", "O"], ["O", "X"]] è una griglia di stringhe. Puoi anche partire da un array vuoto e append() intere righe:
var board := []
board.append(["X", "O", "X"])
board.append(["O", "X", "O"])
print(board.size()) # 2Sfida
FacileCostruisci la mappa di un piccolo dungeon. Crea un array 2D chiamato level con queste 4 righe, in quest'ordine:
1 1 1 1 1
1 0 2 0 1
1 0 1 3 1
1 1 1 1 1Ogni riga è un array di 5 numeri. Poi stampa il numero di righe e il numero di colonne, usando size(), prima che il ciclo dato stampi le righe. L'output deve essere:
Rows: 4
Columns: 5
[1, 1, 1, 1, 1]
[1, 0, 2, 0, 1]
[1, 0, 1, 3, 1]
[1, 1, 1, 1, 1]Provalo tu
extends Node
func _ready():
# Sostituisci [] con la mappa del dungeon
var level := []
# Stampa qui il numero di righe e di colonne
for row in level:
print(row)
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Logica e flusso
1Stringhe in dettaglio
Metodi delle stringheRicerca nelle stringheSostituzione e trimDividere e unireRipasso - verifica del nome utente4Dizionari - Parte 2
Dizionari annidatiArray di dizionariUnire dizionariCopiare dizionariRiepilogo - Contatore di frequenza7Enumerazioni
Che cos'è un'enumerazione?Definire un'enumerazioneValori dell'enumerazioneEnumerazioni in MatchRiepilogo - Semaforo10Funzioni avanzate
Restituire più valoriFunzioni lambda - Parte 1Funzioni lambda - Parte 2Ripasso - Ordinamento con lambdaFunzioni ricorsive - Parte 1Funzioni ricorsive - Parte 2Ripasso - Somma di un array annidato13Sistema di gestione dell'inventario
Panoramica del progettoAggiungere un articolo2Decisioni avanzate
Match con variabiliGuardie di matchPattern per arrayPattern per dizionariVerifiche di appartenenzaRiepilogo - Parser di comandi5Applicazione Rubrica
Visualizzare il menuAggiungere un contatto8Gestione dei registri degli studenti
Panoramica del progettoAggiungi studente11Funzioni di ordine superiore
Il metodo mapIl metodo filterIl metodo reduceany e allRipasso - Validatore di emailRipasso - Elaboratore di numeri3Array multidimensionali
Fondamenti degli array 2DAccedere agli elementi di un array 2DCicli annidati con array 2DRipasso - Array 2DArray frastagliatiSchemi comuni con gli array 2DRipasso - Tabellone di gioco6Insiemi con i dizionari
Che cos'è un insieme?Il dizionario come insiemeAggiungere e rimuovereUnione e intersezioneDifferenza tra insiemiRiepilogo - Rimuovere i duplicati9Aggregazione avanzata dei dati
Somma dei valoriTrovare minimo e massimoOrdinamento personalizzatoRiepilogo - Ordinatore di dizionariEsercitati da solo: Compilatore GDScript online