前言

本项目是笔者和同学大二下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课程大作业设计:实现联网对战、实时聊天、多线程编程的五子棋项目相关推荐

  1. java课程大作业——学生教务系统(IDEA+SqlServer 2008)

    写在前面: 这学期学了java面向对象程序设计这门课(非计算机专业),这是本人的结课大作业,学的都是一些很基础很基础的东西,在网上找了一些资料,然后扩展了一下,最终做出来了一个最简单的学生教务管理系统 ...

  2. java期末大作业设计_java程序设计-期末大作业报告模板.doc

    云南大学软件学院报告 Java programming – final Report School of Software, Yunnan University 个人成绩 序号学号姓名成绩12345 ...

  3. HTML网页设计期末课程大作业 ~中国茶文化5页面带轮播(HTML+CSS+JS)~ 学生网页设计作业源码...

    HTML网页设计期末课程大作业 ~ 中国茶文化5页面带轮播(HTML+CSS+JS)~ 学生网页设计作业源码 临近期末, 你还在为HTML网页设计结课作业,老师的作业要求感到头大?HTML网页作业无从 ...

  4. HTML网页设计期末课程大作业 ~中国茶文化5页面带轮播(HTML+CSS+JS)~ 学生网页设计作业源码

    HTML网页设计期末课程大作业 ~ 中国茶文化5页面带轮播(HTML+CSS+JS)~ 学生网页设计作业源码 临近期末, 你还在为HTML网页设计结课作业,老师的作业要求感到头大?HTML网页作业无从 ...

  5. web网页设计期末课程大作业~超高仿英雄联盟LOL游戏官网设计与实现(HTML+CSS+JavaScript)...

    仿英雄联盟LOL游戏官网设计与实现(HTML+CSS+JavaScript) 关于HTML期末网页制作,大作业A+水平 ~游戏网页作业HTML+CSS+JavaScript实现,共有游戏首页 等页面! ...

  6. HTML网页设计期末课程大作业 :汽车网页——宝马轿车 6页 带背景音乐 学生网页设计作业HTML+CSS+JavaScript学生网页课程设计期末作业下载

    HTML网页设计期末课程大作业 :汽车网页--宝马轿车 6页 带背景音乐 学生网页设计作业HTML+CSS+JavaScript学生网页课程设计期末作业下载 临近期末, 你还在为HTML网页设计结课作 ...

  7. 24HTML5期末大作业:XXX 网站设计——指环王:护戒使者(13页) HTML+CSS+JavaScript HTML+CSS+JS网页设计期末课程大作业 web前端开发技术 web课程 网页规

    HTML5期末大作业:XXX 网站设计--指环王:护戒使者(13页) HTML+CSS+JavaScript HTML+CSS+JS网页设计期末课程大作业 web前端开发技术 web课程设计 网页规划 ...

  8. HTML5期末大作业:XXX 网站设计——指环王:护戒使者(13页) HTML+CSS+JavaScript HTML+CSS+JS网页设计期末课程大作业 web前端开发技术 web课程设计 网页规

    HTML5期末大作业:XXX 网站设计--指环王:护戒使者(13页) HTML+CSS+JavaScript HTML+CSS+JS网页设计期末课程大作业 web前端开发技术 web课程设计 网页规划 ...

  9. html网页设计期末大作业——生物科技化妆品网页(6页) HTML+CSS+JS网页设计期末课程大作业

    html网页设计期末大作业--生物科技化妆品网页(6页) HTML+CSS+JS网页设计期末课程大作业 常见网页设计作业题材有 个人. 美食. 公司. 学校. 旅游. 电商. 宠物. 电器. 茶叶. ...

最新文章

  1. 计算机应用基础课程是过程化考试吗,基于能力的计算机应用基础课程过程化考核标准构建与实施...
  2. Pat乙级 1034 有理数四则运算
  3. 硅谷增长专家 Ian Thiel 来华,首次揭秘数据驱动增长的道与术
  4. 权威公布:彻底搞清楚哪些笔记本和台式机主板能够支持42mm SATA M.2 NGFF(2242)接口的固态硬盘!!!...
  5. 任务——μ/COS-II读书笔记
  6. 知乎大神深入解析:单片机晶振脚原理是什么?
  7. CF966E-May Holidays【虚树,分块】
  8. java statement 返回类型,6.3 返回类型和返回语句 | Return type Return statement
  9. i7处理器好吗_笔记本电脑处理器是i5好还是i7好?为什么?
  10. 《JavaScript 模式》读书笔记
  11. 【渝粤教育】国家开放大学2018年秋季 1374T班级管理 参考试题
  12. 自带CA ,sha256 哈希签名,2048 位加密 脚本,通用
  13. 「2020目标一」项目管理PMP
  14. windows7下制作苹果U盘启动盘
  15. 【转载】手机UC浏览器缓存视频合并方法
  16. 性能测试中的服务器数据监控
  17. OSS简单上传下载整理
  18. IDEA打开Maven项目一直indexing或 scanning files to index导致整个idea页面卡住 解决方法
  19. CIC 滤波器——不同长度的单级CIC滤波器的频谱特性
  20. Loaded plugins: fastestmirror, langpacks Loading mirror speeds from cached hostfile Could not retrie

热门文章

  1. 简单的解决textarea文本框内容换行,对应到页面的内容也换行的问题
  2. 【应用场景】智能定位胸牌帮你识别高质量月嫂
  3. vscode保存自动格式化加逗号解决方法
  4. Pyecharts基本图:饼图
  5. 如何获得coredump
  6. 集线器、交换机和路由器(图解)
  7. .key+.cer 转成.jks
  8. linux http status404,解决问题:HTTP Status 404(The requested resource is not avail
  9. 数据库种类发展史和大数据下的数据库(NoSQL)
  10. python做后端的优势_python做后端好吗