程序设计方法学文档格式.docx
- 文档编号:19635630
- 上传时间:2023-01-08
- 格式:DOCX
- 页数:14
- 大小:134.37KB
程序设计方法学文档格式.docx
《程序设计方法学文档格式.docx》由会员分享,可在线阅读,更多相关《程序设计方法学文档格式.docx(14页珍藏版)》请在冰豆网上搜索。
pointView.y-WIDTH_Piece,
pointView.x+WIDTH_Piece,
pointView.y+WIDTH_Piece);
CBrushbrush;
if(color==true)
{
brush.CreateSolidBrush(COLOR_PieceBlack);
piece[pointBoard.x][pointBoard.y]=1;
color=false;
}
else
brush.CreateSolidBrush(COLOR_PieceWhite);
piece[pointBoard.x][pointBoard.y]=2;
color=true;
pDC->
FillRgn(&
rgnPiece,&
brush);
rgnPiece.DeleteObject();
}//CWzqView:
vDrawPiece
判断输赢
因为五子棋如果获胜,一定跟刚落的子有关。
可根据这一原则对最近刚落下的子进行4个方向的循环扫描,如果有连成5个子就获胜,以横向为例进行了注释,其他三个方向的扫描只是对横向扫描的部分判断条件进行修改。
////drawpiece
pt=pDoc->
ptGetPiecePos();
if((pt.x>
=0)&
&
((pt.y>
=0))&
piece[pt.x][pt.y]==0)
vDrawPiece(pt,0,pDC);
//横向扫描
intxx=pt.x,yy=pt.y;
for(inti=4;
i>
0;
i--)
{
if(--xx>
-1)//判断是否在最左边以右
{
if(piece[xx][yy]!
=piece[pt.x][pt.y])//判断左边的子是否颜色不同
{
xx=pt.x;
yy=pt.y;
for(intj=i;
j>
j--)//向右扫描,并将i的值赋给j
{
if(++xx<
19)//判断是否在最右边以左
{
if(piece[xx][yy]!
=piece[pt.x][pt.y])//判断右边的子是否颜色不同
{
break;
}
}
else//超过右边界的话直接结束循环
break;
if(j==1&
piece[xx][yy]==piece[pt.x][pt.y])//胜利情况之一:
落子的右边有同颜色的子,总共连起来达到了5个
MessageBox("
胜利"
"
提示!
"
);
}
break;
//向右扫描结束,直接结束向左扫描
}
//左边的子如果与该子颜色相同就继续惊醒循环
}
else//如果该子已经在左边界上了,向右扫描,与前面的向右扫描一样
xx=pt.x;
yy=pt.y;
for(intj=i;
j--)
if(++xx<
19)
if(piece[xx][yy]!
=piece[pt.x][pt.y])
else
break;
if(j==1&
piece[xx][yy]==piece[pt.x][pt.y])
MessageBox("
break;
if(i==1&
piece[xx][yy]==piece[pt.x][pt.y])//胜利条件之一:
向左扫描到四个一样颜色的子
MessageBox("
}
//纵向
xx=pt.x;
yy=pt.y;
if(--yy>
-1)
if(++yy<
else
else
if(++yy<
//正斜向
-1&
--yy>
-1)
19&
++yy<
19)
//反斜向
实验结果:
(四个方向)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序设计 方法
![提示](https://static.bdocx.com/images/bang_tan.gif)