武汉理工大学《可视化编程》课程设计说明书
3.9贪吃蛇的前行中的具体的算法和判断.
void CSnakeView::OnTimer(UINT nIDEvent) {
// TODO: Add your message handler code here and/or call default CDC *pDC=GetDC(); CString soure;
if(Snake[0].len==2)SetTimer(1,370,NULL); if(Snake[0].len==3)SetTimer(1,270,NULL); if(Snake[0].len==6)SetTimer(1,200,NULL); if(Snake[0].len==9)SetTimer(1,100,NULL);
soure.Format(\得分:%d!\ //撞界判断
if(Snake[0].x*20<=37||Snake[0].y*20<=37||Snake[0].x*20>=462||Snake[0].y*20>=462) { }
//蛇身相撞判断 if(Snake[0].len>3)
for(int sn=Snake[0].len-1;sn>0;sn--) {
11
KillTimer(1);
AfxMessageBox(soure); // s=0;
武汉理工大学《可视化编程》课程设计说明书
if(Snake[0].x*20==Snake[sn].x*20&&Snake[0].y*20==Snake[sn].y*20)
///////////////////////////////////////////////////////////////////////////
pDC->Rectangle(Snake[Snake[0].len-1].x*20,Snake[Snake[0].len-1].y*20,(Snake[Snake[0].len-1].x+1)*20,(Snake[Snake[0].len-1].y+1)*20);
12
}
{ }
KillTimer(1);
AfxMessageBox(soure); // s=0;
pDC->SelectStockObject(WHITE_PEN);
for(int i=Snake[0].len-1;i>0;i--) { }
//行走方向判断
if(Snake[0].direct==1)Snake[0].y--; if(Snake[0].direct==2)Snake[0].y++; if(Snake[0].direct==3)Snake[0].x--; if(Snake[0].direct==4)Snake[0].x++; pDC->SelectStockObject(BLACK_PEN);
CBrush DrawBrush=(RGB(100,100,100));
CBrush *Drawbrush=pDC->SelectObject(&DrawBrush);
Snake[i].x=Snake[i-1].x; Snake[i].y=Snake[i-1].y;
武汉理工大学《可视化编程》课程设计说明书
pDC->Rectangle(Snake[0].x*20,Snake[0].y*20,(Snake[0].x+1)*20,(Snake[0].y+1)*20);
pDC->SelectObject(DrawBrush);
//判断吃豆的条件,撞到就吃
if(Snake[0].x*20==Food.x*20&&Snake[0].y*20==Food.y*20) { }
//如果食物被吃了 就生成 if(Food.isfood==1) {
srand((unsigned)time(NULL)); do {
for(int isfo=Snake[0].len-1;isfo>=0;isfo--) Snake[0].len++; Food.isfood=1;
Snake[Snake[0].len-1].x=Snake[Snake[0].len-2].x; Snake[Snake[0].len-1].y=Snake[Snake[0].len-2].y;
if(Snake[0].x*20==Snake[isfo].x*20&&Snake[0].y*20==Snake[isfo].y*20)
while(Food.x*20<70||Food.y*20<70||Food.x*20>430||Food.y*20>430);
13
}
{ }
Food.x=rand()%; Food.y=rand()%;
武汉理工大学《可视化编程》课程设计说明书
pDC->Rectangle(Food.x*20,Food.y*20,(Food.x+1)*20,(Food.y+1)*20);
CView::OnTimer(nIDEvent); }
Food.isfood=0;
}
14
武汉理工大学《可视化编程》课程设计说明书
4.游戏运行的界面及相关的截图
15