java五子棋课程设计

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

目录1绪论......................................................................................................11.1课程设计意义...........................................................................11.2课设目的...................................................................................11.3课设要求...................................................................................12网络五子棋介绍..................................................................................22.1网络五子棋介绍.......................................................................22.2游戏玩法...................................................................................23系统整体设计......................................................................................33.1整体设计...................................................................................33.2系统流程图...............................................................................44原理分析..............................................................................................54.1服务器和客户端通信机制.......................................................54.2多线程机制...............................................................................75服务器的设计与实现..........................................................................85.1服务器监听...............................................................................85.2传递信息...................................................................................96客户端设计与实现............................................................................106.1客户端界面设计.....................................................................116.1.1GUI图形界面设计.......................................................126.1.2注册监听者...................................................................136.2连接服务器.............................................................................146.3传递信息.................................................................................146.4棋盘数据结构.........................................................................156.5判断输赢算法.........................................................................166.6背景音乐.................................................................................177设计实现............................................................................................188总结....................................................................................................20谢辞...........................................................................................................21参考文献...................................................................................................21华东交通大学课程设计11绪论1.1课程设计意义五子棋是起源于中国古代的传统黑白棋种之一。五子棋不仅能增强思维能力,提高智力,而且富含哲理,有助于修身养性。经过一个学期的学习,使我对Java有了一定的了解。但要深入理解Java语言,单靠上课是不够的。必须通过课程设计,设计一个比较大的程序,才能更深一步地理解Java语言。在这次课程中,我选择了网络五子棋作为课题。编写网络五子棋游戏要利用到Socket网络编程技术和多线程。通过这次课程设计,熟悉Java的GUI图形界面设计,网络Socket编程和多线程编程。1.2课设目的通过课程设计,使学生理论联系实际,在程序设计实践中进一步了解JAVA程序设计方法掌握类和对象的基本编程方法,熟悉GUI图形界面编程技术,初步了解Socket编程方法。1.3课设要求通过课程设计完成一个网络五子棋游戏。由服务器和客户端组成。在Internet中不同用户使用客户端通过服务器与其它玩家连接。进行五子棋网络对战或聊天。程序中要实现GUI图形界面的棋盘、黑子、白子功能,设计棋局存储数据结构,实现开始、重来、退出等基本功能,实现输赢自动判别算法,实现网络对战功能,背景音乐播放功能等。网络五子棋游戏122网络五子棋介绍2.1网络五子棋介绍五子棋是起源于中国古代的传统黑白棋种之一。五子棋不仅能增强思维能力,提高智力,而且富含哲理,有助于修身养性。五子棋既有现代休闲的明显特征“短、平、快”,又有古典哲学的高深学问“阴阳易理”;它既有简单易学的特性,为人民群众所喜闻乐见,又有深奥的技巧和高水平的国际性比赛;它的棋文化源远流长,具有东方的神秘和西方的直观;既有“场”的概念,亦有“点”的连接。它是中西文化的交流点,是古今哲理的结晶。网络五子棋是一般五子棋的网络版,没有加入人机对战功能。本软件使两个不同计算机的使用者通过一定的网络连接,达到两人对战的功能。首先运行服务器监听客户端连接请求。运行客户端与服务器相连,若连接成功,则进入游戏。选择房间,一个房间最多两个人,人满后,双方可以开始游戏。2.2游戏玩法网络五子棋规则:棋盘采用15条横线×15条坚线组成交叉的每个点都可以放棋。本游戏至少需要二个客户端才能进行游戏。客户端与服务器连接成功后,进入游戏大厅(房间号为0),选择一个大于0的房间号,如果该房间未满,即小于两个人,则可进入。点“游戏开始”,处于等待状态。如果对方也点击了“游戏开始”。双方就可以在网上进行对战了。在对战的同时还可以聊天,可以在同一房间内私聊,也可以发送消息给所有在线的用户。游戏分黑白两方,每局由规定黑方先行。黑方玩家移动鼠标在棋盘中点击行棋。当黑方行棋完毕,转由白方行棋。同色棋子在棋盘上形成横、竖、斜形成“五子相连”则获胜。如果弃权,则判为输。华东交通大学课程设计33系统整体设计3.1整体设计网络五子棋是采用网络协议为TCP/IP的网上对弈游戏,运用“客户端-服务器“(c/s)网络架构模式。实现用户通过Internt连接在任何地方与不同玩家进行对战。服务器可以创建任意多局游戏。通过使用多线程和网络套接字SOCKET来实现游戏之间的通讯,它是基于点对点的通讯。开始让服务器初始化建立服务器套接字SOCKET,基于某个端口PORT,服务器始终处于监听状态。客户端是动作的发起者,何时发出申请由客户端决定。客户端向服务器发出申请,服务器给予响应。打开客户端套接字SOCKET,连接到服务器端的地址ADDRESS和端口PORT。连接建立后,创建一个SOCKET实例,并开始一个线程,监听该客户端请求。服务器继续监听其它用户的连接。服务器通过数据输入流从客户端接收信息,并且通过数据输出流把相应的信息发送给客户端。客户端发送请求和响应接收到的各种信息。在服务器和客户端之间传递的消息格式是采用“[消息类别]+内容“组成的,服务器和客户端在传递消息的过程,根据消息的类别来进行相关的操作。比如要发送聊天信息,则在客户端发送的过程中,自动加上[MSG]在要发送的消息前面,服务器接收到客户端发来的消息,用startsWith()的方法来读取消息头部,如果等于”[MSG]“,进行一步判定是为群聊还是私聊,分别调用不同的方法向客户端发送聊天内容。图3-1网络五子棋游戏143.2系统流程图服务器流程图:图1-2图3-2客户端流程图:图3-3图3-3华东交通大学课程设计54原理分析4.1服务器和客户端通信机制Socket是面向客户/服务器模型设计的,网络上的两个程序通过一个双向的通讯连接实现数据的交换,这个双向链路的一端称为一个Socket。Socket通常用来实现客户方和服务方的连接。客户程序可以向Socket写请求,服务器将处理此请求,然后通过Socket将结果返回给用户。在java中使用套接字相当简单,JavaAPI为处理套接字的通信提供了一个类java.net.Socket。使得编写网络应用程序相对容易。JAVA支持流套接字(streamsocket)和数据报套接字(datagramsocket)。流套接字使用TCP(TransmissionControlProtocol,传输控制协议)进行数据传输,而数据报套接字使用UDP(UserDatagramProtocol,用户数据报协议)。Socket(主机,port)(2)请求连接(3)建立Socket客户端InputStreamOutputStream(5)关闭连接(4)传送数据Socket通信服务器主机ServerSocket(port)accept()(1)等待连接(3)建立SocketInputStreamOutputStream连接成功(5)关闭连接图4-1在Java中Socket可以理解为客户端或者服务器端的一个特殊的对象,这个对象有两个关键的方

1 / 22
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功