Program Döküm Eki sayı 8, sayfa 25

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 25

İlk oyuncu 'H' ile kart istemeyi durdurduğunda, sıra ikinci oyuncuya gelecektir. Her tur sonunda oyuncuların o turdaki durumları belirtilecek ve yeni tura geçilecektir. Kağıt bittiğinde ise son durumlar gösterilip galip veya galipler ilan edilecektir.

Sadece oyun oynamak isteyenler hemen programı yazıp oynamaya başlayabilirler. Ama program yazma meraklıları bundan sonrasını da okuyup, programın nasıl çalıştığını görebilirler. Kimbilir, belki bazı değişikliklerle daha iyi bir program elde edebilirsiniz. Artık başlayalım...

5-25: Burada, daha sonra iskambil kartlarını oluştururken kullanacağımız değişkenler hazırlanıyor. Herhalde bu ve bundan sonra gelen satırları yazarken BDE çok işinize yarayacaktır.

30: Önce açıklayıcı ekranı yazan altprogram çağrılıyor. Sonra da kaç deste kart istendiği soruluyor. Cevabın bir ile üç arasında olması şartı da kontrol ediliyor.

35: Burada da, verilen deste miktarının tamsayı olup olmadığı kontrol ediliyor. Eğer kullanıcı örneğin birbuçuk deste istemişse, soru yineleniyor. 0%=0 komutu ile 0%'nin içine, verilen sayının virgülden sonrası atıldığından geriye kalan tamsayı kısmı yerleşiyor. Sonra da bu kısmı sayının kendisiyle karşılaştırıyoruz.

40-45: Aynı işlemler oyuncu sayısı için de tekrarlanıyor.

50: Kart grafiklerini yerleştirmek için bir karakter matrisi açılıyor. Birinci indis kartın numarasını gösteriyor. İkinci indis ise, o kartın rengini (1:Kupa, 2:Karo, 3:Sinek, 4:Maça) belirliyor. Üçüncü indisle de, o kartın hangi desteye ait olduğunu anlıyoruz.

55-570: Bu oldukça uzun program kısmında, kart grafikleri belirleniyor. Bu sırada sadece birinci destenin kartları hazırlanıyor. Eğer gerekirse, daha sonra başka desteler için bu kartların dosyaları çıkarılacak.

575: Bu, özel bir kart. Bu karta, bir kartın arkadan görünüşünü yerleştiriyoruz.

580: Eğer tek deste seçilmişse, oyuna devam edilmiyor.

585: Birden çok deste seçildiği için yeni desteler hazırlanıyor.

590: Eğer birden fazla oyuncu varsa, gerekli değişken matrisleri hazırlanıyor ve programın çok oyuncunun oynamasını sağlayan bölümüne geçiliyor. S() matrisi her oyuncunun o andaki turda açtığı kağıtların toplamını, MS() matrisi oyuncu isimlerini ve E() matrisi de her oyuncunun toplam puanını saklar.

595: Tek oyuncuyla bilgisayar oynarsa, program buradan devam eder. Önce bazı değişkenlere ilk değerlerini vermek gerek. N değişkeni, o ana kadar kaç kart açıldığını sayarken, S1 ve B1 de oyuncunun ve bilgisayarın toplam puanını saklar.

600-610: Ekran hazırlanıyor ve kapalı kartlar basılıyor. Bu arada ekranın istenen noktasına yazmak için izlenen yöntemle dikkat. POKE 214, satır:POKE211, kolon:SYS 58640:PRINT "..." ile istenen satır ve kolondan itibaren yazıyı yazdırabiliyoruz.

615: Gerekli bazı değişkenlere ilk değerleri veriliyor. Z ile kartların üst kenarlarının hangi ekran satırında olacağını belirlerken, sol-üst köşenin kolon pozisyonu da S ile saklanıyor. SE ve BE değişkenleri, o turdaki kart toplamlarını saklıyor. AS, o anki oyuncunun çektiği asları ve BB de ekranda kaç tane yanyana kart basıldığını sayıyor.

620-635: Basılan 'E' veya 'H' tuşuna göre program dallanıyor.

640-645: Oyuncunun kartını seçip basacak altprogram çağrılıp, programın bir sonraki kısmına geçiliyor.

650-695: Bu altprogramda, yeni bir kart seçiliyor ve gerekli hesaplar yapılıyor. Eğer kağıt bitmişse, programın sonuna atlanıyor.

700: Kartın değeri, oyuncunun o turdaki toplamına ekleniyor. Eğer toplam 21'i geçerse ve elinde bir veya birkaç AS varsa, bunlardan biri 1 sayılıyor.

710-715: Eğer toplam 21'den büyükse, bu belirtiliyor ve bilgisayar kendi oyununu oynamaya başlıyor. Veya aynı oyuncunun yeni kart isteği bekleniyor.

720-750: Aynı işlemler bilgisayarın oyunu için de yapılmakta.

755-810: Toplam değerlere göre o turun sonucu belirleniyor ve ekrana basılıyor.

815-840: Bu kısım, kağıt bittiğinde devreye girerek, son puan durumunu yazar ve galibi açıklayarak programı bitirir. Bilgisayar eğer galip değilse, sizi rövanşa davet edecektir.

845: Kağıt bitmediğine göre, bir sonraki tur başlayabilir.

850: Buradan itibaren çok oyunculu kısım başlıyor. Önce oyuncuların isimleri öğreniliyor.

855-860: En uzun ismin uzunluğu saptanıyor. Bu, daha sonra listeler verilirken, puanların altına basılmasında kullanılacak.

865-930: Tüm oyuncuların sırayla oynaması sağlanıyor. Bunun için önce oyuncunun ekranı hazırlanıyor, kapalı kart basılıyor, diğer kart istekleri karşılanıyor ve eğer ikinci kart istenmişse ilk kart yeniden kapatılıyor. Bu arada da puanlar hesaplanıyor.

935-945: O turun en yüksek puanı bulunuyor.

950-980: O turun puan listesi ve herkesin kazanıp kazanmama durumları veriliyor, sonra da bir sonraki tura geçiliyor.

985-1040: Oyun bittiğinde, herkesin puan durumu ve galiplerin isimleri burada saptanıyor. Galip veya galipler, ses ve ışık gösterileriyle kutlanıyor.

1045-1050: Oyunun tekrarlanıp tekrarlanmayacağı burada sorulmaktadır.

1085-1155: En başta yazılan açıklayıcı ekranı kullanıcıya gösteren altprogram da işte burada.

İnşallah şansınız açık olur...

Klavyeyle gezinmek için ← ve → tuşları.