Menu
CoddyTech

Düzensiz Diziler

Coddy'nin GDScript Journey'sinin Mantık ve Akış bölümünün bir parçası. Ders 16 / 78.

2B dizininin satırlarının aynı uzunlukta olması gerekmez. Satırları farklı uzunluklarda olan 2B diziye jagged array denir. Burada her satır bir oyuncunun puanlarını içerir ve oyuncular farklı sayıda tur oynamıştır:

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

Girintili bir dizide, scores[0].size() her satırın uzunluğu değildir. Geçerli satırın sütunları üzerinde scores[r].size() ile döngü yap:

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

İlk satırın uzunluğunu her zaman kullanan bir döngü, daha kısa satırların sonunu aşar: scores[1][2] hatalıdır, çünkü 1. satırda yalnızca 0 indeksi vardır. for value in row üzerinden geçilen satıra her zaman uyar.

Her satırın uzunluğu farklı olacak şekilde, bir ızgara gibi düzensiz bir dizi oluşturursun. Bu üçgende, r satırında r + 1 hücre bulunur:

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))
*
**
***
****

Bir satır boş bile olabilir: [[1, 2], [], [3]], üç satırlı geçerli bir basamaklı dizidir.

challenge icon

Görev

Kolay

Tek parametre olarak int türünde n alan make_triangle adlı bir işlev yazın. n satırlı bir düzensiz dizi döndürür:

  • 1. satırda 1 hücre, 2. satırda 2 hücre bulunur ve bu böyle devam eder; n. satırda n hücre bulunur.
  • Satırları ve sütunları 1'den başlayarak sayarsak her hücre, satır numarası ile sütun numarasının çarpımını içerir. 3. satır, 2. sütundaki hücre 3 * 2 = 6 değerini içerir.

Örneğin, make_triangle(3) şunu döndürür:

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

Testler make_triangle() işlevini kendileri çağırır ve döndürülen diziyi denetler. İşlevi çağırmayın ve hiçbir şey yazdırmayın.

Kendin dene

func make_triangle(n: int):
	# Kodu buraya yazın
	pass
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Mantık ve Akış bölümündeki tüm dersler

Kendi başına pratik yap: Online GDScript derleyicisi