Bu sayfadaki yazılar
Sayfanın metni
Sayfa 28
Gelelim HiSoft BASIC'in kullanıcıya kazandırdığı ekstra komutlara. CONST komutu yardımıyla, sabitleri daha rahat tanımlayabilirsiniz. Bu sayede de hafızadan tasarruf edebilirsiniz. Zira LET komutuyla tanımlanan değişkenler hafızadan 4 byte yerken CONST komutuyla tanımlanan sabitler hiç hafıza yemez. Aşağıda bu komutu kullanan bir örnek bulabilirsiniz:
CONST InterLace=4 CONST BitPlanes=3 SCREEN 1,640,512,BitPlanes,InterLace Hem bu yöntem kullanılarak bazı sayı- ların ne anlam taşıdığını da kolaylıkla gö- rebilirsiniz.
DECR ve INCR komutları yardımıyla bir değişkeni birer birer artırıp azaltabilirsiniz.
DECR x ===> x=x-1 INCR x ===> x=x+1 REDIM komutuyla, bir matris değişkenini tekrar tanımlayarak boyutunu rahatlıkla değiştirebilirsiniz. AmigaBASIC'te bunu yapmak için ilk önce ERASE komutunu kullanarak matrisi hafızadan silmeniz, ardından da DIM yardımıyla tekrar tanımlamanız gerekliydi. REDIM komutu yardımıyla boyutu değiştirilen bir matrisin içeriği tümüyle silinir. Fakat bunu da engelleyebilmek mümkün. REDIM APPEND kullanıldığında, matrisimizin hem boyutu değişmiş, hem de eski bilgiler silinmemiş olacak. Bu yöntem yardımıyla, örneğin bir kartoteks programında hafızanın otomatik olarak kart sırasına göre artması hızlı bir şekilde sağlanır.
AmigaBASIC'te bir dosyanın diskette olup olmadığını kontrol etmek için, normalde dosyayı açmaya çalışmamız gerekli. Eğer hata mesajı alırsak, bunu ON ERROR... komutuyla algılayıp gerekli işlemleri yapmamız lazım. Fakat bu işlemler uzun sürer ve tam da güvenilir olmaz. Hi-Soft BASIC'teki FEXISTS komutuyla tüm bu işlemler bir IF..THEN döngüsü içinde kolaylıkla kontrol edilebilir. Aşağıda bu komutu kullanan ufak bir rutini inceleyerek kullanımını rahatlıkla öğrenebilirsiniz:
IF NOT FEXISTSS("Dosya") THEN
PRINT "Dosya bulunamadı." END IF Parantezler arasındaki tırnaklar içine dosyanın directory'sini ve ardından da dosyanın ismini yazmak mümkün. Burada uyacağınız kural gayet basit; isim, ilk önce device ismi (DF0:, vs...), directory ismi, </> işareti ve file ismi gelecek şekilde yazılmalı.
Diskette directory yaratmak için MKDIR komutunu kullanabiliriz: MKDIR ("yenidirectory"). RMDIR ise, açılmış olan içi boş bir directory'i siler; kullanımı, MKDIR ile aynıdır.
Dosyalarla ilgili diğer bir komut RESET'tir. Bu komut hiçbir parametreye gerek duymadan kullanılır ve açık olan tüm dosyaları kapar.
BLOAD ve BSAVE komutları yardımıyla hafızanın istediğiniz belli bir bölümünü dosya olarak diskete kaydedebilirsiniz. PCOPY yardımıyla ekranın kopyasını grafik olarak yazıcıdan alabilirsiniz.
Eklenen komutlar arasında döngüleri kolaylıkla yapmamızı sağlayan bazı komut grupları mevcuttur. Fakat bunlara geçmeden önce WINDOW komutuna yapılan eklemeleri tanıtmak istiyorum. Bunların hepsi de pencere tipini (window type) belirlemeye yarar.
32: Pencere çerçevesiyle içeriği ayrı ayrı değerlendirilir. Bu şekilde sol üst köşe, artık pencerenin sol üst köşesi değil de, penceredeki kullanıma izin verilen alanın sol üst köşesi olur.
64: Pencere, daima mevcut pencerelerin en arkasında kalır.
128: Pencerenin kenarları olmaz. 256: Verilen koordinatlar, pencerenin çerçevesi dahil ekranda kaplayacağı alanı belirler.
Son olarak da değişik şekillerde döngü kurmaya yarayan komut paketlerini vereceğime söz vermiştim. Bu komutlardan ilki DO ... LOOP. Döngüye başlamak için verilebilecek komutlar şunlar:
DO DO WHILE n=1 DO UNTIL n=1 Döngünün sonunda da aşağıdaki komutlardan birini kullanabilirsiniz:
LOOP LOOP WHILE LOOP UNTIL
Sadece DO kullanılan yerde ya LOOP UNTIL ya da LOOP WHILE komutu, son komut olarak kullanılmalı. Aynı şekilde ilk komut olarak DO WHILE ya da DO UNTIL kullanılan döngüde de son komut olarak sadece LOOP kullanılabilir. Ayrıca döngünün ortasından da çıkabilirsiniz. Bunun için ya EXIT LOOP ya da EXIT DO komutlarını kullanmalısınız.
Size bu komutu daha iyi anlayabilmeniz için DO komutunun kullanıldığı kısa bir örnek vermek istiyorum:
i=0 f=l DO INCR i f=f*i UNTIL i=5 Bu döngü, <i> değişkeni 5 değerine ula- şıncaya kadar tekrarlanır.
Son olarak da HiSoft BASIC'de uygulayabileceğiniz kısa bir rekursif program vermek istiyorum. Bu sayede de rekursif programlamayı daha iyi kavrayabilirsiniz.
DEF FN fa(n) IF n<=l THEN FNfa=l ELSE FNfa=n*FNfa(n-l) END IF END SUB Bu şartlı döngü, <n> değişkeninin değe- ri 1 'e eşit ya da 1 'den küçük olana kadar kendini çağıracaktır. Tabii bu rutin bazen kendi kendini çok kez çağırarak daha de- rin döngülerin otomatik olarak oluşmasını sağlayacaktır. Her döngü aşamasının de- ğerlerini kaybetmemek için, bu değerler belleğe yazılır. Fakat belleğin de yeterli boyutta olmasına dikkat edin. Bu bellek dolduğu anda eski bilgiler silinebilir.
Rekursif rutinlerin sadece bir dezavantajı vardır. Her seferinde değerler belleğe aktarılıp saklanacağından rutininiz biraz yavaşlayabilir. Bu yüzden programınızda sadece gerektiğinde rekursif programlamayı kullanmaya çalışın. Unutmayın, rekursif rutinleri biraz fazla çaba göstererek iç içe FOR...NEXT döngüleriyle yapmak mümkün.
HiSoft BASIC'in kullanıcıya compile sırasında sağladığı birçok yardımcı fonksiyon mevcut. Bunlar yardımıyla isterseniz single-file compiling, isterseniz de library compiling şeklinde programınızı makine diline çevirebilirsiniz. Bunlardan ilki AC-BASIC gibi uzun bir dosya yaratır; fakat sonuçta, elinizde tek dosya olur. Fakat ikincisini seçtiğinizde, sonuç program dosyası kısa olacak; buna karşın sizden libs directory'sinde kendi library'sini isteyecektir. Diğer compile fonksiyonları ise, global hata mesajları ve kontrollerini sınırlandırmaya yarar. Global hata mesajları ve kontrolleri arasında Break Check (<CTRL>+<C> durdurma tuşlarının kullanımına izin verir), Error Checks (hata anında programı ya durdurur, ya da devam ettirir) ve Variable checks (değişkenlerin doğruluğu kontrol edilir) gibi fonksiyonları açıp kapatabilirsiniz.
Gelecek ay GFA Basic 3.0'ı inceleyeceğiz. Hoşça kalın.
Klavyeyle gezinmek için ← ve → tuşları.
Sayfa 29
AYINKONUKLA
U.S. GOLD FİRMASINI HEPİNİZ TANIYORSUNUZ. İŞTE
BU AYKİ KONUĞUMUZ BU FİRMADAN:
Türkiye'de hem piyasa araştırması, hem de U.S. GOLD firması için distribütör seçimi için bulunan Roger Swindells ile Tatkom A.Ş.'de sizler için görüştük. Arkadaşımız Can Öztürk'ün yaptığı görüşmemiz sırasında henüz herhangi bir firmaya satıcılık verilmemiş ve anlaşma imzalanmamıştı. Ancak daha sonra aldığımız bilgiye göre U.S. GOLD firması distribütörlük için TATKOM'u uygun gördü. Kendilerini kutluyor, U.S. GOLD'un güzel oyunları için sabırsızlanıyoruz.
Can Öztürk- Merhaba, Türkiye'ye hoş geldiniz. U.S. GOLD'u çıkardığı kaliteli oyunlarla tanıyoruz. Bize U.S. GOLD hakkında daha detaylı bilgi verir misiniz?
Roger Swindells- U.S. GOLD 8-9 yıllık bir firma. Avrupa'nın en büyük software firmalarından biri ve Amerika'nın da sayılı firmaları arasında. Lucas Film, Delphine, SSI, Real World, Capcom, Sega ve daha şu anda hatırlayamadığım birçok firmayla anlaşmamız var. Çok yoğun bir tempoda çalışıyoruz ve kanımca kaliteli sayılabilecek oyunlar üretiyoruz.
U.S. GOLD'un çeşitli bölümleri var. Biri Sega kartuşları üretiyor ki burada hiç piyasası yok. Fransa, Almanya, İspanya, İngiltere, İskandinavya, Japonya ve Amerika gibi ülkelerde bunların piyasası çok geniş.
Ancak Türkiye'de şu anda ne konsol oyunlarından ne de bilgisayar oyunlarından para kazanamıyoruz. Umarım bu değişir, ilginçtir, sizin derginizde de hemen hemen hiç oyun ilanına rastlayamadım. İlanlarınızın çoğu bilgisayar dışı kaynaklardan.
Bu arada Roger Swindells dergimizin 10. sayısının 3. sayfasını açarak, "Bu nedir?" diye sordu. Sonra çantasından bir mektup çıkarttı ve bana uzattı. Mektupta U.S. Gold'un Türkiye temsilciliğinin sadece Tatkom A.Ş.'ye verildiği belirtiliyordu, ancak henüz bu anlaşma imzalanmamıştı. Ben hem sorudan, hem de mektuptan dolayı büyük bir şaşkınlık içerisindeyken Mr. Swindells "Bu ülkede bir karışıklık var! Bütün bunlar değişecek." dedi ve ekledi:
- Çünkü telif hakları koruması gelecek; aynı İspanya'da olduğu gibi. Fiyatları da Türkiye şartlarına göre ayarlanacak. Ancak bu, fiyatlar çok ucuz olacak demek değil. Bu durumda biz yatırımımızdan, siz de bu oyunların reklamlarından para kazanacaksınız. Sonuçta, korsan oyunlar yerine eksiksiz orijinal oyunlar piyasaya hakim olacak ve kalite artacak.
Ben de anlaşmaları imzalandıktan sonra haber olarak dergimizde yer vereceğimizi söyledim.
- Türkiye'de insanların eksiksiz orijinal oyun aradıkları bir gerçek. Ellerindeki oyunu dokümansız oynayabildikleri sürece sorun yok, fakat birçok oyun da kitapsız oynanmıyor.
R- Evet, kesinlikle. Örneğin Battle Of Britain'ı sadece disketten ve dokümansız oynadığınızı düşünün; doküman derken, 200 sayfalık büyük kitabı kastediyorum. Samimi olarak söyleyeyim, oynayamazsınız. Bu kadar basit; oynayamazsınız, donar kalırsınız. Kitapları bastırmak için biz de para harcıyoruz. Bunun belli bir maliyeti olduğunu derginizden bilirsiniz. Dünya böyle dönüyor.
- Dergimiz konusundaki düşünceleriniz? - Derginizden pek fazla bir şey anlayabildiğimi söyleyemeyeceğim. İsveççe, Fince ve diğer birçok dil gibi Türkçeyi de bilmediğim için benim için fazla bir şey ifade etmiyor. Ama sayıları falan anlayabiliyorum; grafikleri ve genel görünüşünü beğendim.
- Oyunların dokümanı olmadığından, okuyucular dergimizdeki tanıtımlardan yararlanıyorlar.
- Ama nasıl oynayacaklarını tam olarak açıklamıyorsunuz değil mi?
- Genelde dil nedeniyle çıkan sorunlara yardımcı olmaya çalışıyoruz, ama amacımız hiçbir zaman dokümantasyon kitabının çevirisini vermek değil. Bazı çok tutulan oyunların tam çözümlerini de verebiliyoruz.
- Evet, onlar farklı tabii. Ama kitabını kelime kelime vermek doğru değil. Oyunlarla ilgili şifreler, ipuçları vermeniz çok normal. Dün bir bayi ziyaretim sırasında bana 2000.- TL'ye oyun teklif edildi. Tabii bu durum bana hiç cazip gelmedi. İşte İspanya'da da benzeri durumlar yaşanıyordu.
- İspanya'da durum şimdi nasıl? - Fiyat ayarlaması oturduktan sonra İspanya'da dükkanı olan ticari korsanlar silindiler ve şimdi korsanlık diğer Avrupa ülkelerinde olan boyutta. Biz bu tür korsanlıkla yaşamayı öğrendik. Şimdi İspanya'da 32 adet bayi var ve çok yüksek cirolar elde ediyorlar. Bu arada, çok daha fazla insan bilgisayar sahibi oldu.
- Oyunları nasıl pazarlıyorsunuz? - Benim oyunlarımı satabilmem için iki şey olması şart. Öncelikle kullanıcının verdiği paranın aldığının karşılığı olduğuna inandırılması lazım. Bu Amiga, PC, Commodore 64 ya da Amstrad oyunu olabilir. Verdikleri para daha fazla ama, aldıkları da bu paranın karşılığı.
- Dergimiz de oyun tanıtımında alıcılar için iyi bir rehber. - Doğru, ama sadece dergi olayı değil. İnsanlar dükkanlarda bir kez programı görünce onu alırlar. Oyunla aldıkları dokümanın görüntüsü caziptir, soluk bir fotokopi gibi değildir. Hedef fiyatımız, 70.000.- TL. olacak ki ithalat vergileri gibi giderler de bu fiyatın içinde. İnsanlar bunu gördüklerinde, pazar büyüyecek. Benim Türkiye'deki rekabetim ne Ocean'la, ne de Activision'la; hatta ne de korsanlarla. Benim rekabetim sinemaya, havuza yüzmeye giden, müzik dinleyen insanlarla; yani amacım gelirlerinden eğlenceye ayırdıkları paradan pay kapmak.
- Peki onları nasıl cezbedeceksiniz? - Bu Türkiye distribütörünün bileceği iş. Onları da bu konuda gerek fiyatlar gerekse diğer konularda elimizden geldiğince destekleyeceğiz. Tabii fiyatların makul bir düzeyde olması gerekiyor. Ancak bu soruyu cevaplamak zor. Çünkü Türkiye'de belli bir enflasyon var.
Kendisine geçen ay %9 enflasyon gerçekleştiğini söyleyince, çok şaşırdı ve "O zaman bu yıl 70.000.-TL'ye sattığımız oyun seneye 100.000.-TL olacak demektir. Bu nasıl mümkün olur?" diye sordu. Türkiye şartlarında bunun normal olduğunu kendisine belirttiğimizde, şaşkınlığı daha da arttı. Sonuçta, "Ben bir ekonomist değilim, ekonomiden de anlamam. Ben sıradan bir oyun satıcısıyım." diyerek konuyu bağladı.