Arama butonu
Bu konudaki kullanıcılar: 1 misafir
28
Cevap
5361
Tıklama
0
Öne Çıkarma
Cevap: C++ Satranç - Çok Karmaşık (2. sayfa)
C
13 yıl
Teğmen
Konu Sahibi

Teşekkür ederim, fikirleriniz bana yol gösteriyor fakat kodlama konusundada üstteki koddan ileriye geçebilmiş değilim :-/


Bu mesaja 1 cevap geldi.
T
13 yıl
Yüzbaşı

Ödevi bitirdim. Ancak malum sebeplerden paylaşmıycam. Hoca piyon için bool fonksiyonu vermiş. Öncelikle bütün taşlar için bir bool fonksiyonu yapacaksın. Bu boolların amacı taşın istediğin yere oynayıp oynayamadığını test etmek. Eğer taşın oynayabiliyorsa true oynayamıyorsa false değeri gönderecekler.
Taşların kurallarını da bu boollarda oluşturmuş olacaksın.

Ayrıca hamle iste fonksiyonu var. Bu fonksiyonda da yapacağın tek şey PIYON case i gibi VEZIR,KALE.... yazmak. Hiçbir değişiklik yapmayacaksın. Yani tek olay bool fonksiyonlarını yazmaktan geçiyor. Kolay gelsin.


Bu mesaja 1 cevap geldi.
C
13 yıl
Teğmen
Konu Sahibi

quote:

Orijinalden alıntı: TeaTone

Ödevi bitirdim. Ancak malum sebeplerden paylaşmıycam. Hoca piyon için bool fonksiyonu vermiş. Öncelikle bütün taşlar için bir bool fonksiyonu yapacaksın. Bu boolların amacı taşın istediğin yere oynayıp oynayamadığını test etmek. Eğer taşın oynayabiliyorsa true oynayamıyorsa false değeri gönderecekler.
Taşların kurallarını da bu boollarda oluşturmuş olacaksın.

Ayrıca hamle iste fonksiyonu var. Bu fonksiyonda da yapacağın tek şey PIYON case i gibi VEZIR,KALE.... yazmak. Hiçbir değişiklik yapmayacaksın. Yani tek olay bool fonksiyonlarını yazmaktan geçiyor. Kolay gelsin.

Buraya kadar yaptım zaten buraya kadar basit, fakat zor olan mesela karşı tarafın taşlarını almak yada şah ı aldıgında oyunun bitmesi bunu yapamadım ??



C
13 yıl
Teğmen
Konu Sahibi

quote:

Orijinalden alıntı: dogauzun

Benim aklıma gelen en basit çözüm şu şekilde:

Her taşa bir numara vereceksin. örneğin beyaz piyonun numarası = 1 gibi. Bunu yaparken beyaz taşlara 10 dan küçük siyah taşlara da 10 dan büyük numara verirsen daha da kolay olur. Beyaz fil = 3, siyah fil = 13 gibi. Taşın numarası 10 dan büyük mü küçük mü diye bakarak rengini anlayabilirsin direk. Satranç tahtasını da 2 boyutlu bir array olarak tutarsın. Her kareye bir integer yazarsın. Eğer o karede bir taş varsa o taşın numarası yazar, kare boş ise 0 yazar. (bunun internette 64 bitlik integerlar kullanılarak yapılan gösterimleri de mevcut ancak onlar 1. sınıf için biraz fazla karmaşık olabilir.)

Burdan itibaren 1 adet fonksiyon yazılır. Fonksiyon 2 adet parametre alır.

Birinci parametre: Taşın gideceği kare
İkinci parametre: Taşın hamleden önceki konumu


fonksiyona gelen parametreler kullanıcıdan okunur. Taşın hamleden önceki konumuna bakılarak hangi taş hareket ettiriliyor öğrenilir. Taşın türüne göre gideceği kareye gitmesi mümkün mü kontrol edilir. Örneğin kale ise taş ilk konum arrayde tahta[x][y] pozisyonundaysa x ve y den 1 tanesi sabit kalmalı. Her taş için belirli kurallar var buna göre taşın oraya gitmesi mümkün mü diye bakılabilir. Daha sonra gideceği kare dolu mu diye bakarsın. Daha sonra o hareket yapıldıktan sonra herhangi bir taş şahın olduğu kareye hareket edebiliyor mu diye bakarsın(taş açmazda olabilir.) Tabi işin içinde özel hareketler falan da var roktur falan. Ancak bir proje ödevi de böyle olmalı zaten bitirdiğin zaman sana bir şeyler kattığını hissedebilmelisin.

Hocam bir yere kadar geldım orda tıkandım, alıntı yaptım kı belkı bır yardımınız dokunur cok acıklayıcı yazmıstınız bayagı ılerledım sayenızde


Bu mesaja 1 cevap geldi.
C
13 yıl
Teğmen
Konu Sahibi

Bayağı ilerledim hamleler vs hersey tamam ama şurda tıkandım.

Karşı tarafın taşlarını nasıl alıcaz ???
Şah'ı alındıgında nasıl oyunu bıtırıcez ??
?





< Bu mesaj bu kişi tarafından değiştirildi clfkaya -- 21 Aralık 2012; 1:32:38 >
Bu mesaja 1 cevap geldi.
T
13 yıl
Yüzbaşı

oyun tek taraflı olacak. ödev dosyasını dikkatli okumadın mı? Sen sadece taşlarını kurala göre hareket ettireceksin. Ödevdeki amaç bu.


Bu mesaja 1 cevap geldi.
C
13 yıl
Teğmen
Konu Sahibi

quote:

Orijinalden alıntı: TeaTone

oyun tek taraflı olacak. ödev dosyasını dikkatli okumadın mı? Sen sadece taşlarını kurala göre hareket ettireceksin. Ödevdeki amaç bu.

ben cıft taraflı bıle yaptım da tasları nasıl alıcam dıye dusunuyorum :D

eyv hocam saolasın


Bu mesaja 1 cevap geldi.
T
13 yıl
Yüzbaşı

quote:

Orijinalden alıntı: clfkaya

quote:

Orijinalden alıntı: TeaTone

oyun tek taraflı olacak. ödev dosyasını dikkatli okumadın mı? Sen sadece taşlarını kurala göre hareket ettireceksin. Ödevdeki amaç bu.

ben cıft taraflı bıle yaptım da tasları nasıl alıcam dıye dusunuyorum :D

eyv hocam saolasın

ya sen ödev dökümanını biraz daha incele. Ayrıntılara dikkat et. Hoca zaten kodun hemen hemen yarısını paylaşmış orada.



W
13 yıl
Yüzbaşı

netten satranç algoritmasını bulup entegre edeceksen kendin bulmaya çalışırsan çok işin var



DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.