该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
这么写能不能看懂在做什么
#include
using namespace std;
#define MAXLINES 8
#define MAXCOLUMNS 8
#define LASTLINE 7
#define LASTCOLUMN 7
int main()
{
int position[8]={0,0,0,0,0,0,0,0}, workingline=0, valid=0, solutions=0;
while (LASTCOLUMN>=position[0])
{
//verify
valid=1;
for (int loop1=0; loop1
if ((position[workingline]==position[loop1])||((loop1-workingline)==(position[workingline]-position[loop1]))||((loop1-workingline)==(position[loop1]-position[workingline])))
{
valid=0;
break;
}
if (valid)
{
if (LASTLINE==workingline) //all 8 queens in right place
{
++solutions;
cout<
for (int loop2=0; loop2
{
for (int loop3=0; loop3
if (loop3==position[loop2])
cout<
else
cout<
cout<
}
cin.get();
}
else //move onto next line
{
++workingline;
position[workingline]=0;
continue;
}
}
else
{
for (int loop2=0; loop2<=workingline; ++loop2) //display error message
{
if (loop2)
cout<
cout<
}
cout<
}
++(position[workingline]);
while ((MAXCOLUMNS==position[workingline])&&workingline) //go back to last line
++(position[--workingline]);
}
cout<
}