Java游戏编程原理与实践教程第16章 网络象棋游戏.pptVIP

  • 4
  • 0
  • 约4.1千字
  • 约 18页
  • 2019-07-17 发布于辽宁
  • 举报

Java游戏编程原理与实践教程第16章 网络象棋游戏.ppt

第16章 网络中国象棋 本章介绍Java下的基于UDP编程方法制作的网络中国象棋。 1、棋盘 棋子活动的场所,叫做棋盘,在长方形的平面上,绘有九条平行的竖线和十条平行的横线相交组成,共九十个交叉点,棋子就摆在这些交叉点上。中间第五、第六两横线之间未画竖线的空白地带,称为河界,整个棋盘就以河界分为相等的两部分;两方将帅坐镇、画有米字方格的地方,叫做九宫。 2、棋子 象棋的棋子共三十二个,分为红黑两组,各十六个,由对弈双方各执一组,每组兵种是一样的,各分为七种: 红方:帅、仕、相、车、马、炮、兵 黑方:将、士、象、车、马、炮、卒 其中帅与将、仕与士、相与象、兵与卒的作用完全相同,仅仅是为了区分红棋和黑棋。 网络中国象棋界面 16.2 关键技术 UDP协议的全称是用户数据报(User Datagram Protocal),在网络中它与TCP协议一样用于处理数据报。在OSI模型中, UDP位于第四层——传输层,处于IP协议的上一层。UDP有不提供数据报分组、组装以及不能对数据报排序的缺点。也就是说,当报文发送之后,是无法得知其是否安全完整到达的。 本章基于UDP编程方法制作的网络中国象棋 使用java.net包下的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 棋子表示 棋子设计相应的类,每种棋子图案使用对应的图片资源如图 。 为设计程序方便,将32个棋子对象赋给了数组chess。chess[i]中下标i的含义是:如果i小于16,那么说明它属于黑方的棋子,否则是红方的棋子。这样就可以得到我们所需要的全部象棋棋子了。黑方对应的是 0至15,红方则用 16至31。 16.3 网络中国象棋设计思路 16.3.2 棋子表示 棋子设计相应的类,每种棋子图案使用对应的图片资源如图 。

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档