没有合适的资源?快使用搜索试试~ 我知道了~
五子棋游戏要利用到Socket网络编程技术和多线程,Java的GUI图形界面设计
资源推荐
资源详情
资源评论
目录
1 绪论 0
1.1 课程设计意义 0
2.1 网络五子棋介绍 1
2.2 游戏玩法 2
4.1 服务器和客户端通信机制 5
4.2 多线程机制 7
5.1 服务器监听 9
5.2 传递信息 9
6.1 客户端界面设计 12
6.1.1 GUI 图形界面设计 12
6.1.2 注册监听者 13
6.2 连接服务器 15
6.3 传递信息 15
6.5 判断输赢算法 16
6.6 背景音乐 18
1 绪论
1.1 课程设计意义
五子棋是起源于中国古代的传统黑白棋种之一。五子棋不仅能增强思
维能力,提高智力,而且富含哲理,有助于修身养性。
经过一个学期的学习,使我对 Java 有了一定的了解。但要深入理解
Java 语言,单靠上课是不够的。必须通过课程设计,设计一个比较大的程
序,才能更深一步地理解 Java 语言。在这次课程中,我选择了网络五子棋
作为课题。编写网络五子棋游戏要利用到 Socket 网络编程技术和多线程。
通过这次课程设计,熟悉 Java 的 GUI 图形界面设计,网络 Socket 编程和多
线程编程。
网络五子棋游戏
1.2 课设目的
通过课程设计,使学生理论联系实际,在程序设计实践中进一步了解
JAVA 程序设计方法掌握类和对象的基本编程方法,熟悉 GUI 图形界面编程
技术,初步了解 Socket 编程方法。
1.3 课设要求
通过课程设计完成一个网络五子棋游戏。由服务器和客户端组成。在
Internet 中不同用户使用客户端通过服务器与其它玩家连接。进行五子棋网
络对战或聊天。
程序中要实现 GUI 图形界面的棋盘、黑子、白子功能,设计棋局存储数
据结构, 实现开始、重来、退出等基本功能, 实现输赢自动判别算法, 实现网
络对战功能, 背景音乐播放功能等。
2 网络五子棋介绍
2.1 网络五子棋介绍
五子棋是起源于中国古代的传统黑白棋种之一。五子棋不仅能增强思
维能力,提高智力,而且富含哲理,有助于修身养性。 五子棋既有现代休
闲的明显特征“短、平、快”,又有古典哲学的高深学问“阴阳易理”;它既有
简单易学的特性,为人民群众所喜闻乐见,又有深奥的技巧和高水平的国
际性比赛;它的棋文化源远流长,具有东方的神秘和西方的直观;既有“场”
的概念,亦有“点”的连接。它是中西文化的交流点,是古今哲理的结晶。
网络五子棋是一般五子棋的网络版,没有加入人机对战功能。本软件
使两个不同计算机的使用者通过一定的网络连接,达到两人对战的功能 。
首先运行服务器监听客户端连接请求。运行客户端与服务器相连,若连接
1
1
华东交通大学课程设计
成功,则进入游戏。选择房间,一个房间最多两个人,人满后,双方可以
开始游戏。
2.2 游戏玩法
网络五子棋规则:棋盘采用 15 条横线×15 条坚线组成交叉的每个点都
可以放棋。
本游戏至少需要二个客户端才能进行游戏。客户端与服务器连接成功
后,进入游戏大厅(房间号为 0),选择一个大于 0 的房间号,如果该房间未
满,即小于两个人,则可进入。点“游戏开始”,处于等待状态。如果对方也
点击了“游戏开始”。双方就可以在网上进行对战了。在对战的同时还可以聊
天,可以在同一房间内私聊,也可以发送消息给所有在线的用户。
游戏分黑白两方,每局由规定黑方先行。黑方玩家移动鼠标在棋盘中
点击行棋。当黑方行棋完毕,转由白方行棋。同色棋子在棋盘上形成横、
竖、斜形成 “五子相连”则获胜。如果弃权,则判为输。
3 系统整体设计
3.1 整体设计
网络五子棋是采用网络协议为 TCP/IP 的网上对弈游戏,运用“客户端-
服务器“(c/s)网络架构模式。实现用户通过 Internt 连接在任何地方与不同玩
家进行对战。服务器可以创建任意多局游戏。
通过使用多线程和网络套接字 SOCKET 来实现游戏之间的通讯,它是
基于点对点的通讯。开始让服务器初始化建立服务器套接字 SOCKET,基
于某个端口 PORT,服务器始终处于监听状态。客户端是动作的发起者,何
时发出申请由客户端决定。客户端向服务器发出申请,服务器给予响应。
2
网络五子棋游戏
打开客户端套接字 SOCKET,连接到服务器端的地址 ADDRESS 和端口
PORT。连接建立后,创建一个 SOCKET 实例,并开始一个线程,监听该客
户端请求。服务器继续监听其它用户的连接。服务器通过数据输入流从客
户端接收信息,并且通过数据输出流把相应的信息发送给客户端。客户端
发送请求和响应接收到的各种信息。
在服务器和客户端之间传递的消息格式是采用“[消息类别]+内容“组成
的,服务器和客户端在传递消息的过程,根据消息的类别来进行相关的操
作。比如要发送聊天信息,则在客户端发送的过程中,自动加上[MSG]在要
发送的消息前面,服务器接收到客户端发来的消息,用 startsWith()的方法
来读取消息头部,如果等于”[MSG]“,进行一步判定是为群聊还是私聊,分
别调用不同的方法向客户端发送聊天内容。
图 3-1
3.2 系统流程图
服务器流程图:图 1-2
1
3
剩余23页未读,继续阅读
资源评论
sheng靖you
- 粉丝: 0
- 资源: 3
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功