#include <iostream>
#include <iomanip>
using namespace std;
const int xsize=8,ysize=8;
int success=0;
void clearchess(int [][ysize]);
void putknight(int [][ysize],int,int,int);
void printchess(int [][ysize]);
int main()
{
int chess[xsize][ysize]={0};
int i,j;
for(i=0;i<xsize;i++)
for(j=0;j<ysize;j++)
{
clearchess(chess);
putknight(chess,i,j,1);
}
cout << "success=" << success << endl;
return 0;
}
void clearchess(int chess[][ysize])
{
for(int i=0;i<xsize;i++)
for(int j=0;j<ysize;j++)
chess[i][j]=0;
}
void putknight(int chess[][ysize],int x,int y,int put)
{
if(x<0 || y<0 || x>=xsize || y>=ysize || chess[x][y]!=0)
{
return;
}
else
{
chess[x][y]=put;
if(put >= 64){
success++;
cout << success << endl;
printchess(chess);
}
for(int i=1;i<=8;i++){
switch(i){
case 1:
putknight(chess,x-2,y+1,put+1);
break;
case 2:
putknight(chess,x-1,y+2,put+1);
break;
case 3:
putknight(chess,x+1,y+2,put+1);
break;
case 4:
putknight(chess,x+2,y+1,put+1);
break;
case 5:
putknight(chess,x+2,y-1,put+1);
break;
case 6:
putknight(chess,x+1,y-2,put+1);
break;
case 7:
putknight(chess,x-1,y-2,put+1);
break;
case 8:
putknight(chess,x-2,y-1,put+1);
break;
}
}
}
chess[x][y]=0;
}
void printchess(int chess[][ysize])
{
for(int i=0;i<xsize;i++)
{
for(int j=0;j<ysize;j++)
cout << setw(3) << chess[i][j];
cout << endl;
}
cout << endl;
}
--
※ 發信站: 批踢踢實業坊(ptt.csie.ntu.edu.tw)
◆ From: 61.70.219.17