SEKİZ VEZİR,SATRANÇ TAHTASI ÜZERİNDE HİÇ BİR VEZİRİN BİRBİRLERİNİ TEHDİT ETMEYECEK ŞEKİLDE 8*8 LİK BİR MATRİS ÜZERİNDE DİZİLMESİYLE GERÇEKLENEN BİR OYUNDUR BURDA BEN RANDOM OLARAK YER BULMAYA ÇALIŞTIĞIM İÇİN BAZEN SONUÇ ÇIKMAYABİLİR BUNUN İÇİN BİR KAÇ DEFA KOŞTURULMASI GEREKEBİLİR.ANLAŞILMAYAN YERLERİ SORABİLİRSİNİZ.
#include<iostream>
#include<stdlib.h>
#include<time.h>
using namespace std;
char p[8][8];
void isaretle(int a,int b)
{
int c=b;
if(a==7)
return;
if(b==0&&a<7)
{
for(int i=a+1;i<8;i++)
p[i][++b]=’,’;
for(int i=a+1;i<8;i++)
p[i][0]=’,’;
}
else if(b==7&&a<7)
{
for(int i=a+1;i<8;i++)
p[i][–b]=’,’;
for(int i=a+1;i<8;i++)
p[i][7]=’,’;
}
else if(b!=0&&b!=7&&a<7)
{
for(int i=a+1;i<8;i++)
{
b++;
if(b<8)
p[i][b]=’,’;
else
break;
}
b=c;
for(int i=a+1;i<8;i++)
p[i][b]=’,’;
b=c;
for(int i=a+1;i<8;i++)
{
b–;
if(b>=0)
p[i][b]=’,’;
else
break;
}
}
}
void deveci()
{
for(int i=0;i<8;i++)
for(int j=0;j<8;j++)
p[i][j]=’.’;
}
bool okay(int a)
{
int count=0;
for(int j=0;j<8;j++)
if(p[a][j]==’.’)
count++;
if(count==0)
return false;
else
return true;
}
void start()
{
int y,count=0;
for(int i=0;i<8;i++)
{
y:
int x=rand()%8;
if(p[i][x]!=’.’)
goto y;
if(okay(i)==true)
{
p[i][x]=’V’;
isaretle(i,x);
}
else
{
count++;
break;
}
}
}
void print()
{
for(int i=0;i<8;i++)
{
for(int j=0;j<8;j++)
cout<<p[i][j]<<” “;
cout<<endl<<endl;
}
}
main()
{
srand(time(NULL));
deveci();
start();
print();
system (“pause”);
}
MEHMET SALİH DEVECİ
YAZILIM MÜHENDİSİ
Merhaba çok güzel bir konu teşekkürler..;)
Benim bir sorum olucaktı? C#’Da console ekranında yazmak istiyorum yardımcı olursanız sevinirim.. :/
Aslında kodların tamamını C# ekranına entegre etmeniz çok kolaydır…zaten bu kod genel anlamda programlanmıştır bu yüzden C# a entegresi çok kolaydır sanırım kısa sürede gerçekleştirebilirsiniz.
bu s,stemi console uygulamasına aktaramadım c# kullanıyorum . Bu konuda yardımcı olursanız çok sevinirim. Benim için önemli bir ödev
nerede hata alıyorsunuz söylerseniz yardımcı olurum yada hatanın adı nedir???
bu sanırım c++ da yazılmış. bunu c# a nasıl geçirebiliriz acaba.bilmediğim cok terim var ondan sanırım yardımcı olabilirseniz çok sevinirim yada bir iletişim bilgisi verirseniz size ulsassam
Ya benim bunu C de yazmam lazım :S C++ değil 🙂 ama nasıl yapıcamı bi türlü çözemedim yani mantığını anlamadım :SYardım ederseniz çok sevinicem :S
Merhaba merve hanım….Sadece bu uygulama için konuşuyorum Bu uygulama için yazdığım kod içerisinde sadece cout ve cin için printf ve scanf kullanmanız bununla beraber kütüphane olarak ise #include yerine #include ve #include kullanmanız yeterlidir…Bu değişiklikleri yaptıktan sonra ortaya çıkacak kod C ile yazılmış bir 8 vezir oyunu olmuş olacaktır…
Çok faydalı bir paylaşım teşekkür ederiz…
Önemli deil Fatih bey…
1 aydır c# da ugraşıyorum ve yapamadım artık aptal olduguma inanmaya başladım :S
ne yaptıysam olmuyor ..
Estafirullah Yusuf bey…Öncellikle şunu söyliyeyim 8 vezir in C# lık tarafı pek yok çünkü algoritmik bir problemdir…O yüzden öncellikle problemin algoritmasını çıkarıp ardından kodlasanız iyi olur…
abi yok ya bıktırdı beni artık ..ama ugraşıyorum yinede neden ugraşıyorsam..bir gün biiznillah bu soruyu cözücem cok yakında ..c# da yeni başladım belki bir türlü o yüzden cözemiyorum ama bilmiyorum artık kafayı yetirdi abi..
Dostum sen algoritmayımı çözemedin yoksa C# tarafındamı problem yaşıyosun???
algoritmayı cözemedim galiba eger genelde tek algoritmamı kullanılır ? tam olarak bir bilgim yok mehmet abi bu arada meslek lisesi okuyorum..
meslek lisesi okuyorum dememin sebepi algoritmalar ve sayre konusu işlemedik abi daha yeni yeni yazılıma girdik .. acaba bu soruyu cözmek icin bir algoritmamı bilmek lazım..
EEE yusuf tabiki bu problem sadece algoritmik bir problemdir..İşin matematiğini algoritmasını çözdükten sonra programlaman iyise 1-2 saatte kodlarsın bu problemi…Zaten bu problemdeki en büyük şey Algoritmadır…
ilk veziri koydugum yere göre bazen 8 tane vezir diziyor bazen de sıkışıyor 7 tane yada daha sacma birşey cıkartıyor acaba nasıl bir algoritma izlemeliyim cözüm icin abi ?
tmm rabbime cok şükür yaptım..:) bir count degişkeni ile 8 vezirden fazla vezir varsa bir daha random üretiyor.bu sefer başarılı olunuyor : )
Tebrikler Yusuf :))) işte bu kadarmış:)))
rabbe hamd-ü senalar olsun diyelim..bu arada sen bende eklisin ama hic acmıyorsun abi : ) haberin olsun..
neyi hiç açmıyorum Face imi Msn imi??? Msn i ben nerdeyse hiç kullanmıyom ama face sürekli açık…
iyi günler 8 vezir problemi konusunda sormam gereken bazı seyler var yardımcı olabilirseniz cok sevinirim
” SİSTEM BELİRTİLEN DOSYAYI BULAMADI ” HATASI ALIYORUM NE YAPMAM LAZIM 🙁
TY for this piece, it has been incredibly helpful to me! Much easier to understand than anything else out there.
There are some attention-grabbing cut-off dates in this article but I don’t know if I see all of them heart to heart. There’s some validity but I’ll take hold opinion till I look into it further. Good article , thanks and we would like extra! Added to FeedBurner as properly