Nested Loop dengan Array 2D
Termasuk bagian Logika dan Alur dalam perjalanan GDScript di Coddy. Pelajaran 14 dari 78.
Untuk mengunjungi setiap sel dalam array 2D, letakkan satu perulangan di dalam perulangan lain. Perulangan luar menelusuri baris, dan perulangan dalam menelusuri sel pada baris saat ini:
var grid := [[1, 2, 3], [4, 5, 6]]
var total := 0
for row in grid:
for cell in row:
total += cell
print(total) # 21Saat kamu membutuhkan posisi setiap sel, lakukan perulangan pada indeks. r adalah indeks baris, c adalah indeks kolom, dan perulangan dalam menggunakan grid[r].size(), panjang baris saat ini:
for r in range(grid.size()):
for c in range(grid[r].size()):
grid[r][c] *= 10
print(grid) # [[10, 20, 30], [40, 50, 60]]Memberikan nilai ke cell dalam perulangan for cell in row tidak mengubah grid, karena cell menyimpan salinan angka. Ubah sel melalui indeksnya, seperti di atas.
Perulangan bersarang juga membentuk kisi. Buat baris baru di dalam perulangan luar, isi baris itu di dalam perulangan dalam, lalu tambahkan:
var town := []
for r in range(3):
var row := []
for c in range(4):
row.append(".")
town.append(row)
town[1][2] = "P"
for row in town:
print("".join(row))....
..P.
....Baris harus dibuat di dalam perulangan luar. array digunakan bersama, bukan disalin, saat kamu menambahkannya: jika kamu menambahkan row tiga kali, ketiga baris tersebut adalah satu array, dan town[1][2] = "P" menempatkan P di setiap baris.
Tantangan
MudahGambarlah peta sebuah kota. Program membaca empat bilangan bulat, satu per baris: jumlah baris, jumlah kolom, baris pemain, dan kolom pemain. Posisi pemain selalu berada di dalam peta.
- Buat
grid, sebuah array 2D dengan jumlah baris dan kolom tersebut, dengan setiap sel berisi".". Gunakan perulangan bersarang, dan buat array baris baru untuk setiap baris. - Atur sel pada posisi pemain menjadi
"P". - Cetak peta, satu baris per baris, tanpa spasi di antara sel.
Untuk input 3, 4, 1 dan 2, outputnya adalah:
....
..P.
....Coba sendiri
extends Node
func _ready():
var rows := int(OS.read_string_from_stdin())
var cols := int(OS.read_string_from_stdin())
var player_row := int(OS.read_string_from_stdin())
var player_col := int(OS.read_string_from_stdin())
var grid := []
# Buat grid dengan perulangan bersarang
# Tempatkan pemain di peta
# Cetak peta
pass
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Logika dan Alur
1Mendalami String
Method untuk StringMencari dalam StringMengganti dan Menghapus SpasiMemisahkan dan MenggabungkanUlasan: Memeriksa Nama Pengguna4Dictionary Bagian 2
Dictionary BersarangArray berisi DictionaryMenggabungkan DictionaryMenyalin DictionaryRangkuman: Penghitung Frekuensi10Fungsi Lanjutan
Mengembalikan Beberapa NilaiFungsi Lambda Bagian 1Fungsi Lambda Bagian 2Ringkasan: Mengurutkan dengan LambdaFungsi Rekursif Bagian 1Fungsi Rekursif Bagian 2Ringkasan: Menjumlahkan array Bersarang13Sistem Manajemen Inventaris
Ikhtisar ProyekTambahkan Barang2Pengambilan Keputusan Lanjutan
Pencocokan dengan VariabelGuard pada MatchPola arrayPola dictionaryPemeriksaan KeanggotaanUlasan: Parser Perintah5Aplikasi Buku Kontak
Tampilkan MenuTambah Kontak8Pengelola Data Siswa
Gambaran Umum ProyekTambah Siswa11Fungsi Tingkat Tinggi
Method mapMethod filterMethod reduceany dan allUlasan: Validator EmailUlasan: Pemroses Angka3Array Multidimensi
Dasar-Dasar Array 2DMengakses Elemen Array 2DNested Loop dengan Array 2DRangkuman: Array 2DArray Tidak BeraturanPola Umum Array 2DRangkuman: Papan Permainan6Set dengan Dictionary
Apa Itu Set?Dictionary sebagai SetMenambahkan dan MenghapusUnion dan IntersectionSelisih SetRangkuman: Menghapus DuplikatLatihan sendiri: Compiler GDScript online