资源简介
中国象棋棋盘上,对任意位置放置的一个马,均能选择一个合适的路线,使得棋子能按象棋的规则不重复地走过棋盘的每个位置
实验要求:(1)依次输出所走过的各位置坐标
(2)画出棋盘的图形形式,并在其上演示动态过程
(3)程序能方便地移植到其他规则的棋盘上
代码片段和文件信息
#include
#include
using namespace std;
#define M 10
#define N 9
struct step
{
int i;
int j;
int di;
} st[N*M];
int move1[8]={2211-1-1-2-2}
move2[8]={1-12-22-21-1};
int top=-1;int mg[N+1][N];string chess[N+1][N];
int nextstep(int xint y)
{
int count=0i1j1;
for(int i=0;i<8;i++)
{
i1=x+move1[i];j1=y+move2[i];
if(i1>M-1||i1<0||j1>N-1||j1<0)continue;
if(mg[i1][j1]!=0)continue;
else count++;
}
return count;
}
void horse(int xint y)
{
int ijdifind;
top++;
st[top].i=x;st[top].j=y;st[top].di=-1;
mg[x][y]=1;
while(top>-1)
{
int count=8;
i=st[top].i;j=st[top].j;di=st[top].di;
if(top+1==M*N)
{
for(int k=0;k {
system(“cls“);
cout<<“>>>>>>>>>>>>>>>>>>>>数据结构
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 2491 2009-06-11 17:21 课程设计.cpp
----------- --------- ---------- ----- ----
2491 1
评论
共有 条评论