PDA

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