Menu
CoddyTech

Array Tidak Beraturan

Termasuk bagian Logika dan Alur dalam perjalanan GDScript di Coddy. Pelajaran 16 dari 78.

Baris-baris dalam array 2D tidak harus memiliki panjang yang sama. Array 2D yang baris-barisnya memiliki panjang berbeda disebut array bergerigi. Di sini, setiap baris menyimpan skor satu pemain, dan para pemain telah memainkan jumlah ronde yang berbeda:

var scores := [
	[90, 85, 70],
	[60],
	[75, 80]
]
print(scores[0].size()) # 3
print(scores[1].size()) # 1

Dalam array bergerigi, scores[0].size() bukanlah panjang setiap baris. Lakukan perulangan pada kolom di baris saat ini dengan scores[r].size():

for r in range(scores.size()):
	var total := 0
	for c in range(scores[r].size()):
		total += scores[r][c]
	print("Player ", r + 1, ": ", total)
Player 1: 245
Player 2: 60
Player 3: 155

Perulangan yang selalu menggunakan panjang baris pertama akan membaca melewati akhir baris yang lebih pendek: scores[1][2] adalah error, karena baris 1 hanya memiliki indeks 0. for value in row selalu sesuai dengan baris yang dilaluinya.

Kamu membuat array bergerigi seperti kisi, dengan panjang yang berbeda untuk setiap baris. Dalam segitiga ini, baris r memiliki r + 1 sel:

var triangle := []
for r in range(4):
	var row := []
	for c in range(r + 1):
		row.append("*")
	triangle.append(row)
for row in triangle:
	print("".join(row))
*
**
***
****

Sebuah baris bahkan bisa kosong: [[1, 2], [], [3]] adalah jagged array yang valid dengan tiga baris.

challenge icon

Tantangan

Mudah

Tulis fungsi bernama make_triangle dengan satu parameter int, yaitu n. Fungsi ini mengembalikan array bergerigi dengan n baris:

  • Baris 1 memiliki 1 sel, baris 2 memiliki 2 sel, dan seterusnya, hingga baris n, yang memiliki n sel.
  • Dengan menghitung baris dan kolom mulai dari 1, setiap sel berisi hasil perkalian nomor baris dengan nomor kolomnya. Sel pada baris 3, kolom 2 berisi 3 * 2 = 6.

Contohnya, make_triangle(3) mengembalikan:

[[1], [2, 4], [3, 6, 9]]

Pengujian akan memanggil make_triangle() sendiri dan memeriksa array yang dikembalikan. Jangan panggil fungsi tersebut dan jangan cetak apa pun.

Coba sendiri

func make_triangle(n: int):
	# Tulis kodemu di sini
	pass
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Logika dan Alur

Latihan sendiri: Compiler GDScript online