📄 马踏棋盘.txt
字号:
#include <stdio.h>
int a[9][9],answer[9][9];
int positionx[9]={0,1,1,-1,-1,2,2,-2,-2},positiony[9]={0,2,-2,2,-2,1,-1,1,-1};
int i,j,x,y,p,q,b,c,d;
void f1()
{
a[i][j]=0;
for(i=1;i<=8;i++)
for(j=1;j<=8;j++)
for(b=1;b<=8;b++)
{
x=i;y=j;
x=x+positionx[b];
y=y+positiony[b];
if(x>=1&&x<=8&&y>=1&&y<=8)
a[i][j]++;
}
}
void f2()
{
for(i=1;i<=8;i++)
{
for(j=1;j<=8;j++)
printf("%3d",answer[i][j]);
printf("\n");
}
}
void f3()
{
for(c=1;c<=64;c++)
{
d=10;
answer[p][q]=c;
a[p][q]=0;
for(b=1;b<=8;b++)
{
x=p+positionx[b];
y=q+positiony[b];
if(x>=1&&x<=8&&y>=1&&y<=8)
if(a[x][y]!=0)
{
--a[x][y];
if(a[x][y]<d)
{
d=a[x][y];
i=x;
j=y;
}
}
}
p=i;q=j;
}
}
void step()
{
f1();
printf("输入初始位置x,y(1<=x,y<=8)\n");
scanf("%d,%d",&p,&q);
f3();
f2();
}
void main()
{
int choose;
do
{
printf("1.棋子初始位置放置 2.返回\n");
scanf("%d",&choose);
switch(choose)
{
case 1:step();break;
case 2:break;
}
}
while(choose!=2);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -