posts - 11,  comments - 12,  trackbacks - 0

主要源代码:

void CSpellGraphicDlg::OnUp() 
{
 
// TODO: Add your control notification handler code here

 
if (p.currentPoint/3==0)
 
{
  MessageBox(
"无法移动!");
 }

 
else{
  p.beforePoint
=p.currentPoint;
  p.currentPoint
-=3;
  
int temp=a[p.currentPoint/3][p.currentPoint-3*(p.currentPoint/3)];
  a[p.currentPoint
/3][p.currentPoint-3*(p.currentPoint/3)]=a[p.beforePoint/3][p.beforePoint-3*(p.beforePoint/3)];
  a[p.beforePoint
/3][p.beforePoint-3*(p.beforePoint/3)]=temp;
  drawCurrentPoint();
  drawBeforPoint();
 }

 
if (isFinished())
 
{
  
if (MessageBox("恭喜你,成功了!","继续?",MB_YESNO)==IDOK)
  
{
   inintial();
  }

  
else{
   MessageBox(
"谢谢您的支持,欢迎再次使用!");
  }

 }

}


void CSpellGraphicDlg::OnDown() 
{
 
// TODO: Add your control notification handler code here
 if (p.currentPoint/3==2)
 
{
  MessageBox(
"无法移动!");
 }

 
else{
  p.beforePoint
=p.currentPoint;
  p.currentPoint
+=3;
  
int temp=a[p.currentPoint/3][p.currentPoint-3*(p.currentPoint/3)];
  a[p.currentPoint
/3][p.currentPoint-3*(p.currentPoint/3)]=a[p.beforePoint/3][p.beforePoint-3*(p.beforePoint/3)];
  a[p.beforePoint
/3][p.beforePoint-3*(p.beforePoint/3)]=temp;
  drawCurrentPoint();
  drawBeforPoint();
 }

 
if (isFinished())
 
{
  
if (MessageBox("恭喜你,成功了!","继续?",MB_YESNO)==IDOK)
  
{
   inintial();
  }

  
else{
   MessageBox(
"谢谢您的支持,欢迎再次使用!");
  }

 }

}


void CSpellGraphicDlg::OnLeft() 
{
 
// TODO: Add your control notification handler code here
 if (p.currentPoint%3==0)
 
{
  MessageBox(
"无法移动!");
 }

 
else{
  p.beforePoint
=p.currentPoint;
  p.currentPoint
-=1;
  
int temp=a[p.currentPoint/3][p.currentPoint-3*(p.currentPoint/3)];
  a[p.currentPoint
/3][p.currentPoint-3*(p.currentPoint/3)]=a[p.beforePoint/3][p.beforePoint-3*(p.beforePoint/3)];
  a[p.beforePoint
/3][p.beforePoint-3*(p.beforePoint/3)]=temp;
  drawCurrentPoint();
  drawBeforPoint();
 }

 
if (isFinished())
 
{
  
if (MessageBox("恭喜你,成功了!","继续?",MB_YESNO)==IDOK)
  
{
   inintial();
  }

  
else{
   MessageBox(
"谢谢您的支持,欢迎再次使用!");
  }

 }

 
}


void CSpellGraphicDlg::OnRight() 
{
 
// TODO: Add your control notification handler code here
 if (p.currentPoint%3==2)
 
{
  MessageBox(
"无法移动!");
 }

 
else{
  p.beforePoint
=p.currentPoint;
  p.currentPoint
+=1;
  
int temp=a[p.currentPoint/3][p.currentPoint-3*(p.currentPoint/3)];
  a[p.currentPoint
/3][p.currentPoint-3*(p.currentPoint/3)]=a[p.beforePoint/3][p.beforePoint-3*(p.beforePoint/3)];
  a[p.beforePoint
/3][p.beforePoint-3*(p.beforePoint/3)]=temp;
  drawCurrentPoint();
  drawBeforPoint();
 }

 
if (isFinished())
 
{
  
if (MessageBox("恭喜你,成功了!","继续?",MB_YESNO)==IDOK)
  
{
   inintial();
  }

  
else{
   MessageBox(
"谢谢您的支持,欢迎再次使用!");
  }

 }

 
}


bool CSpellGraphicDlg::isExit(int n){
 
bool exit=false;
 
for (int i=0;i<3;i++)
 
{
  
for (int j=0;j<3;j++)
  
{
   
if (a[i][j]==n)
   
{
    exit
=true;
    
break;
   }

  }

  
if (exit==true)
  
{
   
break;
  }

 }

 
return exit;
}


bool CSpellGraphicDlg::isFinished(){
 CString str;
 CString strnum;
 
for (int i=1;i<9;i++)
 
{
  
switch(i)
  
{
  
case 1:
   m_1.GetWindowText(str);
   strnum
=""+i;
   
if (strcmp(str,strnum)!=0)
   
{
    
goto returnfalse;
   }

   
break;
  
case 2:
   m_2.GetWindowText(str);
   strnum
=""+i;
   
if (strcmp(str,strnum)!=0)
   
{
    
goto returnfalse;
   }

   
break;
  
case 3:
   m_3.GetWindowText(str);
   strnum
=""+i;
   
if (strcmp(str,strnum)!=0)
   
{
    
goto returnfalse;
   }

   
break;
  
case 4:
   m_4.GetWindowText(str);
   strnum
=""+i;
   
if (strcmp(str,strnum)!=0)
   
{
    
goto returnfalse;
   }

   
break;
  
case 5:
   m_5.GetWindowText(str);
   strnum
=""+i;
   
if (strcmp(str,strnum)!=0)
   
{
    
goto returnfalse;
   }

   
break;
  
case 6:
   m_6.GetWindowText(str);
   strnum
=""+i;
   
if (strcmp(str,strnum)!=0)
   
{
    
goto returnfalse;
   }

   
break;
  
case 7:
   m_7.GetWindowText(str);
   strnum
=""+i;
   
if (strcmp(str,strnum)!=0)
   
{
    
goto returnfalse;
   }

   
break;
  
case 8:
   m_8.GetWindowText(str);
   strnum
=""+i;
   
if (strcmp(str,strnum)!=0)
   
{
    
goto returnfalse;
   }

   
break;
  }

 }

 
return true;
 returnfalse: 
return false;
}


void CSpellGraphicDlg::inintial(){
 
for (int i=0;i<3;i++)
 
{
  
for (int j=0;j<3;j++)
  
{
   a[i][j]
=9;
  }

 }


 
int number=0;
 srand( (unsigned)time( NULL ) );
 
while (true)
 
{
  
int num=rand()%9;
  
  
if (number==8)
  
{
   
break;
  }


  
if (num!=0 && !isExit(num))
  
{
   a[number
/3][(number-3*(number/3))%3]=num;
   number
++;
  }

 }

 
 CString str;
 
for(int m=0;m<3;m++)
 
{
  
for (int n=0;n<3;n++)
  
{
   
int point=3*m+n+1;
   str.Format(_T(
"%d"),a[m][n]);
   
switch(point)
   
{
   
case 1:
    
if (a[m][n]==9)
    
{
     m_1.SetWindowText(
"");
     
break;
    }

    m_1.SetWindowText(str);
    
break;
   
case 2:
    
if (a[m][n]==9)
    
{
     m_2.SetWindowText(
"");
     
break;
    }

    m_2.SetWindowText(str);
    
break;
   
case 3:
    
if (a[m][n]==9)
    
{
     m_3.SetWindowText(
"");
     
break;
    }

    m_3.SetWindowText(str);
    
break;
   
case 4:
    
if (a[m][n]==9)
    
{
     m_4.SetWindowText(
"");
     
break;
    }

    m_4.SetWindowText(str);
    
break;
   
case 5:
    
if (a[m][n]==9)
    
{
     m_5.SetWindowText(
"");
     
break;
    }

    m_5.SetWindowText(str);
    
break;
   
case 6:
    
if (a[m][n]==9)
    
{
     m_6.SetWindowText(
"");
     
break;
    }

    m_6.SetWindowText(str);
    
break;
   
case 7:
    
if (a[m][n]==9)
    
{
     m_7.SetWindowText(
"");
     
break;
    }

    m_7.SetWindowText(str);
    
break;
   
case 8:
    
if (a[m][n]==9)
    
{
     m_8.SetWindowText(
"");
     
break;
    }

    m_8.SetWindowText(str);
    
break;
   
case 9:
    
if (a[m][n]==9)
    
{
     m_9.SetWindowText(
"");
     
break;
    }

    m_9.SetWindowText(str);
    
break;
   }

  }

 }

}


void CSpellGraphicDlg::drawCurrentPoint(){
   
int pp=p.currentPoint+1;
   
switch(pp)
   
{
   
case 1:
    m_1.SetWindowText(
"");
    
break;
   
case 2:
    m_2.SetWindowText(
"");
    
break;
   
case 3:
    m_3.SetWindowText(
"");
    
break;
   
case 4:
    m_4.SetWindowText(
"");
    
break;
   
case 5:
    m_5.SetWindowText(
"");
    
break;
   
case 6:
    m_6.SetWindowText(
"");
    
break;
   
case 7:
    m_7.SetWindowText(
"");
    
break;
   
case 8:
    m_8.SetWindowText(
"");
    
break;
   
case 9:
    m_9.SetWindowText(
"");
    
break;
   }

  
}


void CSpellGraphicDlg::drawBeforPoint(){
 
int pp=p.beforePoint+1;
 CString str;
 str.Format(_T(
"%d"),a[p.beforePoint/3][p.beforePoint-3*(p.beforePoint/3)]);
   
switch(pp)
   
{
   
case 1:
    m_1.SetWindowText(str);
    
break;
   
case 2:
    m_2.SetWindowText(str);
    
break;
   
case 3:
    m_3.SetWindowText(str);
    
break;
   
case 4:
    m_4.SetWindowText(str);
    
break;
   
case 5:
    m_5.SetWindowText(str);
    
break;
   
case 6:
    m_6.SetWindowText(str);
    
break;
   
case 7:
    m_7.SetWindowText(str);
    
break;
   
case 8:
    m_8.SetWindowText(str);
    
break;
   
case 9:
    m_9.SetWindowText(str);
    
break;
   }

}


void CSpellGraphicDlg::OnreStart() 
{
 
// TODO: Add your control notification handler code here
 if (MessageBox("确定开始吗?","确定",MB_OKCANCEL)==IDOK)
 
{
  inintial();
 }

 
else{
 
 }

}


void CSpellGraphicDlg::Onclose() 
{
 
// TODO: Add your control notification handler code here
 CDialog::OnCancel();
}


void CSpellGraphicDlg::OnTimer(UINT nIDEvent) 
{
 
// TODO: Add your message handler code here and/or call default
 CTime time=CTime::GetCurrentTime();
 CString str
=time.Format("%H:%M:%S");
 m_time.SetWindowText(str);
 CDialog::OnTimer(nIDEvent);
}

posted on 2009-08-03 15:37 人生在于攀登! 阅读(198) 评论(0)  编辑 收藏 引用

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理


<2009年8月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
303112345

常用链接

留言簿

随笔档案

搜索

  •  

最新评论

阅读排行榜

评论排行榜