DEMOLAR Demoları

eni yılla birlikte Avrupa'- Y da düzenlenen partilerdeki demolar insanın tüylerini diken diken ediyor. Artık Com- 64 ile AMIİGA'daki birçok tekniğin uygulaması yapılabiliyor. En son olarak plazma tekniği uygulandı ama şimdilik en popüler programlar ve demolar vektör grafiklere dayanıyor. Light adlı grup Commodore 64'te şimdiye kadar yapılan en iyi vektör demoların programcılarına sahip. Matematik hesap alanında bu programcıları henüz geçen yok gibi. Light, oldukça köklü ve eski bir grup. Bu yüzden elimizdeki ilk demoları hep tek parça. Ama arka arkaya sıkıştırılmış olarak bulunan bu tek dosyaların içinde bile beş altı farklı bölüm var. Light'ın sonradan hazırladığı diğer demoları da öbür gruplarınkiler gibi çok parçalı ve bir diskin tüm bir yüzünü tutacak kadar uzunları var. Önceleri standart efektler üzerinde Light daha sonra kendi geliştirdiği efektleri ve özellikle matematik hesaplı demo bölümleri ile ün kazandı. Mega-demo olarak adlandırılan ve bir diskin tüm yüzünü tutan demolarında Light, Brutal (vahşi) adına taktı ve bu adla dört beş demo piyasaya sürdü. Brutal ile başlayan seri Brutal 2 ve 3 ile devam etti. Bu arada My, Oh My! (Aman Tanrım!) adlı demoyla ortalığı alt üst etti ve Brutality (vah-

SİNAN VURAL şilik) adlı demolarıyla da yılbaşı partilerinde birinciliği aldı. Şimdi bu demolardaki efektleri ve bölümleri kısaca anlatalım.

Rubicon: Light'ın bu en eski demo programı ardarda sıkıştırılmış üç ana bölümden oluşuyor. İlk bölüm daha sonra standart haline gelen bir intro. İkinci bölümde ise o zamanlar çok moda olan bir efekt bulunuyor. Sinüs-dots adı verilen bu efekt sinüs grafiklerine bağlı olarak ekranda noktalarla şekiller oluşturulması olarak özetlenebilir. Genelde eğrilerden oluşan bu şekillerin fonksiyonlarında çeşitli parametreler değiştirilerek ekranda görülen efektler değiştirilebilir. O zamanlar hemen her demoda karşımıza çıkan bu efekti Light ilk defa değişik bir şekilde kullanılmış: noktaların yerleştirildiği ekran yanlardan sınırlı değil, yani yan börder'lar açılıp buraya sprite'lar yerleştirilmiş, Bu bölümden sonra sie oldukça hareketli bir bölüme geçliyor. Ekranın ortasında büyük bir borderlogo bulunuyor. Logo ile aynı alanı paylaşan bir mültiplexer ve techtech yapan ve içinde renk şeritleri bulunan bir uzatılmış sprite var. Burada en ilgiç olay hem borderlogo hem de börder-mültiplexer aynı yere nasıl sıkıştırıldığı. Ekranın alt ve üst border'larında da grafikler ve logolar bulunuyor.

Jenny EA: Programcılardan birinin kız arkadaşına ithaf edilen bu demonun ilk bölümünde basit bir intro bulunüyor. Arkasından gelen bölümde ise o zamanların gözde rutinlerinden biri olan dysp bulunuyor. Ancak aynı ekran bölümüne bu demoda isteğe bağlı olarak altı taneye kadar dysp scroll konabiliyor. İkinci bölümde Rubicon'dan tanıdığımız bir efekt var: border-sinus-dots. Son iki bölüm ise demonun en iyi efektlerini içeriyor. Bunlardan ilkinde grafik ekranı çeşitli x ve y eksenlerinde kaydırılıyor. Border'larda yine birkaç görse şey var tabi ki. Son bölüm ise demonun en çok göz dolduran bölümü. İlk anda sadece bir scroll mesajı görülüyor. Siz bunu okurken daha sonra neler geleceğini okuyorsunuz: ilk önce 5 x6 karakterlik bir seroll mesajı daha geliyor. Bunun alt tarafında ise ilginç bir geçiş efektiyle iki logo gösteriliyor. Bu arada bir dysp başlıyor. Ekranın alt tarafında ise bir yıldız kaydırma rutini, yıldızlarla aynı bölgede sekiz uçak grafiği ve yıldız bölgesinin yan taraında yukarı kayan iki scroll geliyor ekrana. Alt ve üst border'larda ise 3FFF adresinin kullanıldığı bir efekt ve bunun üzerine logolar ve başka grafikler görülüyor.

Brutal 2: Brutal serisinin ikinci olarak hazırlanan bu demo ile light tiksel alanda harikalar göstereye başlamıştı. Demonun intro'dan sonraki iki bölümünde kullanıcının kontrolünde bulunan bir sprite hareketi bulunuyor. Ancak sprite'ların bulunduğu alanda renk şeritleri sağa sola doğru sallanıyor. Split'- ler ile bunu yapmak imkansız olacağından (çünkü kayan renk alanlarının hareketi çok küçük adımlarda) burada multiplexer kullanıldıanlıyoruz. Ekranın üst kısmında ise tech-tech halinde bir logo bulünüyor.

Demonun ikinci bölümünde ise tüm ekran kaldırılmış böyece tüm börder'ların açılması sağlanmış. Biraz bekleyince ekrana bir upseroller geliyor. Ancak tüm border'lar kaldırıldığı için sprite'lardan oluşan bu scroll tüm ekrana yayılıyor. Tek bir scroll'la kalmıyor tabii ki, bunun peşinden yedi tane daha geliyor. Oldukça hareketli olan üçüncü bölümde karakter seti olarak hazırlanmış bir animasyon ve aynı ekran bölgesinde büyük bir multiplexer var. Bunun yanında ekranın alt border'ında da bir mesaj okuyoruz, ancak genişletilmiş sprite kullanılması gereken bu bölgede bazı trikler yardmıyla çok da kalın olmayan harfler kullanılmış. Demonun son bölümünde ise Light'ın ilk vektör programı bulunuyor. O zamanlar yeni yeni boy gösteren vektör rutinleri arasında en eskilerinden birisi olan bu bölümde tek bir vektör cisim var, o da grubun adının yazılı olduğu bir logo.

Brutal 3: Bü seriye oldukça sükse yapanı Light'ın yine derece almış bir başka demosu. Bu demoda önemli olatak bahsedilmesi gereken bölümler dört tane ve bunların dördü de vektörlerle ilgili. Zaten bu grubun en büyük becerisinin matematiksel alanda olduğunu söylemiştim. Demonun ikinci bölümünde o Zamana kadar kimsenin yapmamış olduğu bir program var: filled vektör. İngilizce'de doldurulmuş anlamına gelen “filled' kelimesi vektörlerle birleştirilince yüzeyleri farklı renklere sahip katı cisimler olarak karşımıza çıkıyor. O sırada henüz hiç de esnek olmayanı bir rutin parçası verilerek gelecek demolarında filled vektörlerin haberini veriyordu Light. Önemli ikinci bölümde yine vektörlerin yer aldığını biliyorsunuz. Bu bölümde gerçek zamanlı olarak görünüşleri hesaplanan görünmeyen yüzüyle vektörler bulunuyor. Hidden-line (saklı çizgilerin görünmemesi) sistemine dayanan bu bölümdeki vektör cisimler sadece dış bükey olmak zorundalar çünkü gö- Tünmeyen yüzeyler tamamen kaldırılır, yani sadece bir kısmı kapalı bile olsa bir yüzey hiç görünmez. Cisimlerin gerçek zamanlı olarak hesaplandığı da x, y ve z eksenleri &trafındaki rotasyon derecelerinin kullanıcı tarafından kontrol edilmesiyle anlaşılıyor. Vektörel olan üçüncü bölümde daha önce noktaları hesaplanmış olan hidden-line cisimler gösteriliyor. Ancak hesaplar önceden yapılmiş olduğu için kısmi olarak kaplı olan yüzeyler de gösterilebiliyor. Demonun son bölümünde ise bir başka matematik şaheseri var. Kullanıcının seçimine göre 91 yazısı çeşitli şekiller üzerine sarılıp bu cisimler döndürülüyor. En uzunu bile yaklaşık yarım dakika alan bu hesaplamalar sonunda görmeye değer şekiller ortaya çıkıyor. My, Oh My!: Gerçekten de “Aman Allahım”

dedirten bu demo da Light'a bir yabirincilik kazandırdı. Intro'su ve ilk bölümü çok daha ilgi çekici olmayan demonun ikinci bölümde, daha önce Brutal 2'de kullanılan bir efektin yeni hali var. Tüm börder'larda yukarı doğru kayan sprite-scroll'lar bu sefer dört tane ama harfler çok daha büyük. scroll mesajlarından ikisi bir yandan yukarı kayarken bir yandan da tech-tech hareketi yapıyorlar. Demonun diğer bir bölümünde bir border-dysp var, ama $3FFF'deki değer değiştirilecek kalın görünmesi gereken genişletilmiş sprite çizgileri gerekli yerlerde inceltilmiş. Bir başka bölümde de tüm ekrana yayılmış gerçek (?) mega-dysp bulunuyor. Soru işareti koydum çünkü bunun ne olduğunu açıklamak gerekiyor. Genelde dysp yapıhirken ayni hızda ve rotaları çakışan matrisler kullanılır ve iki yazı çakıştığında alt tarafta kalan görünmez. Ancak bu bölümde rotaları, sinüs fonksiyonları ve genellikle farklı olan yedi tane scroll mesajı bulunuyor, üstelik çıkıştıkları zaman “ORA” işlemi yapılarak alttaki harflerin görünmesi de sağ- Demonun görülmesi gereken en önemli bölümdeyse daha önceki demoda haberi verilen filledktransforming vektörleri bulunuyor, Ekrana çıkan kare ilk önce dönmeye başlıyor, daha sonra kalınlaşarak bir küpe dönüşüyor. Özellikle şekillerin içinin dolu olması gerektiğinden bu tür bir rutin daha önce yapılmamıştı. Brutality: Brutal serisinden sonra artık damgalarını vurmak istercesine, geçen yılın son partisinde Light bu demoyu piyasaya sürdü. Birkaç partide birincilik alan demonun bölümleri gerçekten şapka uçurtacak cinsten. Klasik intro'dan sonra yüklenen bölümde, Fli-graph'ta hazırlanmış harflerle üç tane ayrı scroll mesajı geçiyor. Ekranın alt kısmında ise bir sayaç geriye doğru sayıyor, sıfıra ulaştığında ise boşluk tuşuna basmanız bekleniyor. Bü kadar süre içinde hazırlanan sıfıra ulaştığında ise boşluk tuşuna basmanız bekleniyor. Bu kadar süre içinde hazırlanan Mandelbrot fraktalı daha önce ekranım üstünde logönun bulunduğu yerde sizlere gösteriliyor. İkinci bölümde Commodore 64 ile ilk defa gerçekleştirilen bir efekt söz konusu: ray trace. Işık işinlarınan takip edilerek yansımalarının hesaplanması AMIGA'nın ilk günlerinden beri yapılan bir işlem, ama 64'te henüz bunu yapan kimse yoktu. Light'ın programcılarından biri olan Flamingo ise bu işlemi ilk gerçekleştiren programcı. Karelerden oluşan bir taban desenini bir küre üzerine sararak becerisini ispatlıyor. Ayrıca kürenin çeşitli konumları hesaplandıktan sonra sırayla gösterilerek bir ray-trace animasyon da hazırlanmış. Demoda vektörlerle ilgili yine birçok bölüm var, bunlardan biri shadows-filled-transforming vektörler. Gölgeli vektörler daha önce yapılmışti, ama bunlar arasında transform yani değişim gösteren bir program yoktu; ama artık var! Programcının dediğine bakılırsa çok önceden hazırlanmış bir bölümde AFli logo üzerinde tech tech işleminin yapılması. AFli olarak hazırlanan logoya tech-tech hareketi verdirmek çok güçtür çünkü raster zamanı yetmez, ama nasıl başarmışlarsa burada zamanı yetiştirme: yi başarmışlar. Demonun sonlarına yaklaşıldığında AMIGA'da hazırlanıp 64'e geçirilmiş olan bir ray-trace animasyon gi 32 kare olarak hazırlanan animasyonun renk geçişleri gerçekten de çok yumuşak ve AMIGA-64 dönüşümü çok başarıyla gerçekleştirilmiş.

Demonun son bölümü izleyenlere, “İnsaf artık!” dedirtiyor. İlk önce ekrana gelen transforminghidden-line cisim zaten kafayı yı dirtiyor. Ama bunun daha büyük bir kübün bir yüzeyinde bulunması ve büyük kübün dönerek diğer yüzeylerdeki grafiklerini göstermesiyle olduğunuz yerde kalakalıyorsunuz. Scroll mesajında yazılanlara bakılırsa yüzeyler üzerinde bulunan vektör cisimleri önceden hesaplanmış ama dönen kübürni üzerine gerçek zamanlı olarak geçiriliyor.

Eğer demo topluyorsanız bu demoyu kaçırmayın, mutlaka arşivinize katın.

YAZILIM

Binom Dağılımı balıkçının tek bir balık yakaladığında, bu- — yakalanan balık alabalık ise xi—1, değilse nun alabalık olması olasılığıdır (p O veya | — xi—0 olsun vei değişkeni 1'den ne kadar bir. ir problemin örnek yardımıyla for- — değerini alabilir). Bu yüzden başka bir tür — değer alsın. B müle edilmesi: balık yakalanması olasılığı 1-p'dir. Burada xi rastgele değişkenleri, p paramet- P bir göldeki alabalıkların diğer- Bu rastgeleliği şu deneyle inceleyelim: tesine göre Bernoulli kuramına uygun olalerine oranını belirtsin. Bu yüzden p sayısı, Bir ağ ile gölden n tane balık tutulsun, eğer — rak dağılmışlardır.

Rastgele değişkende

N ye) i 1 n ve p parametrelerine göre bir binom dagözlenir. Bü formül balıkçının k veya daha az sayıda alabalık yakalayacağını göstermek için şöyle uygulanır:

K N Ni < $ J

Görüldüğü gibi n'nin büyük değerleri için bu hesap çok uzayacaktır. Bu yüzden toplam bir integral olarak

Xx ( BEP a

Bu formüle Gaus dağılımı veya normal dağilim fonksiyonu denir. Bu formülün şu özellikleri bulunmaktadır:

1-8(X) B(0) - dig VD e)

(tig 2)

X-NP

X'in standartlaştırılması rastgele değişkeni denir.

NP

K- >

Şu formül de yeterince büyük bir n sayısı için geçerlidir.

ye ) “BUR

N*p*(1-p), 9'dan büyük bir değer aldığında n'nin yeterince büyük olduğu

) Şu durumlar özellikle ilgi çekicidir:

i ie.

kabul edilir. Bu durumda yaklaşık işlemler yapmak istatistiki olarak doğru sonuçlar verecektir. PÜX

Bu durumda (5) ve (6) formülleri birleştirilerek şu fonksiyon yazılabilir:

P(X ile.

DR) İZ

X 32) >1-0(Z) ; de Aynı şekilde:

Bu program sırasında incelene-

2 )

10 REM
11 REM * *
12 REM *
13 REM » DISTRIBUTTON *
14 REM « *
15 REM
SÖ PRINT 53280,0:POKE 53281,0
100 PRİNT
110
120 PRİNT:FRİNT:PRİNT
125 ÖR TWO-SİDED BOUNDRY”
129 PRİNT
120 INPUT" PRİNT
135 INPUT" SAMPLE
140
145 IF MZ<1 OR MZ>2 OR G>İ THEN 50
150
151
152
PRİNT“ BOUNDARY Ke";
INPUT
REM
REM CALCULATTON
REM
Z-(K-N*G—D) /SGR )
| 2) II DI
P-F
İF Z<0 THEN
PRİNT
550 PRİNTCHR$ (147) 3
T
400 ON MZ
410 20000
14990 REM
15000 REM
15010 REM
15100 İ<Z
15200
15250 GOSÜUB 16000:RETURN
15500 PRİNT" (
159400 0
FRİNT:FRİNT:PRİNT"STANDARDIZATION”
PRİNT" RANDOMİTY VARIABLE:
RETURN
END

()'teki integral şu fonksiyon ile sadeleştirilebilir:

ATI) (13) burada A1=0.4361836 A2=0.1201676 A3=0.937298 C*Z) C=0.33267 Z 0

D bir düzeltme katsayısıdır ve integral aralığını genişletir. (9) ve (10)'daki gibi tek sınırlı durumlarda program 1, (11) ve (12) gibi çift sınırlı durumlarda 2 seçeneği kullanır,

Örnek: 1. Göle geri dönersek: oranı 0.6 ve ağımızda 100 balık olacak.

a) Ağda en az 50 alabalık bulunması olasılığı nedir? Çözüm: Sınır tek taraflıdır, program birinci seçeneği kullanır. Örnek sayısı: N=100 olasılık: p=0.6 sınır: k=50 (bu durumda Z=1.9392) Program şu cevapları verir: P(X>=50) (en az 50 alabalık) P(X<50)=0.02625 (en fazla 50 alabalık) b) Ağda en az 55 en fazla 65 alabalık olması olasılığı nedir?

Çözüm: Sınır çift taraflıdır, ama 1-2*N*p=k olduğundan sınırlar simetriktir. Sınır: 55 (bu durumda Z=0.91856) Program şu cevapları verir: P(55<=X<=65)=P(X<65)-P(X<55)

2. Bir test: bir rulet mekanizmasının 0'a ayarlı olup olmadığının kontrolü. H0 hipotezi: 0 da diğer sayılarla aynı sıklıkta mı geliyor? H1 hipotezi: 0 diğer sayılardan daha mı sık geliyor? H0 hipotezi: P(0)=1/37=0.027027 ile aynı anlamdadır. H1 hipotezi: P(0)>1/37

N=3700 (ruletin 3700 kez döndürülmesi) defa örnekleme yapıldığında 0 sayısı 120 defadan fazla geliyorsa H1 hipotezi reddedilebilir. Program şu cevapları verir: P(X<=120)=0.97869 P(X>120)=0.2131 Rastgele deney tekrarından sonra 0 sayısı 121 defadan fazla gelirse H0'ın doğruluğu kabul edilebilir.