"骑士周游" 问题

xiao9900 2008-12-03 04:44:59
8*8的网格,骑士以中国象棋马的形式来走
走完所有交叉点,并且每点只能走一次

高手帮改改吧,搞了一天,在走过程中,最后面总是出现问题

代码我用VC6.0写的

#include <iostream>

using namespace std;

void Move(int x,int y);
int board[8][8]={0};
int Hor[8]={2,1,-1,-2,-2,-1,1,2};
int Ver[8]={-1,-2,-2,-1,1,2,2,1};
char bu[64][10];
int buCount=0;

void main()
{
int Row,Col;
cout<<"Enter Row(0~7):";
cin>>Row;
cout<<"Enter Col(0~7):";
cin>>Col;
if(Row>7||Row<0||Col>7||Col<0)
{
cout<<"输入不正确"<<endl;
return ;
}
board[Row][Col]=1;
sprintf(bu[buCount],"%d,%d",Row,Col);
Move(Row,Col);

for(int i=0;i<8;i++)
for(int j=0;j<8;j++)
if(board[i][j]==0)
{
cout<<"周游失败"<<endl;
return;
}

cout<<"周游成功"<<endl;
for(i=0;i<64;i++)
{
if(i%8==0) cout<<endl;
cout<<bu[i]<<"\t";

}
cout<<endl;
}

void Move(int x,int y)
{
for(int i=0;i<8;i++)
{
int x1=x;
int y1=y;

x1+=Hor[i];
y1+=Ver[i];

if(x1>7||x1<0||y1>7||y1<0||board[x1][y1]==1)
{
if(i==8)
{
buCount--;
board[x][y]=0;
}
continue;
}
if(buCount++<64)
{
board[x1][y1]=1;
sprintf(bu[buCount],"%d,%d",x1,y1);
Move(x1,y1);
}

}
}
...全文
293 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
baifanmvp 2008-12-06
  • 打赏
  • 举报
回复
我测试了一下 没出现什么问题啊 LZ把具体问题说下
baifanmvp 2008-12-06
  • 打赏
  • 举报
回复
我测试了一下 没出现什么问题啊 LZ把具体问题说下
wangyaosuper 2008-12-05
  • 打赏
  • 举报
回复
EQ EQ同志们,
lq651659889 2008-12-05
  • 打赏
  • 举报
回复
关注
xiao9900 2008-12-03
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 aaajj 的回复:]
学会调试,尝试自己去解决
[/Quote]你这不是屁话
aaajj 2008-12-03
  • 打赏
  • 举报
回复
学会调试,尝试自己去解决
xiao9900 2008-12-03
  • 打赏
  • 举报
回复
怎么没有人回答呢,郁闷
是我思路不对,还是咋地

65,211

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧