一起学习
关于《黑白棋》的开发文档和使用说明
作者/庞长才
下载源代码
本程序是在已有的《黑白棋》基础上实现的网络版,通过Winsocket实现了进程的同步。如图一:
图一
本源程序有比较详细的注释,适合于大家参考。整个程序分为如下几个部分:
一、应用程序的框架结构
本程序采用的是基于对话框的体系结构,整个程序由应用程序对象(CBWChessApp theApp;)和主对话框(CBWChessDlg
dlg;)构成;程序的主要操作都是在主对话框下完成的。
二、本程序的功能模块
本程序分为三个主要的功能模块:
三、关于本程序几个关键部分的说明
由于本程序在代码中加入了比较详细的说明,在这里只就其中几个关键的函数或类进行说明:
-
关于函数(int BtoW(int x1,int y1,int flag);)的说明,本函数是本程序的核心,其主要功能是在一方放下一颗子之后,将对方的棋子进行翻转,采用的算法是从棋子( x1, y1)出发,向8个方向进行扫描,并将夹住的子进行翻转。
-
关于绘图函数DrawBitmap的说明,本函数主要是将位图画在主界面上,从而实现棋盘的绘制和更新。
-
关于函数Ring的说明,本函数是在棋盘翻转之后,对棋盘进行统计和分析,同时作必要的处理,如游戏是否结束,对方是否要连走等。
-
关于类CConnection 和CNetworking的说明,这两个类一个是用来建立连接对象,一个是用于建立服务器对象。这两个类将一些必要的网络操作封装在一起,完全将连接对象化,不需要窗口就可以处理网络消息,本程序同时还通过定义回调函数,实现数据到来时的自动处理,简化了数据处理的过程。
-
关于多线程的使用。为了实现输入和数据的处理,同时为了防止因等待输入而发生程序冻结的状态,提高程序执行的效率,本程序采用了多线程机制。派生的子线程主要有:用来登录服务器的登录线程;用来监听端口的服务器线程;用来接收和处理数据的网络线程。通过多线程的使用,减少了主线程的复杂度,同时也使分工更加明确和合理。
下载本文示例代码
关于《黑白棋》的开发文档和使用说明关于《黑白棋》的开发文档和使用说明关于《黑白棋》的开发文档和使用说明关于《黑白棋》的开发文档和使用说明关于《黑白棋》的开发文档和使用说明关于《黑白棋》的开发文档和使用说明关于《黑白棋》的开发文档和使用说明关于《黑白棋》的开发文档和使用说明关于《黑白棋》的开发文档和使用说明关于《黑白棋》的开发文档和使用说明关于《黑白棋》的开发文档和使用说明关于《黑白棋》的开发文档和使用说明
阅读(327) | 评论(0) | 转发(0) |