井字棋游戏
开发工具:Visual C++.NET 2003
程序员:黄江斌
程序功能:井字棋小游戏,人机对战版
时间:2005年8月28日
界面如下图:
程序分析:
CtictactoeView::CtictactoeView()//程序中关键变量赋初值
{
// TODO: 在此处添加构造代码
int i , j;
for( i = 0 ; i < 3 ; i++ )
for( j = 0 ; j < 3 ; j++ )
myGraph[i][j] = 0;
currX = -1;
currY = -1;
whosTurn = 1;
whosFirst = 1;
}
void CtictactoeView::OnDraw(CDC* pDC)//程序界面、游戏状态的显示
{
CtictactoeDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if (!pDoc)
return;
// TODO: 在此处为本机数据添加绘制代码
CBitmap bitmap[9];
CBitmap *pOldBitmap;
CDC MemDC;
int i , j;
int myTop = 5;
int myLeft;
int mySize = 100;
MemDC.CreateCompatibleDC( pDC );
for( i = 0 ; i < 3 ; i++ )
{
myTop = 5 + 105 * i;
myLeft = 5;
for( j = 0 ; j < 3 ; j++ )
{
myLeft = 5 + 105 * j;
if( myGraph[i][j] == 0 )
{
bitmap[ 3 * i + j ].LoadBitmap( IDB_BACKGROUND );
}
else if( myGraph[i][j] == 1 )
{
bitmap[ 3 * i + j ].LoadBitmap( IDB_CROSS );
}
else if( myGraph[i][j] == 2 )
{
bitmap[ 3 * i + j ].LoadBitmap( IDB_ROUND );
}
else
{
bitmap[3 * i + j ].LoadBitmap( IDB_CHOOSE );
}
pOldBitmap = MemDC.SelectObject( &bitmap[ 3 * i + j ] );
pDC->BitBlt( myLeft , myTop , mySize , mySize , &MemDC , 0 , 0 , SRCCOPY );
MemDC.SelectObject( pOldBitmap );
}
}
}
void CtictactoeView::OnMouseMove(UINT nFlags, CPoint point)//跟踪鼠标位置
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
this->point = point;
int x , y;