Bu sayfadaki yazılar
Sayfanın metni
Sayfa 36
Değerli AMIGA DÜNYASI yayıncıları, İlk olarak size böyle üstün ve doyurucu bir dergi çıkardığınız için teşekkür ederim. Adventure köşesini hazırlayan Can Öztürk'e özel olarak teşekkürlerimi iletiyorum. Böyle bir köşe diğer dergilerde yayınlansa da bu derece kapsamlı ve adventure'cıları memnun edecek düzeyde değil. Benim size bazı soru ve önerilerim var:
1) Amiga Assembler, Amiga C, Amiga ve Müzik, Amiga DOS köşelerini büyük bir beğeni ile okuyorum. Assembler ve Amiga C yazılarım daha kapsamlı olacak şekilde bir kitapçık halinde yayınlarsanız sevinirim.
2) Sizden Adventure köşesi gibi strateji oyunları için de bir köşe hazırlanmasını istiyorum. Bu ricamı kabul ederseniz, büyük mutluluk duyarım.
3) Derginizin ilk sayısında yayınladığınız Arthur, The Quest for Excalibur adlı oyunu Ankara'da ne kadar aradıysam da bulamadım. Bu oyunu nasıl temin edebilirim?
4) Sim City, Balance of Power 1990, Football Director 2 adlı oyunların derginizde açıklanmasını ve The Pawn'un tam çözümünün yayınlanmasını rica ediyorum.
Tolga Baklacıoğlu Oran-Ankara
Sayın Baklacıoğlu, Bahsettiğiniz köşelerdeki yazılar birer kurs mantığıyla hazırlanıyor. Dolayısıyla her ay belli bir konu ele alınıp okuyucunun bu bir aylık sürede belli bir ilerleme kaydetmesi amaçlanıyor. Şüphesiz, elinizin altında bulunabilecek bir referans kitaptan da faydalanabilirsiniz. Bu kitaplardan bazıları yazı dizileri başlarken tavsiye edilmişti. AMIGA DÜNYASI'nın hazırlandığı BİYAT A.Ş'de, AMIGA programcılığı ve diğer konularda Türkçe referans kitap yazılması konusunda çalışmalar yapıldığını müjdeleyelim.
Strateji oyunlarının tanıtımlarını özellikle uzun yaptığımız belki dikkatinizi çekmiştir. Eğer bu oyunları oynamada zorluk çekerseniz bize yazın. Bu sayfalardan sorularınıza yanıt vermeye çalışacağız.
Arthur, The Quest For Excalibur adlı oyunu İstanbul'da ERLE Bilgisayar'dan ödemeli olarak temin edebilirsiniz. Bu konuda dergideki ilandan daha fazla bilgi edinebilirsiniz.
Dergimiz yayın hayatına başlamadan önce çıkan oyunları Klasik Oyunlar başlığı altında tanıtacağız. Sizin tanıtımını istediğiniz oyunlar da bu kategoriye giriyor.
Sevgili AMIGA DÜNYASI, Derginizin 3. sayısını beğenerek aldım ve okumaktayım. Eleştirilecek tek şey fiyatı. Ayrıca Adventure köşesinin sayfa sayısını arttırmanızı ve simülasyon-strateji açıklamasına ağırlık vermenizi istiyorum. Size birkaç sorum var:
1- Yaptığım BASIC programları EXTRAS'dan başka diskete nasıl kaydederim?
2- Amiga'nın hangi dilleri var, Pascal kullanabilir miyiz?
3- Oyunlar ve geliştirilmiş Utility'ler hangi dil ile yazılıyor?
4- Size yayınlanmak üzere program gönderebilir miyiz, koşulları nedir?
5- BASIC kursuna biraz ağırlık verip komutları örneklerle açıklayabilir misiniz?
6- BASIC'te Window ve Menu seçeneklerini açıklar mısınız?
7- Commodore'un PC'si IBM uyumlu mudur? Eğer uyumluysa yaptığımız programları IBM uyumlu diğer PC'lere geçirebilir miyiz?
8- Deluxe Paint, Soundtracker gibi grafik ve müzik programlarında yapılan bir ürünü kendi BASIC programımızda nasıl kullanabiliriz?
9- Türkiye'de Modem kullanımı ne derecedir? Telefon'a ne kadar ek ücret ödenir, modem ile Türkiye dışındaki bazı MUD'lara (Multiuser Dungeon Oyunlarına katılabilir miyiz?
ORKUN PEŞİNCİ Mecidiyeköy-İST.
Sayın Peşinci, BASIC programlan EXTRAS 1.3'ten başta bir diskete kaydetmek için df0: sürücüsüne SAVE AS seçeneğinden sonra, başka bir disket takarak df0:program adı yazarak kaydedin Eğer programı aynı diskette çalıştırmak ister seniz, AmigaBASIC'i de bu diskete kopyala malısınız.
Amiga'da, şu an bilgisayarlarda popüler olan bütün dilleri kullanabilirsiniz. Bunlardan C ve Modula 2, Amiga programcılarının özellikle tercih ettiği diller.
Oyunlar ve diğer ticari programların büyük bir kısmı, daha hızlı çalışmaları vb. nedenlerle daha çok Makine Dili veya C ile yazılıyorlar.
Bize gönderdiğiniz BASIC ve diğer dillerdeki programlar yayınlanmaya değer bulundukları takdirde program başına 50000TL telif ücreti ödenerek yayınlanır..
BASIC kursunda henüz komutların açıklanmasına başlanmadı. Diğer sorunuz için de bu köşeyi takip etmenizi öneririz.
Commodore PC'ler %100 IBM uyumludurlar. Diğer PC'lerde yaptığınız herşeyi Commodore PC'lerde de yapabilirsiniz.
Deluxe Paint grafiklerini BASIC içinden çağırabilirsiniz. Fakat Soundtracker gibi müzik programlarını BASIC içinden çaldırmak henü2 imkansız.
Ülkemizde modem kullanımı henüz fazla yaygın değil fakat bazı Amiga bayileri modem konusunda hizmet vermeye başladılar. Modem cihazını temin edip kullanmaya başladıktan sonra, normal telefon parasını ödüyorsunuz Eğer uygun bir modeme sahipseniz telefon masrafını göze alarak yurt dışındaki her türlü bülten panolarına veya sözünü ettiğiniz MUD oyunlarına bağlanabilirsiniz.
Sayın AMIGA DÜNYASI yetkilileri, Lost Patrol oyununda "You are not equipped to travel aeross this terrain" yazısını gördüğümde ne yapmalıyım? Soruma cevap verirseniz çok mutlu olacağım.
BARAN YILDIRIM Çankaya-ANKARA
Sayın Yıldırım, Bulunduğunuz bölgelerde yüksek dağlar bulunduğu için geçiş mümkün değildir.Bu yüzden bu bölgelerin etrafından dolaşmak zorundasınız.
Klavyeyle gezinmek için ← ve → tuşları.
Sayfa 37
Bu ayki yazıma, geçen sayıdaki birkaç basım hatasını düzelterek başlamak istiyorum. Birinci hata, printf'in değişik türdeki değişkenlerin basılmasını sağlamak için kullanılan sembollerden biri. Heksadesimal sayılar için X kullanılmalıdır. Ayrıca, küçük harfle başlaması gereken bazı satırlar büyük harfle başlamış. Geçen sayıda da belirttiğim gibi C'nin içerdiği tüm komutlar ve fonksiyonlar küçük harfle yazılmak zorunda. Son hata ise, beşinci kutuda. Programı kesmek için Ctrl- tuşlarına basmanız söylenmekte. Bunun doğrusu Ctrl- tuşları olacak.
Şimdi geçen ay kaldığımız yerden devam edelim ve geçen ay beşinci kutuda verdiğim programı inceleyelim:
Programda while döngüsünün içinde yeralan != işareti C dilinde "eşit değildir" anlamına gelir.
Programdaki asıl sorun, girişin bittiğinin belirtilebilmesidir. Genel olarak bu sorun, getchar'ın programa ilettiği değerin, anlamlı bir karakter olmamasını sağlayarak yapılır. Böylece programımız girişin sona erdiğini anlayabilir. Fakat burada bir sorun ortaya çıkmakta: Acaba standart olarak hangi sayı kullanılmalı? Bu soru, şu anda iki değişik biçimde yanıtlanıyor; bazıları değer olarak "0", bazıları ise "-1" kullanmakta. AmigaDos'- un kullandığı sayı bunlardan "-1". Programın başındaki:
define EOF -1 satırı, bu sayının tanımlanmasını sağlamakta. EOF terimi (EndOfFile = Tk.
Dosyanın Sonu), bu değeri belirtmek için kullanılan standart bir terim. Buradan da anlaşılabileceği gibi, C'de programın içinde sembolik sabitler tanımlamak programın başka makinelere uyarlanabilirliğini artırmakta. Çünkü eğer başka bir makinada EOF'un değeri farklı bir sayıysa; bu durumda değiştirmemiz gereken, sadece programın başındaki tanımlama satırıdır. Fakat sembolik sabit kullanmasaydık, programdaki değiştirilecek değerin geçtiği her satırı değiştirmek zorunda kalacaktır.
Dikkat edilecek başka bir konu ise, getchar fonksiyonunun çıktısının bir integer (Tk. Tamsayı) olan c değişkenine eşlenmiş olması. Demek ki, getchar fonksiyonu çıktı olarak bir karakter değil, o karaktere karşılık gelen bir tamsayı vermekte.
Daha önce de belirttiğim gibi, bir program birkaç değişik yoldan yazılabilir. Hele C gibi syntax'ı (Türkçe: Yazım kuralları) çok katı olmayan ve bu açıdan oldukça esnek olan bir dil elinizin altındaysa, örneğin text dosyaları kopyalama programımız oldukça kısaltılabilir. Çünkü herhangi bir eşleme, C'de program içindeki bir işlem sırasında kullanılabilir. Örneğin
c = getchar( )
eşlemesini bir while işlemi sırasında kullanırsak programımız birinci kutudaki gibi olur. Programın çalışması şöyledir: önce girişten bir karakter alınır ve c değişkenine eşlenir. Daha sonra c değişkeninin EOF'a eşit olup olmadığı kontrol edilir. Eğer değilse, while döngüsü çalıştırılır. Sonra while tekrar edilir, yani yeni bir karakter alınır, EOF'a eşit olup olmadığı kontrol edilir ve değilse ekrana basılır. Bu işlem c değişkeninin EOF'a eşit olmasıyla son bulur ve program durur.
Görüldüğü gibi C'de syntax fazla disipline edilmemiştir. Dolayısıyla C, bu açıdan oldukça esnek bir dildir. Fakat bu esneklik kötü tarafa kullanılıp anlaşılması zor programlar yazılabilir. Tabii ki bu istenmeyen bir durum.
Programdaki bir başka önemli nokta, koşullu test içindeki parantezlerin gerekliliği. != işaretinin önceliği, = işaretinin önceliğinden daha yüksek olduğundan, parantezleri koymamak yanlış sonuçların ortaya çıkmasını sağlardı. Çünkü, eğer parantezler konulmazsa işlem, c = getchar( ) != EOF yani, c = (getchar( )!=EOF) halini alacak ve bu da c değişkenine getchar fonksiyonunun EOF'a eşit olup olmamasına bağlı olarak, 1 ve 0 değerlerini verecekti ki, bu asıl yapmak istediğimiz işlem değil.
KARAKTER SAYMA Şimdi ki programımız kopyalama programının biraz değiştirilmiş hali ve karakterleri sayıyor. Programı ikinci kutuda bulabilirsiniz.
Programın içindeki: ++nc; satırı bize, bir artır anlamına gelen ++ operatörünü tanıtmakta. Burada diğer dillerde olduğu gibi nc = nc + 1 de yazabilirdiniz. Fakat ++nc hem daha kolay anlaşılır hem de genellikle dilin çalışma hızı açısından daha iyidir. C dilinde ++'ya karşılık olarak, bir eksilt anlamına gelen -- operatörü de vardır. Bu iki operatör hem değiştirilecek sayıdan