前言

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

五、小脑袋,大疑问

加油~~

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

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

  1. java计算机毕业设计BS架构考研交流学习平台设计与实现MyBatis+系统+LW文档+源码+调试部署

    java计算机毕业设计BS架构考研交流学习平台设计与实现MyBatis+系统+LW文档+源码+调试部署 java计算机毕业设计BS架构考研交流学习平台设计与实现MyBatis+系统+LW文档+源码+调 ...

  2. 网上订餐系统 mysql 数据库设计_网上订餐系统的设计与实现

    摘要: 进入21世纪,伴随着我国的综合国力的迅速提升,科技的迅猛发展,网络信息化和电子商务已经渗透到了人类社会的各个方面与角落.网购再也不是新鲜的代名词,它已经成为我们寻常生活的一部分.人们在网上购买 ...

  3. java中国象棋网络对弈,java课程设计---中国象棋对弈系统

    java课程设计---中国象棋对弈系统 1 目目 录录 摘要 1 关键字 1 正文 2 1.程序设计说明. 2 1.1 程序的设计及实现 2 1.1.1搜索引擎的实现(engine包) . 2 1.1 ...

  4. java中国象棋网络对弈_基于JAVA的中国象棋对弈系统(附答辩记录)

    基于JAVA的中国象棋对弈系统(附答辩记录)(包含选题审批表,任务书,开题报告,中期报告,毕业论文7100字,程序) 摘  要:本毕业设计采用Java实现中国象棋对弈,可以由两个玩家操作来进行.其图形 ...

  5. Java学习Day019(网上订餐系统)

      一生朋友一生情,一生有你才会赢:千山万水总是情,点个关注行不行! 1.系统需求说明 概要:现今已进入网络时代,网上购物.看新闻.交友等人们的日常生活已离不开网络."只要点点手指,就能送餐 ...

  6. 基于Java EE的中国象棋网上对战的设计与实现

    技术:Java.JSP等 摘要:中国象棋是一种起源于中国古代的双人对战棋类游戏,广泛的流行在全国各地,是中华文化的典型代表之一,体现着中华文化的智慧和蕴含.为了传承这一重要的传统,理解其中的精髓,以及 ...

  7. JAVA高级应用课程设计(网上书城系统——会员登陆模块的设计与实现)

    课程设计报告 课   程  名   称: JAVA高级应用课程设计 设   计  题   目:网上书城系统--会员登陆模块的设计与实现 目 录 一.开发背景. 1 (一)背景概述. 1 (二)发展前景 ...

  8. java计算机毕业设计智友少儿编程学习平台源码+mysql数据库+系统+部署+lw文档

    java计算机毕业设计智友少儿编程学习平台源码+mysql数据库+系统+部署+lw文档 java计算机毕业设计智友少儿编程学习平台源码+mysql数据库+系统+部署+lw文档 本源码技术栈: 项目架构 ...

  9. Springboot考研网上辅导系统fu1ei计算机毕业设计-课程设计-期末作业-毕设程序代做

    Springboot考研网上辅导系统fu1ei计算机毕业设计-课程设计-期末作业-毕设程序代做 [免费赠送源码]Springboot考研网上辅导系统fu1ei计算机毕业设计-课程设计-期末作业-毕设程 ...

  10. java毕业生设计紫陶文化传播与学习交流网站计算机源码+系统+mysql+调试部署+lw

    java毕业生设计紫陶文化传播与学习交流网站计算机源码+系统+mysql+调试部署+lw java毕业生设计紫陶文化传播与学习交流网站计算机源码+系统+mysql+调试部署+lw 本源码技术栈: 项目 ...

最新文章

  1. OpenCV(26)图像分割 -- 距离变换与分水岭算法(硬币检测、扑克牌检测、车道检测)
  2. 区块链系统之《一种基于区块链的云数据共享方法》
  3. 来了,「年度最强技术答辩」看这里
  4. 德哥:从Oracle DBA到PostgreSQL布道者
  5. python对excel表格操作
  6. zynq linux网口不通,已解决: ZYNQ 7035以太网口无法连通 - Community Forums
  7. 我的游测之路 | 揭秘游戏测试神秘面纱(一)
  8. fork() 和 vfork()
  9. 华为Mate40 Pro国行或定价6499元起 将会提供多个版本
  10. Permutations
  11. java三大特性面试回答_面试题解3-Java的三大特征
  12. DWG转PDF在线转换怎么转?这个方法线上线下都能用
  13. 小偷和抢劫是被怎么遏制的?
  14. (附源码)ssm失物招领系统 毕业设计 182317
  15. source 命令的用法(与 sh Filename、./Filename的区别)
  16. 【CSA STAR 对标分析】BCR-业务连续性管理与操作恢复
  17. 老铁请留步!有奖调查
  18. 记录今天面试网易游戏—IT技术支持/桌面运维 面试题
  19. 计算机word软件学后的总结,计算机office教学总结范文
  20. window电脑C盘占用过大问题的几种解决方法

热门文章

  1. IOS唤起键盘,移动端页面放大
  2. lisp visual 开根号_[zz] maxima 笔记
  3. 依赖多个项目,重复jar包不同版本冲突解决
  4. java defunct_神奇的僵尸进程问题
  5. 经典俄罗斯方块游戏手机版
  6. 实用计算机理论基础知识试题及答案,计算机基础知识试题库及答案(5)
  7. 算法竞赛入门经典-第五章错位输出
  8. 练习 fullpage
  9. SQL Server 进程无法连接到 Subscriber “xxxxxx”
  10. 介绍dbt,ETL和ELT Disrupter