Scratch

Scratch ile Nesne Yerleştirme Algoritması Yapalım

Programlamada bazı durumlarda ekrandaki nesneleri eşit aralıklarla dizmeniz gerekebilir. Bunu tek tek elle yapmak he zordur hem de çok zaman kaybettirir. Bunun için aşağıdaki gibi bir algoritma geliştirilip buna göre kod yazılırsa birçok açıdan işimiz kolaylaşır.

Buradaki amacımız kullanıcıdan istenecek satır ve sütun sayısına göre bir nesnenin kopyasını çıkarıp ekranda satır ve sütun sayısına göre eşit aralıklarda dizmektir.

1. Adım: Şekilleri sıralayacağımız ekranın koordinat değerlerini belirleme

Bu programı Scratch'te yapacağımız için öncelikle Scratch'teki standart koordinat ölçülerini bilmemiz gerekiyor. Scratch ekranında yatayda 480 piksel dikeyde de 360 piksel vardır. Scratch ekranının koordinat değerleri aşağıdaki resimdeki gibidir.

2. Adım: Şekil sıralama için gerekli değişkenleri belirleme

Oluşturacağımız program için kullanacağımız değişkenler aşağıdaki gibidir:

ilk_x: Oluşturulacak ilk nesnenin x koordinatı

ilk_y: Oluşturulacak ilk nesnenin y koordinatı

aralik_x: İki nesne arasındaki yatay uzaklık

aralik_y: İki nesne arasındaki dikey uzaklık

yatay_n: Yataydaki sıra sayısı

dikey_n: Dikeydeki sıra sayısı

sayac_x: Yataydaki nesneleri dizmek için kullanılacak sayaç

sayac_x: Dikeydeki nesneleri dizmek için kullanılacak sayaç

ilk_kontrol: Oluşturulacak ilk nesneyi belirten değişken

Örneğin 4x3 nesnenin sıralandığı bir ekran görüntüsünde bu değişkenlerden bazılarını gösterecek olursak:


Burada;

yatay_n=3

dikey_n=4

tür. 

Nesneler arası yatay uzaklık değeri olan aralik_x 

aralik_x = 480/(yatay_n+1) formülüyle hesaplanır çünkü diyelim ki yukarıdaki gibi dikeyde 4 sıra varsa yatay uzunluk 5 eşit parçaya bölünmektedir.

Nesneler arası dikey uzaklık değeri olan aralik_y 

aralik_y = 360/(dikey_n+1) formülüyle hesaplanır çünkü diyelim ki yukarıdaki gibi yatayda 3 sıra varsa dikey uzunluk 4 eşit parçaya bölünmektedir.

3. Adım: Programın algoritmasını hazırlama ve kodlamasını yapma

Programda  2 nesne vardır. Bunlar soruyu soran karakter ve kopyalanıp yerleştirilecek nesnedir. Buna göre

Soruyu soran karaktere verilen algoritma şu şekildedir:

1.Başla

2.ilk_x, ilk_y, aralik_x, aralik_y, yatay_n, dikey_n değişkenleri 0'la

3.Sor "Satır sayısı kaç?"

4.Cevabı yatay_n değişkenine aktar

5.Sor "Sütun sayısı kaç?"

6.Cevabı dikey_n değişkenine aktar

7.yatay_n >0 ve dikey_n >0 ise

8.    aralik_x = 480/(yatay_n+1)

9.    ilk_x = -240 + aralik_x

10.  aralik_y = -360/(dikey_n+1)

11.   ilk_y = -180 + aralik_y

12.  "yap" haberini sal

Kopyalanıp dizilecek nesnenin algoritması ise şu şekildedir:

1.Başla (Yap haberi gelince)

2.Boyutu ayarla

3.Görün

4.x= ilk_x,  y=ilk_y konumuna git

5.ilk_kontrolsayac_xsayac_y değişkenleri 0'la

6.Başla (Yap haberi gelince)

7.Boyutu ayarla

8. sayac_y = dikey_n olana kadar tekrarla

9.   sayac_x = yatay_n olana kadar tekrarla

10.      sayac_x = sayac_x + 1

11.      ilk_kontrol>0 ise

12.         kendi ikizini yap

13.         ikiz olarak başladığımda; x=ilk_x+(sayac_x-1)*aralik_x y=ilk_y+sayac_y*aralik_y  konumuna git

14.    ilk_kontrol = ilk_kontrol +1

15. sayac_y = sayac_y + 1

16. sayac_x = 0

Özetle,

Yukarıdaki algoritmalara göre önce kullanıcıdan satır ve sütun sayıları istenecek, nesneler arası yatay ve dikey uzaklıklar hesaplanacak, yatay ve dikey uzaklıklarak göre ilk oluşturulacak nesnenin koordinatları olarak ilk_x ve ilk_y değişkenleri hesaplanacaktır. Daha sonra bu koordinatlarda ilk nesne oluşturulacaktır. İlk nesne en alt satırda en solda olan nesnedir. Daha sonra sırayla en alt satırdan başlayarak  nesnelerin soldan sağa doğru kopyası çıkarılacak ve hesaplanan koordinata göre yerleştirilecektir.

Bu etkinliğin Scratch'te yapılmış tam haline ulaşmak için aşağıdaki bağlantıya tıklayınız.

https://scratch.mit.edu/projects/349093641/

Eğer siz daha başka ve kısa bir algortima oluşturabilirseniz yorumlarda paylaşmanızı bekliyoruz.

722 views
COMMENTS