View Full Version : کمک فوری برای حل یک مساله شطرنج در ++C/C
Armanprogrammer
دوشنبه 02 خرداد 1384, 13:58 عصر
سلام این برنامه به مساله اسب معروف است و به این صورت است که چگونه یک اسب میتواند بدون اینکه یک خونه ی شطرنج را دوبار رود از تمام خانه های شطرنج یک دور بگذرد.
اگر به ایمیلم هم بفرستین ممنون میشم.
ARMAN.AMIRKAMALI@GMAIL.COM
بلبل سیاه
دوشنبه 02 خرداد 1384, 15:53 عصر
برنامه حرکت اسب را برایم بفرستید
ادرس ایمیلم :
www.famouse_1984@yahoo.com
hamed jalili
جمعه 13 خرداد 1384, 02:04 صبح
آرمان جان من هم سعی کردم ولی تا حالا نتونستم
مهدی
جمعه 13 خرداد 1384, 02:27 صبح
فکر کنم اینو میخوای:
#include <stdio.h>
int a[8][8]={0};
int move_allowed(int&i,int&j,int x,int y,int c)
{
switch(c)
{
case 0:
i=x+1;
j=y-2;
if( i<8 && j>=0 && a[i][j]==0 )
return 1;
break;
case 1:
i=x+2;
j=y-1;
if( i<8 && j>=0 && a[i][j]==0 )
return 1;
break;
case 2:
i=x+2;
j=y+1;
if( i<8 && j<8 && a[i][j]==0 )
return 1;
break;
case 3:
i=x+1;
j=y+2;
if( i<8 && j<8 && a[i][j]==0 )
return 1;
break;
case 4:
i=x-1;
j=y+2;
if( i>=0 && j<8 && a[i][j]==0 )
return 1;
break;
case 5:
i=x-2;
j=y+1;
if( i>=0 && j<8 && a[i][j]==0 )
return 1;
break;
case 6:
i=x-2;
j=y-1;
if( i>=0 && j>=0 && a[i][j]==0 )
return 1;
break;
case 7:
i=x-1;
j=y-2;
if( i>=0 && j>=0 && a[i][j]==0 )
return 1;
break;
}
return 0;
}
void next_move(int x=0,int y=0,int n=1)
{
int i,j,c;
a[x][y]=n;
if(n==64)
{
for(i=0;i<8;i++)
{
for(j=0;j<8;j++)
printf("%4d",a[i][j]);
printf("\n");
}
return;
}
for(c=0;c<8;c++)
if(move_allowed(i,j,x,y,c))
next_move(i,j,n+1);
a[x][y]=0;
}
void main()
{
next_move();
}
Pars Giga
یک شنبه 15 خرداد 1384, 10:09 صبح
ok
darabi_s
شنبه 05 خرداد 1386, 14:12 عصر
بزالزذزیزرررسسسسسسسسس
darabi_s
شنبه 05 خرداد 1386, 14:15 عصر
سلام من هم دنبال برنامه حرکت اسب در شطرنج هستم لطفا کمکم کنید.
ealireza
شنبه 05 خرداد 1386, 17:50 عصر
شکل حرکت هم به این صورته
http://www.borderschess.org/artmpv2.gif
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.