Java小游戏——五子棋

一、项目简介

1.功能描述

此五子棋游戏添加了用户登录功能,用文件保存用户数据。实现了常见的现实五子棋游戏的基本功能(执棋轮换,悔棋,认输)。

参考了登录和注册功能,和五子棋棋盘设计,胜利判断方法。  

2.参考git地址或博客地址:

Java五子棋全代码_java五子棋代码-CSDN博客

Java实现五子棋小游戏(源代码)_java五子棋登录和注册资源-CSDN文库

3.个人负责任务

单人项目,负责全部任务。

二、功能构架图

三、个人任务简述

1. 完成的任务与功能

序号

完成功能与任务

描述

1

用户登录界面与功能

使用AWT和Swing创建用户图形界面。

并使用文件流的方式读写文件保存用户信息。

2

棋盘设计

主要包括界面大小设计,棋盘线条设计,

“星”位设计(五个黑点),重写了JPanel方法

3

鼠标操作

通过鼠标的操作在棋局范围内放棋子以及实现开始游戏、切换棋牌、悔棋、认输和退出功能。

4

Paint

重写了JPanel方法,绘制棋盘线条和棋子。

5

游戏胜利条件

我使用了一个二维数组,用棋局上的具体位置映射到二维数组上的抽象位置上。以此来进行相同五子是否连线的判断。

6

游戏图片读取

使用ImageIO.read()方法实现图片读取功能

2. Git提交记录截图:

四、本人负责功能任务详解

1. 用户登录界面与功能

使用AWT和Swing类包创建GUI

使用io输入输出流注册用户(登录程序与其大体一致,注册更复杂所以这里显示注册)

2. 界面设计

窗体的UI设计

棋盘的设计

绘制线条和特殊点位,加载背景图片

3. 鼠标操作

通过鼠标在不同范围内(相当于组件)的点击实现不同功能

1.游戏开始功能(将以前记录的棋子位置全部清零,状态变为游戏中)

2.切换棋盘功能

3.悔棋功能(将上一次下棋的位置置零)

4.认输功能

5.退出功能

4. Paint

绘制棋子和游戏信息提示框

5.游戏胜利条件

包括判断横向纵向和斜向

6. 游戏图片读取

五、游戏运行截图及说明

用户注册

username :lzx ;password :123

用户名存在判别:

用户登录

尝试性试错

游戏界面

游戏演示

规则:

1.白方先行,决出胜负后轮换。

2.先连成五子的一方胜出。

3.允许悔棋,但要另一方同意。(进行此操作时,游戏界面上有轮到白方/黑方,则操作由黑方/白方发起)

4.一方可以认输默认另一方游戏胜利。

这里先前界面上显示,轮到白方,认输后则黑方获胜。

6.重新开始游戏

可重新开始游戏先前若是白方先行,则现在黑方先行。

六、课程设计感想与展望

1.在设计用户登陆的功能时,注册功能出现了错误,每次注册都会把源文件的删除,通过网络查找解决方法,通过用文件流来实现数据的输入输出是一个很好的方法,它直接在原文件上进行操作。

2.画这个棋盘的线和“星”位是个难点,我依据建立二维坐标平面,然后在一个个分割单元后画一条线。还要考虑那个像素的位置一不小心就会画错(“星”),很累,不过把这个线画完之后棋子的绘制就了参考。

3.第一次把图像加载在这个界面里,非常的困难要限定什么坐标的范围,然后图像的大小什么的,还有什么图像的位数。

4.还有设置鼠标操作,等于是自己自学了好多知识。

5.做五子棋这个胜利条件判断要考虑每个棋子的六个方向,也是非常的复杂。

6.代码编写规范是稍微做了一下,代码的格式有一个快进键,可以自动整理,挺有用的。Alt+shife+f

7.这次Java课程设计,给我带来了巨大的收获:特别的一点是自学是大学真的非常重要的技能,还有获取知识的渠道,记录自己足迹的东西。具体而言,我学会了各种GUI设计类,MouseEvent事件类,image图像类的使用。

8.登录功能还存在一些问题,简单的密码可以登录,复杂的就有问题。

9.棋盘界面上那些鼠标可选的区域,想设置什么悬停会有那种颜色渐变有点困难(也许可以把区域换成组件)。

  • 35
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java五子棋程序带有数据库和服务器的设计如下: 首先,我们需要建立一个服务器,用于处理用户之间的连接和通信。可以使用Java的Socket编程来实现服务器端的程序。服务器端接收到客户端的连接请求后,可以创建一个线程来处理与该客户端的通信。服务器端还可以维护一个游戏大厅,记录所有客户端的登录状态和游戏状态。 其次,我们需要设计一个数据库来存储用户信息和游戏记录。可以使用MySQL等关系型数据库来存储用户的注册信息,包括用户名和密码等。在游戏进行过程中,可以在数据库中记录每一步棋的信息,用于复盘和回放。数据库还可以保存用户的胜负次数等统计信息。 在游戏的实现中,可以设计一个五子棋的棋盘类。该类可以包括棋盘的大小,棋盘的数组等信息。在每一步棋之后,将棋盘状态的变化保存到数据库中,并且向所有在线的客户端发送最新的棋盘状态,以便其他玩家进行观战或者继续对局。 另外,还可以设计一个玩家类来保存每个玩家的信息,包括用户名、密码、积分等。玩家类可以与数据库进行交互,用于用户注册、登录和查询个人信息等操作。 最后,为了避免玩家之间的冲突,可以设计一个规则类来判断游戏的胜负条件,包括获胜的子串长度、连续获胜次数等规则。在玩家下棋之后,规则类可以判断当前棋盘的状态,并通知玩家是否胜利。同时可以提供悔棋和求和等功能,以增加游戏的趣味性。 综上所述,一个带有数据库和服务器的Java五子棋程序的设计需要考虑服务器的建立、数据库的设计与操作、棋盘类与规则类的实现以及玩家的交互等方面。只有综合这些因素,才能够实现一个功能齐全、稳定可靠的五子棋游戏

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值