Commodore sayı 21, sayfa 49

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 49

SAMET KUMAŞ

Kaplumbağanın ve çizdiği çizgilerin rengini belirleyen işlem PENCOLOR ya da kısaca PC'dir; ekran zeminin rengini belirleyense BACKGROUND ya da BG... Her iki komut da 0 ilâ 15 arasında yeralması gereken tek bir parametre alır. Ancak bu noktada kafa karıştırıcı bir şey var. Bildiğiniz gibi, C-64'ünüzde renklerin klavye üzerinde belirtilmiş sayısal değerleri 1 ilâ 8 arasında yeralır. Oysa LOGO'da renkler 0'dan başlayarak numaralanır. Aşağıda LOGO'da her rengin sayısal karşılığını bulacaksınız:

Renk Sayısal değeri Siyah 0 Beyaz 1 Kırmızı 2 Cyan 3 Mor 4 Yeşil 5 Mavi 6 Sarı 7 Turuncu 8 Kahverengi 9 Açık kırmızı 10 1. Gri 11 2. Gri 12 Açık yeşil 13 Açık mavi 14 3. Gri 15

Yalnız unutulmamalı ki, PC ve BG komutları yalnızca çizim ekranı için geçerlidir. Metin ekranında yazının rengi TEXTCOLOR, zeminin rengi ise TEXTBG komutları ile belirlenir. Aynen PC ve BG gibi bunlar da 0 ila 15 arasında yeralması gereken sayısal birer parametre alırlar. Madem ekranın nasıl renklendirileceğini gördük, şimdi bu imkandan yararlanıp renkli bir güneş çizelim. Bunun için iki işlemden yararlanacağız. Birincisi bir dörtgen çiziyor:

TO DORTGEN REPEAT 2 (FD 60 RT 30 FD 60 RT 150) END

Bu sabit işlemi mutlaka disketinize kaydedin. Daha sonra sık sık başvuracağımız için, renkli güneşimizin bir parçası değil de, ayrı bir işlem olarak tanımladık. Şimdi bu dörtgeni her defasında beş derece sağa döndürerek 72 kere tekrarlarsak, güneş şeklini elde ederiz.

TO GUNES MAKE “X 1 REPEAT 72 (PC:X4 1 DORTGEN RT 5) END

Ama bu işlemi çalıştırdıktan bir süre sonra bir problemle karşılaşacaksınız. Yani şöyle bir hata mesajı belirecek. PC DOESN'T LİKE 16 AS İNPUT İN LİNE vs. diye. Yani PC komutu parametre olarak 16'yı beğenmiyor. Bu da çok doğal; en yüksek renk kodumuz 15'ti.

Bu sorunu çözmenin iki yolu var, biri dolambaçlı ve kolay, ikincisi yalın ve nisbeten daha çok şey bilmeyi gerektiriyor. Dolambaçlı ve kolay olanı ile başlayalım.

Koşullu Komutlar

Şimdiye kadar sık sık, Logo'nun mantığının Basic ve hatta Pascal gibi diğer dillerden hatırı sayılır ölçüde farklı olduğunu söyleyip durduk. Tabii her genelleme gibi bunun da istisnaları var. Bir tanesini de gördük bile; koşullu komutların, daha da açıkçası IF... THEN... ELSE'in kullanımı Logo'da da diğer dillerdekine benziyor. O halde koşullu komutları kullanarak renkli güneş çizen işlemimizi şu şekilde yeniden yazabiliriz.

TO GUNES MAKE “X O REPEAT 72 (IF:X — 15 THEN MAKE “X O ELSE PC:X4 1 DORTGEN RT 5S) END

İşlem bu şekilde yazıldığında, renk değeri 15'e ulaştığında (yani kaplumbağa grinin üçüncü tonunu aldığında), kaplumbağa renk değiştirmeyecek, yani dörtgeni iki kere üstüste üçüncü gride çizecek ancak bir dahaki sefere renk dizisine 0'dan, yani siyahtan yeniden başlayacaktır.

Aritmetik İşlemlerin Öncelik Sırası: Logo işlemlerinin diğer dilleri andırdığı ikinci bir alan da aritmetik hesaplamalar alanıdır. Bir kere bütün aritmetik işlemlerin işaretleri, bütün diğer dillerden tanıdığımız işaretlerdir:

Klavyeyle gezinmek için ← ve → tuşları.