坚持学习100天:象棋网上对弈系统(表示看不懂,有待加油)

本文介绍了一个C++实现的象棋网上对弈系统,涉及数据结构、网络通信、图形绘制和逻辑规则。系统使用二维数组表示棋盘,通过Win32 API进行图形界面交互,利用UDP协议实现网络通信,同时介绍了WinPcap库在捕获网络数据包中的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

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平台下的一个开源数据库。提供访问网络底层数据的功能。

五、小脑袋,大疑问

加油~~

上述内容如有侵权,联系即删。
感谢阅读-感谢支持

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值