2B Dizi Elemanlarına Erişim
Coddy'nin GDScript Journey'sinin Mantık ve Akış bölümünün bir parçası. Ders 13 / 78.
Bir 2B dizisinin bir hücresine ulaşmak için iki indeks kullanın: ilki satırı, ikincisi o satırın içindeki sütunu seçer. İkisi de 0 ile başlar.
var level := [
[1, 1, 1, 1],
[1, 0, 2, 1],
[1, 1, 1, 1]
]
print(level[1][2]) # 2 (satır 1, sütun 2)
print(level[0][0]) # 1level[1] [1, 0, 2, 1] satırını döndürür ve [2] ardından bu satırın 2. indeksini seçer. Herhangi bir dizide olduğu gibi negatif indeksler sondan sayılır: level[-1][-1] sağ alt hücredir.
Değiştirmek için bir hücreye değer atayın. Oyuncu madeni parayı aldığında, karosu zemin olur:
level[1][2] = 0
print(level[1]) # [1, 0, 0, 1]Izgaranın dışındaki bir indeks programı durduran bir hatadır: level[3][0] başarısız olur çünkü satırlar 0'dan 2'ye kadar gider. İndeksler girdiden veya bir hesaplamadan geliyorsa, önce bunları ızgaranın boyutuna göre kontrol et:
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")Bu, Outside the map yazdırır, çünkü 5. sütun mevcut değildir. and, false olan ilk koşulda durur; bu nedenle level[row] yalnızca satır mevcut olduğunda okunur.
Görev
KolayÜç parametreli get_tile adlı bir fonksiyon yaz:
grid: 2 boyutlu bir tamsayı dizisi (grid: Arrayolarak bildir)row: bir satır indeksicol: bir sütun indeksi
Belirtilen satır ve sütundaki değeri döndürür. row veya col ızgaranın dışındaysa ( 0'dan küçükse ya da satır veya sütun sayısından küçük değilse), bunun yerine -1 döndürür. Negatif indeksler dışarıda kabul edilir.
Örneğin, get_tile([[1, 2, 3], [4, 5, 6]], 1, 2) 6 döndürür ve get_tile([[1, 2], [3, 4]], 2, 1) -1 döndürür.
Testler get_tile() fonksiyonunu kendileri çağırır ve döndürdüğü değeri kontrol eder. Fonksiyonu çağırma ve hiçbir şey yazdırma.
Kendin dene
func get_tile(grid: Array, row: int, col: int):
# Kodu buraya yazın
pass
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
1String’leri Derinlemesine İnceleme
String MetotlarıString’lerde AramaDeğiştirme ve KırpmaBölme ve BirleştirmeTekrar: Kullanıcı Adı Kontrolü4Sözlükler Bölüm 2
İç İçe SözlüklerSözlük DizileriSözlükleri BirleştirmeSözlükleri KopyalamaTekrar - Frekans Sayacı10İleri Düzey Fonksiyonlar
Birden Fazla Değer DöndürmeLambda Fonksiyonları Bölüm 1Lambda Fonksiyonları Bölüm 2Tekrar - Lambda ile SıralamaÖzyinelemeli Fonksiyonlar Bölüm 1Özyinelemeli Fonksiyonlar Bölüm 2Tekrar - İç İçe Dizilerin Toplamı13Envanter Yönetim Sistemi
Projeye Genel BakışÜrün Ekle2İleri Düzey Karar Verme
Değişkenlerle EşleştirmeEşleştirme KoşullarıDizi KalıplarıSözlük KalıplarıÜyelik KontrolleriÖzet - Komut Ayrıştırıcı5Rehber Uygulaması
Menüyü GörüntüleKişi Ekle8Öğrenci Kayıt Yöneticisi
Proje Genel BakışıÖğrenci Ekle11Üst Düzey Fonksiyonlar
map Metodufilter Metodureduce Metoduany ve allTekrar - E-posta DoğrulayıcıTekrar - Sayı İşleyici3Çok Boyutlu Diziler
2B Dizilere Giriş2B Dizi Elemanlarına Erişim2B Dizilerle İç İçe DöngülerTekrar - 2B DizilerDüzensiz DizilerYaygın 2B Dizi ÖrüntüleriTekrar - Oyun Tahtası6Sözlüklerle Kümeler
Küme Nedir?Küme Olarak SözlükEkleme ve SilmeBirleşim ve KesişimKüme FarkıTekrar: Yinelenenleri Silme9Gelişmiş Veri Toplama
Değerleri ToplamaEn Küçük ve En Büyük Değeri BulmaÖzel SıralamaÖzet - Sözlük SıralayıcıKendi başına pratik yap: Online GDScript derleyicisi