- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第16章 网络中国象棋 本章介绍Java下的基于UDP编程方法制作的网络中国象棋。 1、棋盘 棋子活动的场所,叫做棋盘,在长方形的平面上,绘有九条平行的竖线和十条平行的横线相交组成,共九十个交叉点,棋子就摆在这些交叉点上。中间第五、第六两横线之间未画竖线的空白地带,称为河界,整个棋盘就以河界分为相等的两部分;两方将帅坐镇、画有米字方格的地方,叫做九宫。 2、棋子 象棋的棋子共三十二个,分为红黑两组,各十六个,由对弈双方各执一组,每组兵种是一样的,各分为七种: 红方:帅、仕、相、车、马、炮、兵 黑方:将、士、象、车、马、炮、卒 其中帅与将、仕与士、相与象、兵与卒的作用完全相同,仅仅是为了区分红棋和黑棋。 网络中国象棋界面 16.2 关键技术 UDP协议的全称是用户数据报(User Datagram Protocal),在网络中它与TCP协议一样用于处理数据报。在OSI模型中, UDP位于第四层——传输层,处于IP协议的上一层。UDP有不提供数据报分组、组装以及不能对数据报排序的缺点。也就是说,当报文发送之后,是无法得知其是否安全完整到达的。 本章基于UDP编程方法制作的网络中国象棋 使用包下的DatagramSocket和DatagramPacket类,可以非常方便地控制用户数据报文。下面就对这两个类进行介绍。 16.2 关键技术 DatagramPacket类 DatagramPacket类用于处理报文,它将Byte数组、目标地址和目标端口等数据包装成报文或者将报文拆卸成Byte数组。应用程序在产生数据报时应该注意,TCP/IP规定数据报文大小最多包含65507个,通常主机接收548个字节,但大多数平台能够支持8192字节大小的报文。 DatagramPacket的常用方法有: getAddress()、setAddress(InetAddress) 得到、设置数据报地址。 getDate()、setDate(byte [ ] buf) 得到、设置数据报内容。 getLength()、setLength(ing length) 得到、设置数据报长度。 getPort()、setPort(int port) 得到、设置端口号。 16.2 关键技术 DatagramSocket类 DatagramSocket类在客户端创建数据报套接字与服务器端进行通信连接,并发送和接受数据报套接字。虽然有多个构造方法可供选择,但创建客户端套接字最便利的选择是DatagramSocket()函数,而服务器端则是DatagramSocket(int port)函数。如果未能创建套接字或绑定套接字到本地端口,那么这两个函数都将抛出一个SocketException对象。一旦程序创建了DatagramSocket对象,那么程序分别调用send(DatagramPacket p)和 receive(DatagramPacket p)来发送和接收数据报。 16.2 关键技术 DatagramSocket类 常用方法: connect(InetAddress address, int port) 连接指定地址。 disconnect() 断开套接字连接。 close() 关闭数据报套接字。 getInetAddress() 得到套接字所连接的地址。 getLocalAddress() 得到套接字绑定的主机地址。 getLocalPort() 得到套接字绑定的主机端口号。 getPort() 得到套接字的端口号。 reseive(DatagramPacket p) 接收数据报。 send(DatagramPacket p) 发送数据报。 16.3 网络中国象棋设计思路 16.3.1棋盘表示 棋盘表示就是使用一种数据结构来描述棋盘及棋盘上的棋子,我们使用一个二维数组Map。一个典型的中国象棋棋盘是使用 9 ×10 的二维数组表示。每一个元素代表棋盘上的一个交点。一个没有棋子的交点所对应的元素是-1。一个二维数组Map保存了当前棋盘的布局。当Map[x,y]=i时说明此处是棋子i,否则-1此处为空。程序中下棋的棋盘界面使用如图16-1所示图片资源。 16.3 网络中国象棋设计思路 16.3.2 棋子表示 16.3 网络中国象棋设计思路 16.3.2 棋子表示 16.3 网络中国象棋设计思路 16.3.3 走棋规则 对于象棋来说,有马走日,象走田等一系列复杂的规则。走法产生是博弈程序中一个相当复杂而且耗费运算时间的方面。不过,通过良好的数据结构,可以显著地提高生成的速度。 程序中IsAbleToPut(firstchess, x, y)函数实现判断是否能走棋返回逻辑值,这代码最复杂。其中参数含义如下: firstchess代表走的棋子对
您可能关注的文档
- Internet 实用教程 作者 张强华 吕新平 第二章.ppt
- Internet 实用教程 作者 张强华 吕新平 第九章.ppt
- Internet 实用教程 作者 张强华 吕新平 第六章.ppt
- Internet 实用教程 作者 张强华 吕新平 第七章.ppt
- Internet 实用教程 作者 张强华 吕新平 第五章.ppt
- Internet 实用教程 作者 张强华 吕新平 第一章.ppt
- Internet核心原理与应用技术 作者 郭银章 第2章.ppt
- Internet核心原理与应用技术 作者 郭银章 第4章.ppt
- Internet核心原理与应用技术 作者 郭银章 第5章.ppt
- Internet核心原理与应用技术 作者 郭银章 第7章.ppt
- Java游戏编程原理与实践教程 作者 陈锐 夏敏捷 葛丽萍 第17章 RGP走迷宫游戏.ppt
- Java游戏编程原理与实践教程 作者 陈锐 夏敏捷 葛丽萍 第20章 2.5D游戏.ppt
- Java游戏程序设计教程 第2版 作者 何青 第1章 计算机游戏概述.ppt
- Java游戏程序设计教程 第2版 作者 何青 第7章 角色与场景的交互.ppt
- Java游戏程序设计教程 第2版 作者 何青 第8章 声音效果设定.ppt
- Java游戏程序设计教程 第2版 作者 何青 第9章 完善游戏规则.ppt
- Java游戏程序设计教程 第2版 作者 何青 第10章 游戏关卡设计.ppt
- Java游戏程序设计教程 第2版 作者 何青 第12章 Greenfoot简介.ppt
- Java游戏程序设计教程 第2版 作者 何青 第13章 游戏设计案例详解.ppt
- Java语言程序设计 工业和信息化普通高等教育“十二五”规划教材 作者 相洁 呼克佑 第1章 概述.ppt
最近下载
- 2025年院感知识理论考试题库+答案.docx VIP
- 配合协调与服务承诺.docx VIP
- 14《称空气》课件 科学三年级上册(苏教版2025).pptx
- 晚期消化道肿瘤临床规范诊疗新进展题库答案-2025年华医网继续教育.docx VIP
- 工程协调配合措施及承诺.docx VIP
- 医院信息科笔试、面试题(附答案).docx VIP
- 施工协调配合的承诺与措施.pdf VIP
- 医院信息科计算机考试精彩试题(附答案).docx
- 2025年最新人教版七年级(初一)数学上册教学计划及进度表(新课标,新教材).docx
- 2025至2030地毯和室内装饰清洁服务行业项目调研及市场前景预测评估报告.docx
文档评论(0)