前言
Hello,我是修齊。
学习C++的第一百零三十八天,用心学习。
在这里记录一些学习的东西和学习的心情,内容主要是一些自己学习整理的小笔
记。
一、象棋网上对弈
1.象棋网上的对弈系统由数据结构、图像绘制、规则设置、网络通信、棋子操作5部分。
2.数据结构:棋盘在长方形的平面上,10行9竖交织的坐标方式。系统定义int型的二维数组xArray[9][10]。
3.对xArry[9][10]、yArray[9][10]初始化:
for(int i=0;i<9;i++)
{
for(int j=0;j<10;j++)
{
xArray[i][j]=cX+50*i;
yArray[i][j]=cY+50*j;
}
}
4.引进一个二维数组来保存坐标点的棋子信息,InfoArray[9][10]。
5.坐标点(xArray[4][9],yArray[4][9])位置的棋子类型表示为InforArray[4][9]=5。
6.Windows中有各种图形用户界面GUI(Graphics User Interface)对象,绘图时使用对象。
二、网络通信
1.通过类CComm实现通信功能,类中函数SendMsg和Listen分别负责发送和接收数据,实现联机通信的关键。
2.走棋后,通过CComm类的成员函数SendMsg发送数据通知对方,发送的数据:起始坐标,终点坐标和棋子信息。
3.UpdateAllData数据定义共7位。最高位固定位1,依次i,j,InfoArray[i][j],Prei、Prej。
4.获取点击,用户的操作主要通过点击鼠标的消息响应来完成。
5.消息就是指Windows发出的一个通知,告诉应用发生了某件事情。
6.WM_LBUTTONDOWN:添加鼠标左键消息。当用户点击左键,调用GetCursorPos()函数获得点击点的坐标信息。将屏幕坐标转换成窗口坐标(用屏幕坐标减去窗口的左上角坐标)。
7.设窗口左上角坐标(a,b),GetCursorPos()函数获得的屏幕坐标(x,y),以(a,b)为原点坐标,则(x-a,y-b)为点击点在窗口中的坐标。
三、主框架函数、通信函数
1.WinMain函数
2.Win32程序,也就没用到MFC,直接在Win32 API函数基础上开发,函数入口是WinMain。
3.WinMain函数根据机器分辨率调整窗口位置,加载字符串、注册应用程序、创建并显示窗口,最后启动消息循环。
4.InitInstance函数
5.函数创建并显示窗口。
6.实现网络对战平台,通信功能必不可少,定义通信类CComm,协议采用UDP,主设计通信双方的数据收发。
7.Listen函数
8.Listen函数创建套接字,创建线程接收对方数据。
9.ListenThread函数
10.ListenThread函数是一个线程函数,数据的接收是通过线程来实现。
11.SendMsg函数
12.SendMsg函数发送消息到对方。
四、逻辑函数
1.Graphics函数
2.Graphics函数用来绘制一个棋子。
3.Draw函数
4.Draw函数在某一个位置绘制某个棋子。
5.InitChessBoard函数
6.InitChessBoard函数作用是初始化棋盘。
7.ChessRule函数
8.ChessRule函数真正实现业务逻辑的函数。
9.WinPcap(Windows Packet Capture):一个基于Win32平台,用于捕获网络数据包并进行分析的开源库。
10.WinPcap是一个由Linux平台下的libpcap迁移到Window平台下的一个开源数据库。提供访问网络底层数据的功能。
五、小脑袋,大疑问
加油~~
上述内容如有侵权,联系即删。
感谢阅读-感谢支持