Alıntı (canalpay):
> Alıntı:
> renk ve değeri ayırmanın bence bir yararı yok.
Neden ? 'Şekil' ve değer zaten şart olacak ama ayrı olması bence daha iyi. Hem daha okunaklı hem de 2 dediğimizde 4 farklı şekil için 2 değerini veren bir işlevi daha kolay yazarız. Değil mi ?
Son söylediğini anlamadım. Eğer destenin oluşturulmasından bahsediyorsan anlarım. Ama deste bir kere oluşturulduktan sonra programda şekil ve değerler değil, oyun kartları dolaşmalı.
Benim söylemek istediğim, oyuncu'nun düşünerek karar vermesi örneğinde görülüyor:
yanıt = oyuncu.oyna();
(Veya oyuncu.kararVer() gibi de olabilir; ama burada önemli değil.)
Yukarıdaki kodda yanıt'ın türü nedir? 2 gibi bir değer yetmez, çünkü sinek 2'nin diğerlerinden farkı var. Yani program içinde 'yanıt' gibi değişkenler artık hep Kart türünde olmalı.
Belki de oyuncu, "elimdeki üçüncü kart" anlamında bir indeks döndürüyordur:
int kart = oyuncu.oyna();
O da olur. Ama yine de elindeki dört kart bir Kart dizisi olduğu için, yine de şekillerle renkler bir aradalar.
Alıntı:
> Alıntı:
> Benim anladığım kadarıyla, Kağıt çok genel bir kavram.
Evet. Ama modülün adı kağıt olduğuna bakmayın sadece karttan bahsetmiyoruz. Pişti kartlarından bahsediyoruz. Yani sadece normal yaşamımızda pişti için kullanılan 52 kartın bilgisayardaki biçimi olacak.
Yani seninle aynı fikirdeyiz. Sen Kart derken "pişti kartı"nı ifade ediyorsun, ben daha da alt düzeyde ve oyundan bağımsız olan "deste kartı"nı. Soyutlamayı farklı noktada yapıyoruz.
Eğer ileride genel bir "oyun masası" kavramı olacaksa, o kadar genel kavramın piştiden haberi olmamalı herhalde. O zaman daha alt düzeyde bir kağıt kavramı kurarız.
Alıntı:
> Bu arada bence kartlara ayrıca birde kartın kullanılıp kullanılmadığı hakkında da bir değer verilmeli.
Onu akıl yürütme aşamasında kart saymayla ilgili olarak mı düşünüyorsun? Ortak bir bilgi olarak bütün oyuncular "şu kart çıktı mı" diye bakabilsinler diye mi? Olabilir...
Alıntı:
> Neyse bence siz aklınızdakini kodlarla bir taslak halinde yükleyin sonrada beraber fikir alışverişi yaparız.
Ben yapmak istemiyorum. :) Eğer tartışıyor gibi görünüyorsam da tam doğru değil. Ben yalnızca başka bir fikir olarak ortalığı karıştırıyorum. :)
Alıntı:
> Ama benim aklımda olan biçim şu şekilde :
Numara Şekli = Puan pişti puanı özel davranışı oynanabilir mi?
Kart[2] [sinekli(yada direk ♣ şeklinde gösteririz.)] = [puan.tek] [puan.pişti] [davranış.normal] [oynana.evet]
*oynana = oynanabilirlik.evet
Kabul. Sağ tarafta ayrı olarak yazdıkların ya yapı ya da sınıf olarak bir araya getirilmeli.
oynana hileyi engellemek için mi?
Onun dışında, eğer Kart diye bir yapı oluşturursak ve desteyi bir Kart dizisi olarak kurarsak, kartların oynanıp oynanmadığını anlamak da bu açıdan gerekmeyebilir. 'El' kavramını ve yerdeki kağıtlar kavramlarını da Kart[] olarak tanımlarsak, başlangıçta 52 uzunluğunda olan dizinin içinden elemanları alır, yer ve el destelerine ekleyebiliriz.
Ama ben daha fazla yavaşlatmak istemiyorum. Sen eklemeye başla. (Sana çok çok kolay gelen yerlerini sonraya bırakırsan yeni başlayan arkadaşlara da oralarını yaptırırız belki. Of zor işler bunlar... :) Bence sen istediğin gibi yap. Zaten okul bitti... şimdi program yazma zamanı... :) )
Ali
--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]