1. sınıfın 1. döneminde satranç yazılmasını istedi hoca ha? Saçmalıktan başka bir şey değil.. |
Maalesef ki oyle, 1. sınıf 1. dönem |
Sanırım aynı okuldayız yükseltme alıyorum bende. Satranç tek taraflı yapılacak. Yani amaç sadece taşların senin isteğin doğrultusunda hareket etmesi. 1. sınıfa göre aşırı zor bir proje ödevi bence de. Geçen sene basit bir dosyalama ödevi verilmişti. Bu sene şansınıza ders aşırı zorlaştı. Allah yardımcınız olsun. Ödevi yarın yapmayı denicem yaparsam bir iki tüyo karalarım buraya. Not: Ödev C++'ta değil C'de. |
Çok iyi olur, umarım bende bir sonuca ulaşabılırım |
Baslangic olabilir. http://www.fam-petzke.de/cp_board_en.shtml |
o98rthg hxtazwe yaw5y |
Saü deyim, İnternetten bulmasını bende biliyorum fakat, bir çok kişi internetten alacagı ıcın kopya ödev olacak o da sıfır olacak. Biraz özgünlük katmak mecburiyetindeyiz. |
u n vbn dfzx tsert sre |
multiplayer yazilir da single player yapay zekasini mezun bilgisayar muhendisi de yazamaz. cunku cok farkli dallar. yapay zeka basli basina bir dal zaten. bence hoca senden 2 kisinin sirayla oynayabilecegi bir sey istiyordur. |
Yanılıyorsunuz birçok bilgisayar mühendisliği bölümünde yapay zeka diye teknik seçmeli ders bulunur. Yapay zeka bilgisayar biliminin bir araştırma alanı zaten farklı şeyler değiller o kadar. Eğer sizden bir yapay zeka oluşturmanız istenmiyor ise 1. sınıf için çok da zor bir ödev değil. Taşların konumlarını tutacaksın hafızada ve yapılan hareket legal mi diye kontrol ediceksin. İlk etapta zor görünebilir ancak biraz araştırma yaparsan halledilemeyecek bir şey değil. |
Konu guncellıgını koruyor, ustalardan kod hakkında yardm beklıyorum |
aslinda farkli dal derken tip ile muhendislik arasindaki fark gibi demek istemedim. baslibasina bir dal oldugundan bahsettim. yoksa yapay zeka dersi egitim teknolojileri bolumunde de veriliyor. yapay zeke 4 yillik mezununun direk yapabilecegi bir is degil. uzerinde detayli egitim almasi gerekiyor. |
Konu guncellıgını koruyor, ustalardan kod hakkında yardm beklıyorum |
object orient yaklaşman gerekiyor kolay bir şekilde yapmak için. Her taş için ayrı bir class yazabilirsin. Bu class'lar; atıyorum "tas" denen bir abstact class'tan türerler. Grafikleride diğer özellikleride bu sınıfların içine yazarsın. Oyuncu taşa tıkladığında geçici bir instance'a al. Eğer boş bir yere yıklarsa taşın gidip gidemeyeceğini kontrol et. gidebiliyosa pozisyonunu değiştir vs vs.. Nette vardır chess yazılımlar. Belli bir yere kadarını yaz sonra karşılaştır internetten buldukların ile. Tabi derdin öğrenmekse. Eğer dersi geçsem yeter diyosan indir bitane satranç programı kaktır gitsin. |
Teşekkür ederim zaman ayırdıgınız için, zaten console app isteniyor. Tabiki amacım öğrenmek fakat ilk postta ki kadar yazabildim tıkandım. İnternette çok kaynak var fakat istenen ve benım yazdıgım kodla alakası yok :S |
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. |
Karşı tarafın taşlarını nasıl alıcaz ???
Şah'ı alındıgında nasıl oyunu bıtırıcez ??
--------------------------------------------
Bilg,sayar mühendisliği 1. sınıftayım, proje ödevi olarak C++ da satranç yapmam istendi 1 haftadır uğraşıyorum fakat 1 adım bile ilerleyemedim. Böyle bir proje yapan bir arkadaş varsa yardımcı olabılırse çok mutlu olurum.
DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.
Üye Ol Şimdi DeğilÜye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.
< Bu mesaj bu kişi tarafından değiştirildi clfkaya -- 21 Aralık 2012; 1:39:23 >