资源简介
原创的网络对战版五子棋,主要是网络编程,MFC 画图
代码片段和文件信息
#include “stdafx.h“
#include “board.h“
#include “Resource.h“
#include “ConnectData.h“
#include “Rule.h“
#include “FiveChessDlg.h“
#define MAX_LEN 256 /*定义最大长度*/
//////////////////////////////////////////////////////////////////////////
// 构造函数,初始化棋盘数据以及图像数据
//////////////////////////////////////////////////////////////////////////
CBoard::CBoard()
{
// 初始化图像列表
m_iml.Create( 24 24 ILC_COLOR24 | ILC_MASK 0 2 );
// 载入黑、白棋子掩码位图
CBitmap bmpBlack bmpWhite;
bmpBlack.LoadBitmap( IDB_BMP_BLACK );
m_iml.Add( &bmpBlack 0xff00ff );
bmpWhite.LoadBitmap( IDB_BMP_WHITE );
m_iml.Add( &bmpWhite 0xff00ff );
}
//////////////////////////////////////////////////////////////////////////
// 析构函数
//////////////////////////////////////////////////////////////////////////
CBoard::~CBoard()
{
}
// 消息映射表
BEGIN_MESSAGE_MAP( CBoard CWnd )
//{{AFX_MSG_MAP(CBoard)
ON_WM_PAINT()
ON_WM_LBUTTONUP()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
//////////////////////////////////////////////////////////////////////////
// 处理WM_PAINT消息
//////////////////////////////////////////////////////////////////////////
void CBoard::OnPaint()
{
CPaintDC dc( this );
CDC MemDC;
MemDC.CreateCompatibleDC( &dc );
// 装载棋盘
CBitmap bmp;
CPen pen;
bmp.LoadBitmap( IDB_BMP_QP );
pen.CreatePen( PS_SOLID 1 0xff );
MemDC.Selectobject( &bmp );
MemDC.Selectobject( &pen );
MemDC.SetROP2( R2_NOTXORPEN );
// 根据棋盘数据绘制棋子
int x y;
POINT pt;
for ( y = 0; y < 15; y++ )
{
for ( x = 0; x < 15; x++ )
{
if ( -1 != m_data[x][y] )
{
pt.x = 12 + 25 * x;
pt.y = 84 + 25 * y;
m_iml.Draw( &MemDC m_data[x][y] pt ILD_TRANSPARENT );
}
}
}
// 完成绘制
dc.BitBlt( 0 0 395 472 &MemDC0 0 SRCCOPY );
}
//////////////////////////////////////////////////////////////////////////
// 处理左键弹起消息,为玩家落子之用
//////////////////////////////////////////////////////////////////////////
void CBoard::OnLButtonUp( UINT nFlags CPoint point )
{
MSGSTRUCT msg;
CRule rule;
CFiveChessDlg * pDlg = (CFiveChessDlg*)AfxGetMainWnd();
BYTE buf[MAX_LEN] = {0};
if ( m_bWait)
{
MessageBeep( MB_OK );
return;
}
if(pDlg->m_bIsConnect)
{
int x y;
x = ( point.x - 12 ) / 25;
y = ( point.y - 84 ) / 25;
// 如果在(0 0)~(14 14)范围内,且该坐标没有落子,
// 则落子于此,否则发声警告并退出过程
if ( x < 0 || x > 14 || y < 0 || y > 14 || m_data[x][y] != -1 )
{
MessageBeep( MB_OK );
return;
}
else
{
// 如果位置合法,则落子
SetData( x y m_color );
msg.color = m_color;
msg.x = x;
msg.y = y;
}
// 开始等待
m_bWait = TRUE;
msg.msgType = MSG_PUTSTEP;
pDlg->Send(&msg);
if(rule.Win(m_color msg.x msg.y) == _WIN)
{// 胜利
pDlg->MessageBox( _T(“恭喜,您获得了胜利!“) _T(“胜利“) MB_ICONINFORMATION );
pDlg
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 68 2010-10-13 23:35 FiveChess\bin\config.ini
文件 360509 2010-10-14 18:05 FiveChess\bin\FiveChess.exe
文件 339416 2010-10-14 18:05 FiveChess\bin\FiveChess.ilk
文件 2346000 2010-10-08 23:24 FiveChess\bin\music.wav
文件 59 2010-10-14 15:01 FiveChess\config.ini
文件 40564 2010-10-13 23:27 FiveChess\Debug\Board.obj
文件 19163 2010-10-13 23:27 FiveChess\Debug\Connect.obj
文件 27639 2010-10-13 23:27 FiveChess\Debug\FiveChess.obj
文件 467968 2010-10-14 18:05 FiveChess\Debug\FiveChess.pdb
文件 194612 2010-10-10 23:03 FiveChess\Debug\FiveChess.res
文件 49625 2010-10-14 18:05 FiveChess\Debug\FiveChessDlg.obj
文件 23541 2010-10-10 23:03 FiveChess\Debug\Rule.obj
文件 30297 2010-10-13 23:27 FiveChess\Debug\SetupDlg.obj
文件 12209 2010-10-10 23:03 FiveChess\Debug\StdAfx.obj
文件 238592 2010-10-22 16:45 FiveChess\Debug\vc60.idb
文件 94208 2010-10-14 18:05 FiveChess\Debug\vc60.pdb
文件 3633 2010-10-08 23:24 FiveChess\doc\ReadMe.txt
文件 213880 2010-10-14 13:21 FiveChess\FiveChess.aps
文件 1192 2010-10-23 10:01 FiveChess\FiveChess.clw
文件 5092 2010-10-08 23:24 FiveChess\FiveChess.dsp
文件 541 2010-10-08 23:24 FiveChess\FiveChess.dsw
文件 214016 2010-10-23 10:01 FiveChess\FiveChess.ncb
文件 132608 2010-10-23 10:01 FiveChess\FiveChess.opt
文件 252 2010-10-21 00:11 FiveChess\FiveChess.plg
文件 6750 2010-10-10 23:03 FiveChess\FiveChess.rc
文件 705 2010-10-13 16:53 FiveChess\inc\Board.h
文件 401 2010-10-08 23:24 FiveChess\inc\Connect.h
文件 484 2010-10-08 23:24 FiveChess\inc\ConnectData.h
文件 1357 2010-10-08 23:24 FiveChess\inc\FiveChess.h
文件 2263 2010-10-14 15:27 FiveChess\inc\FiveChessDlg.h
............此处省略29个文件信息
- 上一篇:C语言实用数字图像处理_源代码code
- 下一篇:实用C++调试指南
评论
共有 条评论