Bu sayfadaki yazılar
Sayfanın metni
Sayfa 106
Siz en üst rafın en solunda duran kaba su doldurmaya başladıkça 8 birimlik kap dolduğunda yanındaki kaba, o da yanındakine aktarıyor.
En son bir raftaki tüm kaplar dolunca ise alt rafın en solundaki kaptan devam ediyor.
Klavyeyle gezinmek için ← ve → tuşları.
Sayfa 107
Buradaki her kap 8x8'lik bir karakter alanına denk geliyor ve 8 byte alabiliyor. Eğer her rafta toplam 40 kap olur ve 25 tane de rafımız olursa alın size Commodore'un ekranının hafıza dizilimi. Tek farkı bardaklar Commodore'da tersten doluyor. Yani yukarıdan aşağıya.
VIC simülatörü ise bu hafıza dizilimini PC'de simüle ederek bize hiç Commodore ya da Commodore emülasyonu kullanmadan test ortamı sağlayacak bir araç olacak.
"VIC Simülatörü"nü JavaScript'ten
yapmanın zor olan yanı ve çözümü nedir?
Aslında flash, java ve benzeri tarayıcı teknolojilerini kullanmaksızın basit bir yöntemle JavaScript'ten 320x200'lük alanın tamamını simüle etmek hemen hemen imkansızdır. Çünkü bu 64000 pixellik bir alan demektir ve HTML yapı itibariyle 64000 nesne ya da 64000 parçaya bölünmüş bir tabloyu kolay kolay kaldıramaz. Kaldırsa da çok ama çok yavaş olur. Peki ne yapmak lazım? Hadi bu yukarıdaki raf, bardak modelini ele alalım. Biz eğer her bir bardağı birer resim olarak kullanacak olursak bu yalnızca 40x25 = 1000 resim eder ki bu HTML için oldukça makul bir sayı. Peki kaç farklı resim oluşturmamız gerekir bu durumda? 2^64 = 18,446,744,073,709,551,616 adet resim oluşturmamız gerekir. Hmmm... O zaman bu olayı birazcık optimize etmemiz gerekecek. Tarayıcıya 1000 resim yerine 8000 resim yüklemek onu yaklaşık 8 kat yavaşlatacaktır. Peki bu resim sayısında yeterli bir fark yaratacak mı? Bu durumda her 1 byte 1 resme denk gelecek yani 2^8 = 256 adet resim oluşturmamız yeterli olacak. 8 kat hız kaybederek resim sayısını 72,057,594,037,927,936'de 1'e düşürdük. Fena sayılmaz.
Yukarıdaki paragraf elbette ki biraz espri içeriyor. Bu "niye her bir byte bir resme karşılık geliyor?" sorusuna yanıt olsun diye yazdığım, benim düşünce metodumu anlatan bir paragraf. Ancak sonuç olarak her 8 pixel, yani her 1 byte'ı 1 resime denk getirmemiz lazım. Peki bu resimleri nasıl oluşturacağız? 256 her ne kadar aşırı büyük bir sayı değilse de inanın oturup tek tek Photoshop'ta 256 resmi pixellemek istemezsiniz. Bunun için ben PHP kullandım. Çünkü PHP'nin grafik kütüphanesi olan GD2 çok basit bir kullanıma sahip. Sizler de PHP kurup, php.ini'nin içerisinden ";extension=php_gd2.dll" satırının başındaki noktalı virgülü kaldıracak olursanız aşağıdaki scripti çalıştırarak ihtiyacımız olan 256 resmi oluşturabilirsiniz.