Java小游戏——五子棋

本文详细描述了一款Java实现的五子棋游戏,包括用户登录功能、文件存储用户数据、棋盘设计、鼠标操作和胜利条件判断。作者分享了个人负责的全部任务,强调了自学在项目中的重要性,以及遇到的问题和解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、项目简介

1.功能描述

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

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

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

Java五子棋全代码_java五子棋代码-优快云博客

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值