در این بازی ما باید هشت وزیر را به گونه ای در صفحه شطرنج بچینیم که هیچ یک از وزیرها، 7 وزیر دیگر را تحدید نکند.
روش 1) غیر بازگشتی
کامپایلر برای ویندوز 7 و ویستا
// In The Name Of God
// 8 Qeen in c++
// http://forum.ustmb.ir/thread1711.html
#include <iostream.h>
#include <dos.h>
#include <conio.h>
#include <math.h>
void main()
{
clrscr();
int a,b,c,d,e,f,g,h;
char x;
cout<<" Qeen> Mikhay 8Vazir Bazi Koni(1) Man Hesab Konam(2) Khoroj ()Ro Bezan???\n "<<"> ";
cin>>x;
if(x=='1')
{
cout<<"a=";
cin>>a;
cout<<"\nb=";
cin>>b;
cout<<"\nc=";
cin>>c;
cout<<"\nd=";
cin>>d;
cout<<"\ne=";
cin>>e;
cout<<"\nf=";
cin>>f;
cout<<"\ng=";
cin>>g;
cout<<"\nh=";
cin>>h;
if(a!=b&& abs(a-b)!=1&& a!=c&& abs(a-c)!=2&& a!=d&& abs(a-d)!=3&& a!=e&& abs(a-e)!=4&& a!=f&& abs(a-f)!=5&& a!=g&& abs(a-g)!=6&& a!=h&& abs(a-h)!=7&&b!=c&& abs(b-c)!=1&& b!=d&& abs(b-d)!=2&& b!=e&& abs(a-e)!=3&& b!=f&& abs(b-f)!=4&& b!=g&& abs(b-g)!=5&& b!=h&& abs(b-h)!=6&& c!=d&& abs(c-d)!=1&& c!=e&& abs(c-e)!=2&& c!=f&& abs(c-f)!=3&& c!=g&& abs(c-g)!=4&& c!=h&& abs(c-h)!=5&& d!=e&& abs(d-e)!=1&& d!=f&& abs(d-f)!=2&& d!=g&& abs(d-g)!=3&& d!=h&& abs(d-h)!=4&& e!=f&& abs(e-f)!=1&& e!=g&& abs(e-g)!=2&& e!=h&& abs(e-h)!=3&& f!=g&& abs(f-g)!=1&& f!=h&& abs(f-h)!=2&& g!=h&& abs(g-h)!=1)
{
cout<<"Afarin Dorost Bood!!!!!!!!!!";
}
else
{
cout<<"Behtare beri marpele Bazi Koni!!";
}
}
else
if(x=='2')
{
int count=0;
for(a=1;a<=8;a++)
for(b=1;b<=8;b++)
if(b!=a&& abs(b-a)!=1)
for(c=1;c<=8;c++)
if(c!=b&& abs(c-b)!=1&&c!=a&& abs(c-a)!=2)
for(d=1;d<=8;d++)
if(d!=c&& abs(d-c)!=1&&d!=b&& abs(d-b)!=2&&d!=a&& abs(d-a)!=3)
for(e=1;e<=8;e++)
if(e!=d&& abs(e-d)!=1&&e!=c&& abs(e-c)!=2&&e!=b&& abs(e-b)!=3&&e!=a&& abs(e-a)!=4)
for(f=1;f<=8;f++)
if(f!=e&& abs(f-e)!=1&&f!=d&& abs(f-d)!=2&&f!=c&& abs(f-c)!=3&&f!=b&& abs(f-b)!=4&& f!=a&& abs(f-a)!=5 )
for(g=1;g<=8;g++)
if(g!=f&& abs(g-f)!=1&& g!=e&& abs(g-e)!=2&& g!=d&& abs(g-d)!=3&& g!=c&& abs(g-c)!=4&& g!=b&& abs(g-b)!=5&& g!=a&& abs(g-a)!=6)
for(h=1;h<=8;h++)
{
if(a!=h&& abs(a-h)!=7&& b!=h&& abs(b-h)!=6&&c!=h&& abs(c-h)!=5&& d!=h&& abs(d-h)!=4&& e!=h&& abs(e-h)!=3&& abs(f-g)!=1&& f!=h&& abs(f-h)!=2&& g!=h&& abs(g-h)!=1)
{
count++;
cout<<endl<<count<<" => "<<" a= "<<a<<" b= "<<b<<" c= "<<c<<" d= "<<d<<" e= "<<e<<" f= "<<f<<" g= "<<g<<" h= "<<h<<"\n";
}
}
}
else
cout<<" Qeen> Bye>>>>>>>>" ;
cout<<" By PouyaDarabi"<<endl<<"PouyaDarabi@yahoo.com";
getch();
}
// By Pouya Darabi
//PouyaDarabi@yahoo.com
//http://forum.ustmb.ir
موضوعات مشابه:
علاقه مندی ها (Bookmarks)