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İ