• 大小: 2.11MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-10-13
  • 语言: C/C++
  • 标签:

资源简介

原创的网络对战版五子棋,主要是网络编程,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个文件信息

评论

共有 条评论

相关资源