amınızı Yazın

Bir kaynak kitaptan bilgisayarınızın özelliklerini incelerken, aklınıza bir fikir gelebilir. Örneğin grafik chip'i VIC-IT'yi anlatan bir kitabı incelerken ekran kaydırma konusunda yeni bir teknik geliştirebilirsiniz. Ve bu tekniği kullanan bir program yapmak istersiniz. Bildiiğiniz başka grafik özelliklerini de ekleyince elinizde tamamlanmış bir program olur. — Bazen de bilgisayarınızın sınırlarını bildiğiniz için sıkışırsınız. O zamanlarda bilgisayar hakkında hiç fikir sahibi olmayan birisine danışın, çünkü onlar sizin gibi 8 sprite, 16, renk, üç ses kanalı ve 64 K hafıza ile sınırlı değildirler. Onların fikirlerini kendi amaçlarınıza uygulayabilirsiniz. Başka çevrelerden fikir edinmeye çalışın. Star Wars veya Total Recall'- da gördüğünüz bazı görsellikleri kendi bilgisayarınıza uygulamaya çalışın. Televizyonda haberlerin veya reklamların başındaki jenerikleri yapmayı deneyebilirsiniz. Fikirlerinizi gerçekleştirmekten çekinmeyin. Örneğin bir program hazırlarken yardımcı bir proğrama ihtiyaç duyarsanız (data hazırlayıcı veya satır silici gibi kısa programlar) bunları da siz yazın. Sizin ihtiyacınız varsa başkalarının da olabilir. ihtiyaç, keşfin anası sayılır. Bunların hiçbiri sonuç vermezse, bilinçaltınıza başvurun. Birçok güzel oyun fikri programcıların akıllarına uykudayken gelmiştir. Siz her ihtimale karşı, başucunuzda kağıt kalem bulundurun. Tüm fikirlerin pratik olmadığını da aklanızda bulundurun. Çok ilginç ve özel görünen bir fikrin, Commodore 64 gibi bir mikro bilgisayarda uygulanması olanaksız olabilir. Ama fikirler çoğu zaman bilgisayarınızca kabul edilebilecek boyutlara indirgenebilir. Ve yardımcı bir program hazırlarken, olmayan bir sorun için çözüm yaratmayın

Programlama Dili

Seçmek

Teorik olarak her program her dilde yazılabilir, ama bazı diller bazı işlemler için özel olarak yazıldıklarından bunları tercih edebilirsiniz. Örneğin COBOL dilinde bir oyun yazmak pek akıl karı değildir. Bir çok amaç için BASIC yeterli olacaktır. Programların hızlandırmak için compiler denen programları da kullanabilirsiniz. Hızlı oyunlar ve gelişmiş yazılımlar için en iyi çözüm makine dilidir. Commodore 64 ve 128 sahipleri oldukça şanslıdırlar. Çünkü bilgisayarları için, oldukça geniş bir spektruma yayılmış programlama dilleri bulunmaktadır: BASIC, makine dili, FORTRAN, COMAL, ADA, C ve daha başkaları. Ama 8-bitlik bilgisayarlar içen en uygun iki dil BASIC ve makine dilidir. Her iki dil de bilgisayarın kendi içinde vardır ve programlarınızın bir dergide yayımlanmasını istiyorsanız bu iki dilden birini tercih etmelisiniz. Ama yine de program yazmak için siz istediğiniz programlama dilini kullanın.

Yardımcı Programlar

Utility denen yardımcı programlar hayatı kolaylaştırmak için yazılmışlardır. Karşılaştırma programları, düzeltme programları, makine dili monitörleri ve BASIC genişletici paketler arasında doğru seçimi yaparsanız programlama süreniz yarıya inecektir. Bazı utility programları birkaç dil için kullanılabilirler. Örneğin SYSRES adlı program hem BA-

SIC'te hem de makine dili programlarınızda size yardımcı olacaktır. Sprite editörleri, müzik programları ve karakter seti editörleri gibi utility'ler de kendi programlarınızda kullanacağınız bazı efektleri sizin için hazırlayacaklardır. Değişkenleri listeleyen, satırları otomatik olarak numaralayan ve gerektiğinde dökümünü alan, program çalışırken işlenen satırları gösteren, Simon's Basic ve SYSRES gibi utility'ler programlarınızı yazarken ve kontrol ederken size büyük kolaylıklar sağlayacaktır. Her makine dili programcısının iyi bir makine dili monitörü olmalıdır. Dergimizde yayınlanan assembler'lar ve monitörler işinize yarayacaktır. Eğer bulabilirseniz, programınızı satır satır işleyen bir monitör edinmeye çalışın. Eğer, Pascal ya da C gibi başka bir programlama dili kullanıyorsanız, paket içindeki yardımcı programları kullanmalısınız.

Kararlar, Kararlar

Program hakkında fikrinizi oluşturduktan ve programlama ortamınızı belirledikten sonra sıra asıl zor kararları vermeye gelir. İsteseniz de istemeseniz de her programcı bazı sınırlamalara uymak zorundadır. Zaman sınırlaması, donanım yetersizliği ve sizin şahsi becerinizin sınırları bunlara dahildir. Programlama hayatınızda, çok zor bir projeye erken başlarsanız çok yıpranırsınız ve bir süre sonra sıkılıp bırakırsınız. Gerileyin ve daha kolay bir yerden başlayın, Programınızın görünüşü ve işlevi tam olarak ne olacak? Programınızda grafik kullanacak mısınız? Eğer kullanacaksanız, ne tür? Sprite mı kullanacaksınız? Yoksa hi-res grafikler mi? Ya da değiştirilmiş karakter setleri mi? İşe başlamadan önce grafik konusunda bazı kaynaklara başvurun. Kullanıcı arabiriminden ne haber? Programınız bir arcade oyunuysa herhalde joystick kullanırsınız. Bir strateji oyununda joystick veya klavye kullanılabilir. Eğer programınız bir iş uygulaması ise mouse ve menüler kullanmayı tercih edebilirsiniz. Kattığınız çaba programın kullanılmasını kolaylaştıracak ve görsel olarak etkileyici olmasını sağlayacaktır. Programınızın kullanıma yatkın olup olmadığını anlamak için bilgisayarınızın başına bu konuda tecrübesiz birini oturtun. Bilgisayara alışkın olmayan kişiler hiç beklemediğiniz şeyler yapacaklardır. Programınızı herkesin kullanabileceğinden emin olmanız gerekir. Bunu kolaylaştırmak için hata mesajları ve yardım ekranları düzenleyebilirsiniz. İyi hazırlanmış bir yardım ekranı sayfalarca dökümana bedeldir.

Düzenleyin

Programınızı yazmaya hazır olduğunuzda nasıl düzenleyeceğinize de karar verin. Birçok programcı ana yazılımlarını, her biri kendi başına ayrı bir işlemi gerçekleştirecek olan alt rutinlere veya program parçacıklarına bölerler. Bu parçalar ana bir program altında toplanmadan kontrol edilebilir. Her program parçasını nasıl çalıştıracağınız çok önemlidir. Bazı programlar hızlı olabilmeleri için makine dilinde yazılmalıdır. Sprite animasyonu için gerekli olan veya fon müziğini çalacak programlar interrupt olarak çalışmalıdır. Özellikle hi-res ekranı, karakter seti ve sprite kullanan C64 programlarında hafızanın düzenlenmesi büyük önem taşır. 49152'den ($C000) başlayan 4K'lık boş alan genelde data saklamak için kullanılır. Ama eğer programınızda utility kullanacaksanız, birçok utility programının (mesela DOS Wedge) bu alanı kullandığını aklınızda bulundurun. Eğer hafıza kullanımınız karmaşık veya alışılmamış olacaksa bir harita hazırlamak size yardımcı olacaktır. Böylece her program elemanının hafızada nereye yerleşeceği rahatlıkla görülebilir. Yıllar boyunca programları düzenlemek için birçok yol geliştirilmiş ve öğretilmiştir. Bunların en popüler olan hiç kuşkusuz akış diyagramlarıdır. Günümüzde de oldukça yaygın olarak kullanılan akış diyagramlarının sistemi geometrik şekillere verilen çeşitli görevlere dayanır. Örneğin, program elipsle başlar, işlemler dikdörtgen, karar ifadeleri de eşkenar dörtgen olarak gösterilir. Bir başka organizasyon yöntemi de pseudocode denen (yalancı program olarak çevrilebilecek) bir sistemdir. Bu yöntemde ifadeler, Pascal ve C gibi yüksek sınıf programlama dillerinde uygulandığı gibi, düz yazı diliyle kısaca açıklanırlar. Bir sonraki yazıda vereceğimiz örnekte bu sistemin uygulamasını görebilirsiniz. Artık sıra yukarıdan aşağı, aşağıdan yukarı veya modüler programlama sistemlerinden birini seçmeye geldi. Programı yukarıdan aşağı düzenlerken, ana programın, akış diyagramıyla veya pseudocode ile bir taslağı çıkarılır. Ana program hazırlandıktan sonra bunun kullandığı alt programlar hazırlanır, tabi bunlarına kullandığı başka alt programlar da olabilir. Eninde sonunda dibe ulaşır ve detaylarla uğraşmaya başlanır. Aşağıdan yukarı programlamada ise önce, program için gerekli olduğuna inanılan alt programlar yazılır. Bu programlar sprite'ları halleden veya basit ses efektleri oluşturan kısa rutinlerdir. Daha sonra bunları birleştirdikçe, ana yapı ortaya çıkmaya başlar. Modüler programcılık yöntemi ise daha önce anlattığımız iki sistemin birleşmesinden oluşur. Bu yöntemde gereken rutinler ve arabirimler yazılır. Her rutin birleştirilmeden önce kendi başına test edilebilir. Program yazarken bu sistemlerden birini veya bir kaçını seçmek akıllıca olur. Eğer programın içinde kaybolursanız başka bir sistem seçebilirsiniz.

Son Ürün

Er veya geç programınızın bittiğine karar vereceksiniz. Son bir göz atın. Muhtemelen programlamanız sırasında çıkan bazı sorunları çözmüşsünüzdür. Bu çözümleri (daha da önemlisi çözüm metodlarını) daha sonraki programlarınızda da kullanmak üzere saklayın. Eğer programı kendi kullanımınız için yazdıysanız programınız bitmiş demektir. Yok programı arkadaşlarınızla paylaşmayı veya satmayı düşünüyorsanız programa bir beta-testi uygulamanız ve program hakkında açıklamalar yapmanız gerekir. Programı siz yazdığınız için kullanımı size gayet kolay gelir. Ama program beta-testini uygulayanlara da hitap etmelidir; beta-testi programı daha önce hiç kullanmamış birisi tarafından kullanım kolaylığını görmek için yapılır. Eğer testi yapanlar programınızı verimli olarak kullanmamışlarsa yazılımda biraz değişiklik yapmanız veya dökümana ağırlık vermeniz gerekebilir. Döküman her yazılım için çok önemlidir.

Bunları Çalıştırmak

Her işi olduğu gibi programlamayı da daha basit ve küçük parçalara ayırırsanız, sorunların üstesinden daha kolay gelirsiniz. Yapacağınız işin genel bir görünümünü kafanızda oluşturun ve daha sonra bunu alt gruplara ayırın. Bu bakış açısının programcılığa nasil uygulanabileceğini örnek bir C-64 programı yazarak göreceğiz. Bu arada da programcılığın bazı önemli noktalarına değineceğiz.

Fikir

Bir program yazarken atılacak ilk adım programın ne yapmasına karar bir vermektir. Uygulama amacıyla kısa bir BASIC program yazalım. Yazması kolay olsun diye de nispeten basit bir olan tuzak oyunu yazalım. Oyunun başlangıcında, iki oyuncu bir sınır tarafından çevrelenmiş oyun alanında bulunur. Oyun başlayınca iki oyuncu da arkalarında birer kuyruk bırakarak harekete geçerler. Oyunun amacı kendi kuyruğunuzdan, diğer oyuncunun kuyruğundan ve sınırdan sakınarak en uzun süre dolaşmaktır. Programın ne yapacağına karar verdikten sonra yardımcılarımızı edinelim. Programı sadece oyun amacıyla yazıyorsanız BDE yeterli olacaktır. Ama oyuna kendiniz de bir şeyler katmak isterseniz, SYSRES veya Simon's BASIC gibi utility programları *edinmek faydalı olur. Ayrıca yeni teknikler denemek için kaynak olarak da Programcının El Kitabı'nı kullanabilirsiniz.

Yapısal Düzenleme

Programı bilgisayar başına geçip de yazmadan önce bir taslak çıkarmamız gerekir. Bu taslakta, prog- . ramda kullanacağımız alt programları ve görevlerini saptar ve gösteririz. Unutmayın ki program ilerledikçe bazı parçalar eklenecek bazıları da silinecektir. Bu çok normaldir, o yüzden ilk denemenizde programınız çalışmazsa ümitsizliğe kapılmayın. Yapısal listeniz yol boyunca değişmelidir, değişecektir de. Bizim programımiz için satır satır şöyle bir düzenleme yapılabilir: 1. Değişkenleri tanımlama. 2. Oyun sahasını kurma. 3, Son raund mu? Evetse 15. adıma git. 4. Birinci oyuncunun joystick'ini kontrol et. 5. Birinci oyuncunun yerini değiştir. 6. Birinci oyuncu çarpışıyor mu? 7. Çarpışma varsa, puanı ve raund sayısını yenile, 2. adıma geç. 8. Çarpışma yoksa birinci oyuncuyu hareket ettir. 9 İkinci oyuncunun joystick'ini kontrol et. 10. İkinci oyuncunun yerini değiştir. 11. İkinci oyuncu çarpışıyor mu? 12. Çarpışma varsa, puanı ve raund sayısını yenile, 2. adıma geç. 13. Çarpışma yoksa ikinci oyuncuyu hareket ettir. 14. 4. adıma git. 15. Oyun sonu rutini.

Eğer bir akış diyagramı hazırlamayı biliyorsanız, yapısal düzenlemeyi böyle yapmayı tercih edebilirsiniz. Programda kullanacağınız rutinlerin neler olacağını belirledikten sonra işiniz oldukça kolaylaşır. Eğer bir rutinin nasıl yazılacağından emin değilseniz, benzer örnekleri taşıyan kitaplara başvurun.

Programın Yazımı

Bu bir oyun programı olduğuna göre, yukarıdaki aşamalardan en önemlisi ikincisidir, yani oyun alanının kurulması. Başlayalım bakalım. Öncelikle ekran haritası (kullanıcı kılavuzunda bulunmaktadır) yardımiyla, oyun alanını aklınızda canlandırdığınız gibi çizin. Oyun alanı, üst ve altta skor yazılacak iki satır boş bırakılmak suretiyle, tüm ekranı kaplayan bir dörtgen olacaktır. Oyuncuları belirten karakterler, oyuna nasıl başlanacağını bildiren bir mesajla birlikte ekrana basılır. Bundan sonra ekran düzeni belirlenmiş olan oyun alanı ekrana yazılir (140-260. satırlar). Programda çerçevenin, ekranın ve oyuncuları renkleri değişkenlerle tanımlanmıştır. Böylece, istediğiniz zaman oyuna değişik bir hava vermek için bu sayıları değiştirebilirsiniz. Programın kalanı bu rutin üzerine kurulur. Programda satır satır REM açıklamaları olduğu için anlamakta çok zorluk çekmezsiniz sanırız.

Programın Test Edilmesi ve Geliştirilmesi

Programı bir kez çalıştırdıktan sonra, artık hataları düzeltme ve programı geliştirme üzerine çalışın. Oyuna ekleyebileceğiniz bir kaç değişik özellik olabilir. Örneğin, ses, değiştirilmiş karakterler ve oyun için değişik özellikler (değişik hızlar, oyun alanında rastgele ortaya çıkan engeller). Eğer oyunu yavaş bulduysanız hızlandırmak için birkaç yola başvurabilirsiniz. Bütün değişkenleri oyunun ana döngüsü içinde tanımlayabilirsiniz (300-400. satırlar). Ama en yük-

- sek hızı elde edebilmek için tüm oyunu makine dilinde yazmanız gerekir. Eğer makine diline yabancıysanız, böyle bir program, işe başlamak için idealdir. Tüm programı yazmak yerine kısa rutinler yazarak işe başlayabilirsiniz.

Bir sayısı daha geride bıraktık ve 60. sayıya ulaştık. Bunun anlamı gelecek ay 6. yılımıza gireceğimizdir. Mektuplarla, programlarla, döküm ekleri ve hiç bitmeyen gelişmelerle dolu 5 yılı bu sayımızla dolduracağız ve MARI ayında 5 yılı geride bırakacağız. Commodore ve Amiga grubu hep büyüyecek. Her gün aramıza yeni arkadaşlar katılıyor ve sürekli yeni sorular, sorunlar bize yazılıyor. Elimizden geldiğince sizlere yardımcı olmak bizim görevimiz. Lütfen bize yazmaya devam edin. İlk Mektubumuz İstanbul'dan Efe Töre'ye ait:

Açıklamasız Oyunlar

Sayın Commodore Dergisi Yetkilileri Benim aldığım oyun disketlerinin (A 500) hiçbirinde oyun açıklaması yok. Bu oyunların açıklamasını nereden bulabilirim. Bana bu konuda yardımcı olabilirseniz çok memnun olurum. Şimdiden teşekkürler.

EFE TÖRE - İSTANBUL

Sayın Efe TÖRE Çoğu bilgisayar oyun satıcıları oyunların kurulmış versiyonlarını getirdiği için, bu oyunların açıklamaları mevcut değil. Bunun çözümü dergimiz Commodore'un TANITIM bölümünü takip etmek ya da orijinal oyun satın almak.

Sprite ve mesajlar

Sayın Commodore Dergisi Yetkilileri, Derginizi 24. sayıdan beri takip ediyorum ve bu kadar güzel bir dergi çıkardığınız için sizi tebrik ediyor ve başarılarınızın devamını diliyorum. Benim birkaç sorum var: 1) Bir sprite'ın iki ya da üç renk olmasını nasil sağlarım? 2) Yazdığım bir mesajın ekranda daha büyük görünmesini nasıl sağlarım?

KEREM IŞIK - İZMİR

Sayın Kerem IŞIK Sprite'ları ancak multicolor (çokrenk) modunda istediğiniz iki ya da üç rengi elde edebilirsiniz. Bunu da 53276 adresine vereceğiniz değer sağlar. Bu adrese 1 poke ederseniz, birinci spite'ınız çok renklı olacaktır. Tamamı içinse bu adrese 255 değerini vermelisiniz. Mesajlara gelince, Bunları daha önce döküm ekinde yeyınladığımız BIG EDIT programı ve açıklaması size gereken bilgiyi verecektir. :

Robocop'ı ne yapmalı?

Sayın Commadore Yetkilileri, Derginiz gerek içerik gerekse diğer yönlerden çok zengin bir dergi. Sizden ROBOCOP adlı oyunun açıklamasını yayınlamanızı rica ediyorum. Bu vesile ile yeni yılınızı kutlar, yayın hayatında başarılar dilerim.

ALPTEKİN SANLI - İSTANBUL

Sayın Alptekin SANLI, Maalesef bu tür isteklere pek cevap veremiyoruz çünkü bizim istediğimiz oyunların değil ancak yazarlarımızın açıklayabilecekleri oyunların açıklamalarını yayınlıyabiliyoruz. Bu konuda size yardımcı olabilecek arkadaşımız, TİYOLAR TUZAKLAR bölümünü yazarı TUNÇ DİNDAŞ. Oyunda takıldığınız noktayi ona iletirsiniz belki size yardımcı olabilir.

64 ile müzik?

Sayın Commodore Dergisi Yetkilileri, Ben Commodore PC bilgisayarında BASIC kursunu bitirdim, en sevdiğim alan ise müzik. Oldukça güzel müzikler yaptım fakat Commodore 64'te bu alan hakkında yazılar okudumsa da anlayamadım. Örnek kısa bir müzik programı yayınlarsanız memnun olurum. M. FATİH USLU - ELAZIĞ

Sayın Fatih USLU, Gerçekten de Commodore ile müzik oldukça zordur. Fakat ses ve efekt yetenekleriyle özellikle tek kanal ve tek tip ses özelliği olan PC'lerden çok üstündür. Bu konuyla ilgili yayınlamaya değer bir program elime geçer geçmez yayınlayacağız.

Dost köşesi

Sayın Commodore Dergisi Yetkilileri, Ben on üç yaşında orta ikinci sınıftayım ve ilk olarak 58. sayısında aldığım derginizi çok beğendim. Yeni bir kullanıcı olarak sizden yazışabileceğim kişilerin adresini alabileceğim bir dost köşesi kurmanızı rica ederim. Teşekkür ederim ve size başarılar dilerim.

EMRE ŞEHRİBANOĞLU - İZMİR

Sayın Emre ŞEHRİBANOĞLU, İlginize özellikle teşekkürler ve isteğinizi göz önünde bulunduracağımızdan şüpheniz olmasın. Size bilgisayar hayatınızda başarılar dilerim.

Sayın Commodore Dergisi Yetkilileri, Böylesine geniş kapsamlı ve herkese hitap edebilen bir dergi çıkardığınız için sizi kutlar ve başarılarınızın devamını dilerim. Şimdi sorularıma geçiyorum. 1) Benim bir Amiga 500'üm var ve bunda çok basit de olsa bir program yapmak istiyorum. Ne yapmalıyım? 2) Ben Amiga'nın monitörünü almadım ve televizyon ile kullanıyorum. Bu televizyona veya bilgisayara zarar verebilir mi? 3) Derginizi 55. sayıdan itibaren almaya başladım. Önceden KÜÇÜK İLANLAR adlı bir bölümünüz vardı. Kaldırıldı mı? 4) Derginize abone olmak istiyorum, nasıl olabilirim? Bu bana ne gibi imkanlar sağlar? Şimdiden sizlere teşekkür ediyorum.

Bi ÖZGÜR HAKLI

Sayın Özgür HAKLI,

İlk olarak Amiga'da en basit olarak BASIC ile program yapabilirsiniz. Bunun için kullanım kılavuzunu ve Amiga BASIC kitabını iyice okuyun ve öğrendiklerinizi bilgisayarınızda tatbik edin. BASIC derleyicisi Amiganızın yanında verilen iki disketten birinde bulunmaktadır. BASIC ile programlama yapmak için önce bunu yüklemelisiniz. İkinci olarak, Amiga'nızı televizyonla kullanmanın hiçbir sakıncası yoktur. Bu ne televizyona ne de bilgisayara zarar vermez. Ama görüntü kalitesi olarak tabii ki monitör çok daha üstündür. Üçüncü sorunuzun yanıtı ise, maalesef bu bölümü kapamak zorunda kaldık çünkü yasal olmayan oyun satışları için çok fazla ilan veriliyordu. Son olarak da abone işlemlerini (eğer fark etmediyseniz) dergimizde yayınlanan abone kuponlarını doldurup oradaki gerekli talimatı izleyerek yapabilirsiniz. En basitinden bu sizin geleneksel SHOW'un bedava misafiri olmanızı sağlar.

PUPNOKLAŞ