سورس برنامه حرکت اسب در سی پلاس پلاس
با عرض سلام خدمت دوستان
برنامه حرکت اسب پروژه بسیاری از دانشجویان بوده است حتی خود من برای همین تصمیم گرفتم سورس این برنامه را در اینجا بگذارم.
این برنامه حرکت اسب را طوری مشخص میکند که اسب بتواند تمامی خانه های شطرنج را طی کرده بطوریکه فقط یکبار وارد هر خانه ای شود.
فقط توجه داشته باشید که قسمت اصلی برنامه از حلقه 65 تایی شروع و در پایان این حلقه تمام میشود و من قسمت های پایین برنامه را فقط برای چاپ صفحه شطرنج نوشتم.
کد:
#include <iostream>
#include <conio>
#include <iomanip>
int main()
{
int a[8][8];
int b[9]={0,-2,-1,1,2,2,1,-1,-2};
int c[9]={0,1,2,2,1,-1,-2,-2,-1};
int p,q,f,g,m,n,min,e,w,count;
for (int i=0;i<8;i++)
{
for (int j=0;j<8;j++)
a[i][j]=0;
}
cout << "plz enter number row between (0 & 7): ";
cin >> m ;
cout << "plz enter number column between (0 & 7): ";
cin >> n;
cout << "\n";
a[m][n]=1;
for (int i=2;i<65;i++)
{
min=100;
for (int t=1;t<=8;t++)
{
p=m+b[t];
q=n+c[t];
if(p>=0 && p<8 && q>=0 && q<8 && a[p][q]==0)
{
count=0;
for (int z=1;z<=8;z++)
{
f=p+b[z];
g=q+c[z];
if (f>=0 && f<8 && g>=0 && g<8 && a[f][g]==0)
count=count+1;
}
if(count<min)
{
min=count;
w=p;
e=q;
}
}
}
a[w][e]=i;
m=w;
n=e;
}
cout << "chessboard is:" <<"\n";
cout << "-----------------------------------------" << endl << "|";
for (int i=0;i<8;i++)
{
for(int j=0;j<8;j++)
{
if (a[i][j]<10)
cout << setw(2) << a[i][j] <<setw(3)<<"|";
else
cout << setw(3) << a[i][j] <<setw(2)<<"|";
}
cout << endl;
cout << "-----------------------------------------" << endl;
if(i<7)
cout << "|";
}
getch();
return 0;
}