?? queendlg.cpp
字號:
{
flag=1;
break;
}
if(flag)
break;
}
if(!flag)//比較是否在對角線上
{
for( i=6;i>0;i--)
{
for(int j=0;j<i;j++)
{
m_recoder=A[i];
m_recoder1=A[j];
if(m_recoder1>m_recoder)
{
m_recoder1=8-m_recoder1;
m_recoder=8-m_recoder;
}
if(m_recoder-i==m_recoder1-j)
{
flag=1;
break;
}
}
if(flag) break;
}
}
if(!flag)
{
Invalidate();
total++;
SetDlgItemInt(IDC_EDIT2,total);
}
seven++;
if (seven==8)
{
seven=1;
six++;
if (six==8)
{
six=1;
five++;
if (five==8)
{
five=1;
four++;
if (four==8)
{
four=1;
three++;
if (three==8)
{
three=1;
two++;
if (two==8)
{
two=1;
one++;
if (one==8)
{
one=two=three=four=five=six=seven=1;
SetDlgItemText(IDC_PAUSE,"結束了");
Invalidate();
CTime time=CTime::GetCurrentTime();
m_tEnd=time;
CTimeSpan wholeTime=m_tEnd-m_tStart;
CString str;
str=time.Format("%H:%M:%S");
SetDlgItemText(IDC_ENDTIME,str);
str=wholeTime.Format("%H:%M:%S");
SetDlgItemText(IDC_TOTALTIME,str);
return;
}
}
}
}
}
}
}
}
}
}
}
}
}
}
break;
case 2:
if(one<=7)
{
fa: if(two<=7)
{
fb: while (two==one||two==one-1||two==one+1)
{
two++;
}
if (two>7)
{
two=1;
one++;
if (one<8)
{
goto fa;
}
else
{
SetDlgItemText(IDC_PAUSE,"結束了");
Invalidate();
CTime time=CTime::GetCurrentTime();
m_tEnd=time;
CTimeSpan wholeTime=m_tEnd-m_tStart;
CString str;
str=time.Format("%H:%M:%S");
SetDlgItemText(IDC_ENDTIME,str);
str=wholeTime.Format("%H:%M:%S");
SetDlgItemText(IDC_TOTALTIME,str);
return;
}
}
if(three<=7)
{
fc: while (three==two||three==two-1||three==two+1||three==one||three==one+2||three==one-2)
{
three++;
}
if (three>7)
{
three=1;
two++;
goto fb;
}
if(four<=7)
{
fd: while(four==three||four==three+1||four==three-1||four==two||four==two+2||four==two-2||four==one||four==one-3||four==one+3)
{
four++;
}
if (four>7)
{
four=1;
three++;
goto fc;
}
if(five<=7)
{
fe: while(five==four||five==four-1||five==four+1||five==three||five==three-2||five==three+2||five==two||five==two-3||five==two+3||five==one||five==one-4||five==one+4)
{
five++;
}
if (five>7)
{
five=1;
four++;
goto fd;
}
if(six<=7)
{
ff: while(six==five||six==five-1||six==five+1||six==four||six==four-2||six==four+2||six==three||six==three-3||six==three+3||six==two||six==two-4||six==two+4||six==one||six==one-5||six==one+5)
{
six++;
}
if (six>7)
{
six=1;
five++;
goto fe;
}
if(seven<=7)
{
while(seven==six||seven==six-1||seven==six+1||seven==five||seven==five-2||seven==five+2||seven==four||seven==four-3||seven==four+3||seven==three||seven==three-4
||seven==three+4||seven==two||seven==two-5||seven==two+5||seven==one||seven==one-6||seven==one+6)
{
seven++;
}
if (seven>7)
{
seven=1;
six++;
goto ff;
}
// 為了便于運算數組里
A[0]=one;
A[1]=two;
A[2]=three;
A[3]=four;
A[4]=five;
A[5]=six;
A[6]=seven;
//比較是否在同一列
flag=0;
for(int i=6;i>0;i--)
{
for(int j=0;j<i;j++)
if(A[i]==A[j])
{
flag=1;
break;
}
if(flag)
break;
}
if(!flag)//比較是否在對角線上
{
for( i=6;i>0;i--)
{
for(int j=0;j<i;j++)
{
m_recoder=A[i];
m_recoder1=A[j];
if(m_recoder1>m_recoder)
{
m_recoder1=8-m_recoder1;
m_recoder=8-m_recoder;
}
if(m_recoder-i==m_recoder1-j)
{
flag=1;
break;
}
}
if(flag) break;
}
}
if(!flag)
{
Invalidate();
total++;
SetDlgItemInt(IDC_EDIT2,total);
}
seven++;
if (seven==8)
{
seven=1;
six++;
if (six==8)
{
six=1;
five++;
if (five==8)
{
five=1;
four++;
if (four==8)
{
four=1;
three++;
if (three==8)
{
three=1;
two++;
if (two==8)
{
two=1;
one++;
if (one==8)
{
one=two=three=four=five=six=seven=1;
}
}
}
}
}
}
}
}
}
}
}
}
}
}
break;
case 3:
{
if (m_Judge1)
{
solve(1);
m_num=m_LineNum.GetSize();
m_Judge1=FALSE;
}
break;
}
}
Invalidate();
}
}
void CQueenDlg::OnTimer(UINT nIDEvent)
{
// TODO: Add your message handler code here and/or call default
UpdateData();
switch(m_chose) {
case 1:
if(one<=7)
{
if(two<=7)
{
if(three<=7)
{
if(four<=7)
{
if(five<=7)
{
if(six<=7)
{
if(seven<=7)
{
// 為了便于運算數組里
A[0]=one;
A[1]=two;
A[2]=three;
A[3]=four;
A[4]=five;
A[5]=six;
A[6]=seven;
//比較是否在同一列
flag=0;
for(int i=6;i>0;i--)
{
for(int j=0;j<i;j++)
if(A[i]==A[j])
{
flag=1;
break;
}
if(flag)
break;
}
if(!flag)//比較是否在對角線上
{
for(int i=6;i>0;i--)
{
for(int j=0;j<i;j++)
{
m_recoder=A[i];
m_recoder1=A[j];
if(m_recoder1>m_recoder)
{
m_recoder1=8-m_recoder1;
m_recoder=8-m_recoder;
}
if(m_recoder-i==m_recoder1-j)
{
flag=1;
break;
}
}
if(flag) break;
}
}
if(!flag)
{
Invalidate();
total++;
SetDlgItemInt(IDC_EDIT2,total);
}
seven++;
if (seven==8)
{
seven=1;
six++;
if (six==8)
{
six=1;
five++;
if (five==8)
{
five=1;
four++;
if (four==8)
{
four=1;
three++;
if (three==8)
{
three=1;
two++;
if (two==8)
{
two=1;
one++;
if (one==8)
{
one=two=three=four=five=six=seven=1;
SetDlgItemText(IDC_PAUSE,"結束了");
Invalidate();
CTime time=CTime::GetCurrentTime();
m_tEnd=time;
CTimeSpan wholeTime=m_tEnd-m_tStart;
CString str;
str=time.Format("%H:%M:%S");
SetDlgItemText(IDC_ENDTIME,str);
str=wholeTime.Format("%H:%M:%S");
SetDlgItemText(IDC_TOTALTIME,str);
KillTimer(1);
return;
}
}
}
}
}
}
}
}
}
}
}
}
}
}
break;
case 2:
if(one<=7)
{
fa: if(two<=7)
{
fb: while (two==one||two==one-1||two==one+1)
{
two++;
}
if (two>7)
{
two=1;
one++;
if (one<8)
{
goto fa;
}
else
{
SetDlgItemText(IDC_PAUSE,"結束了");
Invalidate();
CTime time=CTime::GetCurrentTime();
m_tEnd=time;
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -