- 1、本文档共6页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
修改后VB中WINSOCK控件在网上象棋中应用
基于VB中WINSOCK控件的网上象棋系统的实现
马根峰1 , 孙艳2 , 王平1
(1.重庆邮电学院自动化学院,重庆,400065;2. 铁道部第十九工程局四处,内蒙 通辽,028000 )
摘要 本文首先介绍了Visual Basic中的WINSOCK控件的使用方法,然后深入探讨了网上象棋系统的设计思想及其实现过程。
关键词 WINSOCK控件;TCP;UDP
中图分类号: 文献标识码:
引言
Microsoft Visual Basic 是可视化的、面向对象的、采用事件驱动方式的结构化的高级程序设计语言。它提供了开发Microsoft Windows(R)应用程序的迅速、最简捷的方法。在网上象棋系统的工作中,笔者利用VB编写了网上象棋系统,实现了网上下棋的基本功能。
2 VB中WINSOCK控件简介
利用 WinSock 控件可以与远程计算机建立连接,并通过用户数据文报协议 (UDP)或者传输控制协议 (TCP)进行数据交换。这两种协议都可以用来创建客户与服务器应用Winsock它提供了访问 TCP 和 UDP 网络服务的方便途径。Visual Basic、Visual C++的开发人员都可使用它。为编写客户或服务器应用程序,不必了解 TCP 的细节或调用低级的 Winsock APIs。通过设置控件的属性并调用其方法就可轻易连接到一台远程机器上去,并且还可双向交换数据。CP 基础据传输协议允许创建和维护与远程计算机的连接。连接两台计算机就可彼此进行数据传输。如果创建客户应用程序,就必须知道服务器计算机名或者 IP 地址(RemoteHost 属性),还要知道进行“侦听”的端口(RemotePort 属性),然后调用 Connect 方法。如果创建服务器应用程序,就应设置一个收听端口(LocalPort 属性)并调用 Listen 方法。当客户计算机需要连接时就会发生 ConnectionRequest 事件。为了完成连接,可调用 ConnectionRequest 事件内的 Accept 方法。建立连接后,任何一方计算机都可以收发数据。为了发送数据,可调用 SendData 方法。当接收数据时会发生 DataArrival 事件。调用 DataArrival 事件内的 GetData 方法就可获取数据。UDP 基础用户数据报协议 (UDP) 是一个无连接协议。跟 TCP 的操作不同,计算机并不建立连接。另外 UDP 应用程序可以是客户机,也可以是服务器。为了传输数据,首先要设置计算机的RemoteHost计算机RemotePort属性设置为计算机B的LocalPort 属性然后,指定用于 P 连接的 LocalPort 和 LocalIP SendData 方法来着手发送信息,还可以在 DataArrival 事件内的利用 GetData 方法来获取已发送的信息了。
3 网上象棋中的几个关键问题
3.1 如何将象棋中的棋子和棋盘的信息用计算机来描述出来
象棋中棋盘
象棋中棋盘共有九列,十行,共有9 ( 10 个点。我将显示器的最左下角看成是坐标原点,屏幕上方为Y轴的正方向,单位是1;屏幕的右方向看成是X轴的正方向,单位是1。然后用90个坐标(I,J)从(1,1)到(9,10)来表示这90个点的位置。
确定每个坐标点的物理地址。
首先给出坐标原点的物理坐标(X0,Y0),然后利用公式
X = X0+ (i1 - 1) * intColToCol
Y = Y0- (j1 - 1) * intRowToRow
其中intColToCol、intRowToRow分别表示棋盘列间距、行间距。
棋子
两方棋子共2 ( 16个,我自定义了记录类型qiZis ,它用域 index 、caption 、blnDeleted 、x、y分别表示棋子的序号、棋子的名称、是否被吃掉、在棋盘中的逻辑坐标的X值、Y值。外观上用命令按钮数组(其序号index从1到32)来代表棋子。
3.2 如何将象棋的规则如何转换成计算机算法
象棋中走子的规则如下:
“马走日、象走田、车走直路炮翻山 ”等等
上面的这些规则如何用计算机来描述出来,如何在计算机中来控制棋子的行走和吃子,这成了网上象棋的关键。我在实现这个系统的时候是采用下面的方案。
对于走子
首先取得用户点击鼠标的位置(通过窗体的MouseDown事件),然后找出90个坐标点中物理坐标最为相近的一个坐标点,记下它的逻辑坐标,然后通过函数blnCanMove(ByVal IndexMoved As Integer, ByVal oldX As Integer,
您可能关注的文档
- 体验沙疗过程中出现正常反应.doc
- 体验纽约米其林3星餐厅美食飨宴的“秘密武器”.docx
- 何剑明教授南图讲座《感受身边古代南唐》.doc
- 何处守候等你季节.doc
- 何冀平《天下第1楼》.doc
- 何江在哈佛大学2016毕业典礼上演讲(中英版个人简介).doc
- 何香凝的诗画试读和心路历程浅析.docx
- 余丰慧2008年十一月份博客文集.doc
- 余姚西站长途汽车站简介.doc
- 余庆县城关1小集体备课教案.2014.doc
- 北师大版小学数学三年级上册《寄书》教学设计.docx
- 统编版(部编版)语文二年级上册《雪孩子》教学设计.docx
- 统编版(部编版)语文二年级上册《八角楼上》教学设计.docx
- 北师大版小学数学三年级上册《长方形周长》教学设计.docx
- 北师大版小学数学三年级上册《丰收了》教学设计.docx
- 统编版(部编版)语文二年级上册《夜宿山寺》教学设计.docx
- 统编版(部编版)语文二年级上册《风娃娃》教学设计.docx
- 统编版(部编版)语文二年级上册《朱德的扁担》教学设计.docx
- 统编版(部编版)语文二年级上册《难忘的泼水节》教学设计.docx
- 统编版(部编版)语文二年级上册《纸船和风筝》教学设计.docx
文档评论(0)