Scratch liste kullanımı, birden fazla bilgiyi belirli bir sırayla saklamanı ve proje çalışırken bu bilgileri yönetmeni sağlar. Önce Değişkenler bölümünden bir liste oluşturur, ardından listeye öğe ekleme, silme, değiştirme ve sıra numarasıyla okuma bloklarını kullanırsın. Alışveriş listesi gibi bir projede listeyi sahnede gösterebilir ve programın akışına göre güncelleyebilirsin.
Scratch listesi nedir, değişkenden farkı nasıl anlaşılır?
Scratch listesi, değerleri belirli bir sırayla bir arada tutar. Değişken ise tek bir değeri saklamak için kullanılır. Örneğin bir alışveriş projesinde ürün adında bir değişkene yalnızca “elma” yazabilirsin. Liste kullandığında ise aynı yapıda “elma”, “süt” ve “ekmek” gibi birden fazla öğeyi saklayabilirsin.
Liste içindeki her öğenin bir sırası vardır. Bu sıra, belirli bir ürünü bulmayı ve listedeki ürünleri sırayla kullanmayı kolaylaştırır. Örneğin program ilk olarak listedeki ürünü okuyabilir, sonra ikinci ürüne geçebilir. Böylece alışveriş listesi yalnızca ekranda duran bir metin olmaktan çıkar ve programın kullanabildiği düzenli bir bilgi grubuna dönüşür.
Değişken, o anda tutulması gereken tek bir bilgi için uygundur. Listenin içindeki öğe sayısı arttıkça yeni değişkenler oluşturmak yerine aynı listenin içine yeni öğeler ekleyebilirsin. Bu yapı, özellikle kullanıcıdan birden fazla cevap alma, puanları sırayla saklama veya bir oyundaki görevleri takip etme gibi durumlarda işe yarar.
Scratch’te liste nasıl oluşturulur ve sahnede gösterilir?

Liste, Değişkenler bölümünden yeni bir liste oluşturularak hazırlanır. Önce kod alanında Değişkenler kategorisini aç ve Bir Liste Oluştur düğmesine tıkla. Açılan penceredeki Yeni liste adı alanına listenin ne tuttuğunu anlatan bir ad yaz. Alışveriş listesi için “Alışveriş” adı anlaşılır bir seçimdir.
Listeyi oluştururken erişim kapsamını da seçmen gerekir. Tüm kuklalar için seçeneği, listedeki bilgilerin projedeki bütün kuklalar tarafından kullanılmasını sağlar. Alışveriş listesini bir kuklanın hazırlayıp başka bir kuklanın göstermesini istiyorsan bu seçenek uygundur. Sadece bu kukla için seçeneği ise listeyi oluşturduğun kuklanın kullanımına ayırır. Alışveriş listesindeki tüm işlemler tek bir kuklaya ait olacaksa bu kapsam tercih edilebilir.
Liste oluşturulduktan sonra Değişkenler alanında listenin yanında bulunan kutuyu işaretleyerek listeyi sahnede görünür hâle getirebilirsin. Listeyi kodla göstermek veya gizlemek için Alışveriş listesini göster ve Alışveriş listesini gizle bloklarını kullanabilirsin. Görünürlüğü yalnızca gerektiğinde değiştirmek, sahnenin gereksiz bilgilerle dolmasını önlemeye yardımcı olur.
yeşil bayrağa tıklandığında
Alışveriş listesini göster
Bu bloklar çalıştığında “Alışveriş” adlı liste sahnenin üzerinde görünür. Listeyi oluştururken anlamlı bir ad vermek, ileride ekleme ve okuma bloklarını seçerken doğru listeyi bulmanı kolaylaştırır.
Listeye öğe ekleme, silme ve değiştirme nasıl yapılır?
Liste işlemleri, yeni öğeyi sona eklemek, belirli sıradaki öğeyi silmek, listenin tamamını temizlemek ve seçilen sıradaki öğeyi yeni bir değerle değiştirmek için kullanılır.
Örneğin listen [elma, süt] durumundaysa, ekle bloğuyla ekmek eklendiğinde liste [elma, süt, ekmek] olur. İkinci öğeyi silersen süt çıkar ve liste [elma, ekmek] hâline gelir. İlk öğeyi yeni bir değerle değiştirirsen elmanın yerini bu değer alır.
Türkçe arayüzde bu işlemler, liste adı ve değer alanları değişen listeye ekle, listeden sıradaki öğeyi sil, listenin her şeyini sil ve öğeyi yeni değerle değiştir biçimindeki bloklarla yapılır. İngilizce karşılıkları sırasıyla add to list, delete of list, delete all of list ve replace item of list with şeklindedir.
Silme işlemi öğenin metnine göre değil, sıra numarasına göre yapılır. Bu nedenle ikinci öğeyi silmek için silme bloğundaki sıra alanına 2 yazmalısın. Bir alışveriş projesinde kullanıcıdan alınan cevap boş değilse cevap değerinin listeye eklenmesi gerekir.
sor [Alışverişe ne ekleyelim?] ve bekle
eğer <cevap boş değilse> ise
cevabı [Alışveriş Listesi] listesine ekle
Bu akışta kullanıcı “makarna” yazarsa makarna listenin sonuna eklenir. Boş cevaplarda ise listeye gereksiz boş satır eklenmez.
Listedeki öğe nasıl okunur ve tüm liste nasıl dolaşılır?

Belirli bir öğe, listedeki sıra numarası kullanılarak okunur; tüm öğeler ise listenin uzunluğu kadar tekrarlanan bir döngüyle sırayla kullanılır.
[elma, süt, ekmek] listesinin uzunluğu 3 değeridir. Listenin uzunluğu bloğu kaç öğe bulunduğunu verir. Belirli sıradaki değeri almak için kullanılan listenin sıra numarasındaki öğesi bloğunda 1 yazarsa elma, 2 yazarsa süt, 3 yazarsa ekmek okunur.
Scratch listelerinde sıra numarası 1’den başlar. Bu yüzden sayaç değişkenini 0’dan başlatmak ilk öğeyi doğru okumaz. 0 veya listenin uzunluğundan büyük bir sıra numarası kullanılırsa öğe okuma bloğu boş sonuç verebilir ve ayrıca hata penceresi göstermeyebilir.
[sayaç] değişkenini 1 yap
[Alışveriş Listesi] uzunluğu kadar tekrarla
sayaç sırasındaki [Alışveriş Listesi] öğesini de
sayaç değişkenini 1 artır
Sayaç 1’den başladığı için üç döngü adımında sırasıyla elma, süt ve ekmek okunur. Döngü sayısını sabit bir rakam yerine listenin uzunluğuna bağlamak, listeye daha sonra yeni öğeler eklendiğinde akışın çalışmaya devam etmesini sağlar.
Alışveriş listesi projesi adım adım nasıl kurulur?
Proje, yeşil bayrakta listeyi temizleyip kullanıcı cevaplarını ekleyerek, boşluk tuşunda öğeleri sırayla söyleyerek ve ayrı bir tuşta rastgele bir öğe seçerek çalışır. Bunun için Alışveriş adlı bir liste ve listedeki sırayı takip etmek için sıra adlı bir değişken oluştur.
Türkçe arayüzde soru sorma bloğu [soru] diye sor ve bekle, listeye ekleme bloğu [öğe] öğesini [liste] listesine ekle, uzunluk bloğu [liste] listesinin uzunluğu ve belirli öğeyi okuma bloğu [liste] listesinin [sıra]. öğesi biçiminde görünür. İngilizce arayüzde bunların karşılıkları sırasıyla ask and wait, add to, length of ve item of ifadeleridir.
1. Ürünleri listeye ekleme
Yeşil bayrağa tıklandığında önce Alışveriş listesinin tümünü sil bloğunu çalıştır. Böylece önceki çalıştırmadan kalan ürünler yeni listeye karışmaz. Ardından Ne almak istersin? sorusunu sor ve yanıt boş değilse bu yanıtı listeye ekle.
2. Ürünleri sırayla söyleme
Boşluk tuşuna basıldığında sıra değişkenini 1 yap. Daha sonra listenin uzunluğu kadar tekrarla. Döngünün içinde Alışveriş listesinin sıra. öğesi bloğunu söyle bloğuna yerleştir ve her turdan sonra sıra değişkenini 1 artır.
3. Rastgele ürün seçme
Rastgele seçim tuşuna basıldığında önce listenin boş olup olmadığını kontrol et. Liste boş değilse sıra değişkenine 1 ile listenin uzunluğu arasında rastgele seçilen sayıyı ver. Ardından bu sıradaki öğeyi söyle.
[yeşil bayrak tıklanınca]
[Alışveriş listesinin tümünü sil]
[Ne almak istersin? diye sor ve bekle]
[eğer yanıt boş değilse]
[yanıt'ı Alışveriş listesine ekle]
[boşluk tuşuna basılınca]
[sıra = 1]
[Alışveriş listesinin uzunluğu kadar tekrarla]
[Alışveriş listesinin sıra. öğesini söyle]
[sırayı 1 artır]
[rastgele seçim tuşuna basılınca]
[eğer Alışveriş listesi boş değilse]
[sıra = 1 ile Alışveriş listesinin uzunluğu arasında rastgele seç]
[Alışveriş listesinin sıra. öğesini söyle]
Örneğin liste başlangıçta boştur. Ürün ekleme akışını üç kez çalıştırıp sırasıyla elma, süt ve ekmek cevaplarını verirsen liste bu sırayı korur. Boşluk tuşuna bastığında kukla önce elmayı, sonra sütü, ardından ekmeği söyler. Rastgele seçim tuşuna bastığında ise bu üç üründen biri seçilir.
Scratch listelerinde sık yapılan hatalar nasıl düzeltilir?
Liste sorunlarını düzeltmek için başlangıç temizliğini, sıra numarasının başlangıcını, listenin kapsamını ve boş liste durumunu birlikte kontrol etmek gerekir. Her hata, listenin içeriğini ve kullanılan blokların hangi kuklaya ait olduğunu inceleyerek bulunabilir.
- Belirti: Liste her çalıştırmada uzuyor. Neden: Eski öğeler silinmeden yeni cevaplar ekleniyor. Düzeltme: Yeşil bayrak bloğunun hemen altına
Alışveriş listesinin tümünü silbloğunu yerleştir. - Belirti: İlk öğe okunmuyor veya döngü yanlış sıradan başlıyor. Neden:
sıradeğişkeni 0'dan başlatılıyor. Düzeltme: Sıra numarasını 1 yap. Scratch listelerinde ilk öğe 1 numaralıdır. - Belirti: Başka bir kukla listeyi göremiyor. Neden: Liste oluşturulurken
bu kukla içinseçeneği işaretlenmiş olabilir. Düzeltme: Birden fazla kuklanın aynı listeyi kullanması gerekiyorsa listeyi tüm kuklaların erişebileceği kapsamda oluştur. - Belirti: Rastgele seçim çalışmıyor. Neden: Liste boştur ve rastgele sayı aralığı 1 ile 0 arasında kalır. Düzeltme: Rastgele seçimden önce listenin boş olmadığını
eğerkoşuluyla denetle.
Sık Sorulan Sorular
Scratch listelerinde sıra numarası neden 0 değil 1 ile başlar?
Scratch listelerinde ilk öğe 1 numaralıdır; bu nedenle ilk öğeyi okumak için sıra değerini 1 yapman gerekir. Boş listenin uzunluğu 0 olabilir, ancak listedeki geçerli öğe sıraları 1'den başlar.
Scratch projesi her çalıştırıldığında liste neden yeniden uzar?
Liste her çalıştırmada temizlenmeden yeni cevaplar eklenirse önceki öğeler korunur ve liste uzar. Yeşil bayrak akışının başına listenin tüm öğelerini silen bloğu eklemek bu durumu düzeltir.
“Bu kukla için” oluşturulan listeye başka bir kukla erişebilir mi?
“Bu kukla için” oluşturulan listeye başka bir kukla doğrudan erişemez. Aynı listenin birden fazla kukla tarafından okunması gerekiyorsa listeyi oluştururken tüm kuklaların kullanabileceği kapsamı seçmelisin.
Boş bir Scratch listesinden rastgele öğe seçmeye çalışınca ne yapılmalıdır?
Boş listeden rastgele öğe seçmeden önce listenin uzunluğunu veya boş olup olmadığını kontrol etmelisin. Liste boşsa seçim bloğunu çalıştırma, önce en az bir öğe eklenmesini bekle.
Bu projeyi çalıştırırken her akışın hangi sırayla ilerlediğini kontrol etmek, liste bloklarını daha kolay anlamanı sağlar.