Java课程大作业设计:实现联网对战、实时聊天、多线程编程的五子棋项目
前言
本项目是笔者和同学大二下Java课的时候的课程设计项目,该五子棋游戏的客户端可以实现联网对战、实时聊天、自定义昵称、对在线玩家并发出对战邀请、悔棋、撤回聊天消息、逃跑等多种功能,而服务端可以看到在线玩家列表、配对玩家列表、玩家实时上线下线等功能。总的来说,功能比较齐全,代码中也有详细注解思路,是非常不错的新手入门项目。
通过该项目,可以学会并熟悉Java界面设计、网络编程、五子棋逻辑代码实现、异常处理、多线程编程、输入输出流控制等等Java基础技术。
本项目一共分为客户端和服务器端,一般来说是一台机子作为服务器,另外两台作为客户端,服务端可以对客户端进行玩家处理等等,还有用于展示的答辩PPT也会一同发出来。可以直接拿去作为课程作业。(网盘链接在文章最后)
最终的课程展示PPT与全套代码的网盘链接将放在本文的最后一部分!
如下图所示,分别是客户端的对战界面与代码中的详细注释。
项目展示
1、界面展示
这是客户端运行后的界面,可以自行查看当前登录服务器之后的全部在线用户,并发出挑战申请。
服务端可以看到在线的玩家列表,并看到匹配列表。
2、运行展示
代码讲解
客户端一共有6类包:
服务器端一共有5类包:
1、客户端UI设计代码
客户端整体界面采用BorderLayout的布局:通过读取绝对路径来获取图片,由于需要频繁读getAbsolutePath返回值,因此我们封装了getSourcePath方法简化代码。
异常处理:获取图片的过程中使用了异常处理。若不能够获取图片,则抛出异常,后通过“手动画图”方式处理异常。
2、客户端实现socket联网代码
3、输入输出流
4、重构线程run()代码
5、聊天功能实现
课程设计总结及百度云盘链接
最难的部分主要用到Socket网络编程和网络传输协议。将各种用户操作请求和聊天信息通过字符消息包装和区分,而后在服务端来判断和解析不同的请求。
服务端将所有客户端存在Map集合里,将玩家配对信息存在另外的map集合,以此来管理配对玩家之间的游戏互动。大致原理就是用一个HashMapManager来管理,当客户端发来请求,服务端先根据客户端id检索客户端是否已经存在配对列表里,如果有,找到与之配对的玩家,并将客户端发来的请求解析后将消息发给与之对应的客户端,达到交互的功能。
百度网盘链接如下:
链接:https://pan.baidu.com/s/1coPhaRT3LmHEcB_OOMZgSw?pwd=2kql
提取码:2kql
Java课程大作业设计:实现联网对战、实时聊天、多线程编程的五子棋项目相关推荐
- java课程大作业——学生教务系统(IDEA+SqlServer 2008)
写在前面: 这学期学了java面向对象程序设计这门课(非计算机专业),这是本人的结课大作业,学的都是一些很基础很基础的东西,在网上找了一些资料,然后扩展了一下,最终做出来了一个最简单的学生教务管理系统 ...
- java期末大作业设计_java程序设计-期末大作业报告模板.doc
云南大学软件学院报告 Java programming – final Report School of Software, Yunnan University 个人成绩 序号学号姓名成绩12345 ...
- HTML网页设计期末课程大作业 ~中国茶文化5页面带轮播(HTML+CSS+JS)~ 学生网页设计作业源码...
HTML网页设计期末课程大作业 ~ 中国茶文化5页面带轮播(HTML+CSS+JS)~ 学生网页设计作业源码 临近期末, 你还在为HTML网页设计结课作业,老师的作业要求感到头大?HTML网页作业无从 ...
- HTML网页设计期末课程大作业 ~中国茶文化5页面带轮播(HTML+CSS+JS)~ 学生网页设计作业源码
HTML网页设计期末课程大作业 ~ 中国茶文化5页面带轮播(HTML+CSS+JS)~ 学生网页设计作业源码 临近期末, 你还在为HTML网页设计结课作业,老师的作业要求感到头大?HTML网页作业无从 ...
- web网页设计期末课程大作业~超高仿英雄联盟LOL游戏官网设计与实现(HTML+CSS+JavaScript)...
仿英雄联盟LOL游戏官网设计与实现(HTML+CSS+JavaScript) 关于HTML期末网页制作,大作业A+水平 ~游戏网页作业HTML+CSS+JavaScript实现,共有游戏首页 等页面! ...
- HTML网页设计期末课程大作业 :汽车网页——宝马轿车 6页 带背景音乐 学生网页设计作业HTML+CSS+JavaScript学生网页课程设计期末作业下载
HTML网页设计期末课程大作业 :汽车网页--宝马轿车 6页 带背景音乐 学生网页设计作业HTML+CSS+JavaScript学生网页课程设计期末作业下载 临近期末, 你还在为HTML网页设计结课作 ...
- 24HTML5期末大作业:XXX 网站设计——指环王:护戒使者(13页) HTML+CSS+JavaScript HTML+CSS+JS网页设计期末课程大作业 web前端开发技术 web课程 网页规
HTML5期末大作业:XXX 网站设计--指环王:护戒使者(13页) HTML+CSS+JavaScript HTML+CSS+JS网页设计期末课程大作业 web前端开发技术 web课程设计 网页规划 ...
- HTML5期末大作业:XXX 网站设计——指环王:护戒使者(13页) HTML+CSS+JavaScript HTML+CSS+JS网页设计期末课程大作业 web前端开发技术 web课程设计 网页规
HTML5期末大作业:XXX 网站设计--指环王:护戒使者(13页) HTML+CSS+JavaScript HTML+CSS+JS网页设计期末课程大作业 web前端开发技术 web课程设计 网页规划 ...
- html网页设计期末大作业——生物科技化妆品网页(6页) HTML+CSS+JS网页设计期末课程大作业
html网页设计期末大作业--生物科技化妆品网页(6页) HTML+CSS+JS网页设计期末课程大作业 常见网页设计作业题材有 个人. 美食. 公司. 学校. 旅游. 电商. 宠物. 电器. 茶叶. ...
最新文章
- 计算机应用基础课程是过程化考试吗,基于能力的计算机应用基础课程过程化考核标准构建与实施...
- Pat乙级 1034 有理数四则运算
- 硅谷增长专家 Ian Thiel 来华,首次揭秘数据驱动增长的道与术
- 权威公布:彻底搞清楚哪些笔记本和台式机主板能够支持42mm SATA M.2 NGFF(2242)接口的固态硬盘!!!...
- 任务——μ/COS-II读书笔记
- 知乎大神深入解析:单片机晶振脚原理是什么?
- CF966E-May Holidays【虚树,分块】
- java statement 返回类型,6.3 返回类型和返回语句 | Return type Return statement
- i7处理器好吗_笔记本电脑处理器是i5好还是i7好?为什么?
- 《JavaScript 模式》读书笔记
- 【渝粤教育】国家开放大学2018年秋季 1374T班级管理 参考试题
- 自带CA ,sha256 哈希签名,2048 位加密 脚本,通用
- 「2020目标一」项目管理PMP
- windows7下制作苹果U盘启动盘
- 【转载】手机UC浏览器缓存视频合并方法
- 性能测试中的服务器数据监控
- OSS简单上传下载整理
- IDEA打开Maven项目一直indexing或 scanning files to index导致整个idea页面卡住 解决方法
- CIC 滤波器——不同长度的单级CIC滤波器的频谱特性
- Loaded plugins: fastestmirror, langpacks Loading mirror speeds from cached hostfile Could not retrie
热门文章
- 简单的解决textarea文本框内容换行,对应到页面的内容也换行的问题
- 【应用场景】智能定位胸牌帮你识别高质量月嫂
- vscode保存自动格式化加逗号解决方法
- Pyecharts基本图:饼图
- 如何获得coredump
- 集线器、交换机和路由器(图解)
- .key+.cer 转成.jks
- linux http status404,解决问题:HTTP Status 404(The requested resource is not avail
- 数据库种类发展史和大数据下的数据库(NoSQL)
- python做后端的优势_python做后端好吗