کد برنامه معمای 8 وزیر یا همون n وزیر معروف در c++

  • دسته: سورس کد پروژه های درسی
  • تعداد بازدید: 2440

8vazer.jpg

دوستان حتما تا به حال معمای هشت وزیر به گوش شما هم خورده که در بسیاری از دانشگاه ها به عنوان پروژه از دانشجوها خواسته میشه ودر اون باید 8 وزیر رو طوری در یک صفحه شطرنج بچینی که همدیگر رو گارد ندهند این معما راه حل های مختلفی دارد یا بهتر بگوئیم با چندین الگوریتم حل می شود که مهمترین آنها تکنیک عقبگرد می باشد اما امروز یک کد ساده برای اینکار در اختیار شما عزیزان قرار می دهم که دوستان به راحتی می توانند اون رو با زبان های مختلف تغییر دهند این الگوریتم با استفاده از توابع بازگشتی نوشته شده است و کاملا ساده می باشد

کد برنامه در ادامه مطلب

#include <iostream.h>
#include<conio.h>
#include<math.h>
#include<dos.h>
#include<stdlib.h>
class vazer{
public:
void arash();
int test( int i , int j );
private:
int board[8][8] ;
}em;//+++++++++++++++++
int vazer::test( int i , int j )
{
 for ( int a = 0 ; a < 8 ; a++ )
   board[i][a] = 0;
 for ( int b = 1 ; b < 8 ; b++ )
  if ( i - b >= 0 ) {
   if ( board[i - b][j] != 0 )
    return 0;
   if ( j - b >= 0 )
    if ( board[i - b][j - b] != 0 )
     return 0;
   if ( j + b <= 7 )
    if ( board[i - b][j + b] != 0 )
     return 0;
  }
 board[i][j] = 1;
 return 1;
}//+++++++++++++++++++++++
void vazer::arash()
{
int u=1;
 for ( int a = 0 ; a < 8 ; a++ )
  if(em.test( 0 , a ))
   for ( int b = 0 ; b < 8 ; b++ )
    if(em.test( 1 , b ))
     for ( int c = 0 ; c < 8 ; c ++ )
      if(em.test( 2 , c ))
       for ( int d = 0 ; d < 8 ; d++ )
    if(em.test( 3 , d ))
     for ( int e = 0 ; e < 8 ; e++ )
      if(em.test( 4 , e ))
       for ( int f = 0 ; f < 8 ; f++ )
        if(em.test( 5 , f ))
         for ( int g = 0 ; g < 8 ; g++ )
          if(em.test( 6 , g ))
           for ( int h = 0 ; h < 8 ; h++ )
        if(em.test( 7 , h )) {
         for ( int m = 0 ; m < 8 ; m++ ) {
          for ( int n = 0 ; n < 8 ; n++ )
           if( board[m][n]==1)
          { textcolor(1 );
           cout<< "  v"<<" " ;}
           else

           cout << "  ." <<" ";
          cout <<"\n"<<endl;
         }

           getch();
           clrscr();
           u++;
           if(u>92){
           clrscr();
           gotoxy(20,25);
            cout<<"for Queen program [8][8] just 92 emkan";
            break;
           }

        cout<<"\n\n\t\t\t\t\t"<<u<<endl<<"\n\n";

        }
}//+++++++++++++++++end
void print(char ch[],int m)
{
for(int i=0;ch[i];i++)
 {
 cout<<ch[i];
 delay(m);
 }
}
int main()
{
textbackground(188);
textcolor(7);
 clrscr();
print("\n\n\n\t\t\t\t    welcom to Queen programm\n",70);
print("\n\n\t\t\t\t  Author : maslem dadashzade\n",70);
print("\n\n\t\t\t\t Email  :info@arashdownload.com\n",70);
print("\n\n\t\t\t\t Web    :www.arashdownload.com\n",70);
print("\n\n\t\t\t\t          copy right  1389\n",70);
 cout<<"\n\n\n\t\t\plz chooz(for start program :y   for Esc :any key)";

if(getch()=='y'){
clrscr();
em.arash();

}
getch();
return 0;
}

 


۲ نظر

کد برنامه معمای 8 یا همون پازل8که اعداد1 تا 8 رو به ترتیب می چیند را ندارید اگه دارید ممنون میشم برام بفرستین

سایت تون جالب بود

ثبت نظر