本人才入门,搞这个问题都头破了。我想让棋子在(0.0)点走遍棋盘,输出yeah!但是却没有输出。不知道哪里出错了
#include<iostream>
using namespace std;
void zhouyou(int,int);
bool pangduan(int, int);
int a[8][8] = { 0 };
int hor[8] = { -1,-2,-2,-1,1,2,2,1 }, ver[8] = { 2,1,-1,-2,-2,-1,1,2 };
int k = 1;
int main()
{
zhouyou(0,0);
system("pause");
}
void zhouyou(int hang, int lie)
{
a[hang][lie] = 1;
if (k==64)
{
cout << "yeah!";
}
for (int i = 0; i < 8; i++)
{
if (pangduan(hang+hor[i], lie+ver[i]))
{
a[hang+hor[i]][lie+ver[i]] = 1;
k++;
zhouyou(hang + hor[i], lie + ver[i]);
}
}
k--;
}
bool pangduan(int hang, int lie)
{
if ((hang>=0)&&(hang<8)&&(lie>=0)&&(lie<8))
{
if (a[hang][lie]==0)
{
return true;
}
}
return false;
}