Java实现五子棋对战小游戏【完整版】
【摘要】 前言大家好,今天用swing技术写一个单机版的五子棋对战小游戏,文中示例思路清晰、代码完整,适合Java初学者尝试实战,供大家参考。效果展示编辑目录效果展示一、游戏界面二、悔棋与重开功能项目介绍总体需求实现过程代码展示主框架棋子类棋盘类项目结构总结效果展示一、游戏界面二、悔棋与重开功能项目介绍五子棋是一种两人对弈的纯策略型棋类游戏,亦称串珠连,五子是中国民间非常熟知的一个古老棋种,...
前言
大家好,今天用swing技术写一个单机版的五子棋对战小游戏,文中示例思路清晰、代码完整,适合Java初学者尝试实战,供大家参考。
效果展示
目录
效果展示
一、游戏界面
二、悔棋与重开功能
项目介绍
五子棋是一种两人对弈的纯策略型棋类游戏,亦称串珠连,五子是中国民间非常熟知的一个古老棋种,它因操作简单、逻辑性强,深受喜爱,本项目基于Java技术,开发了一个操作简单、界面简洁、功能较完整的“五子棋”游戏。通过本游戏的开发,达到初学者学习和熟悉软件开发流程的目的。
总体需求
本程序主要完成五子棋游戏的简单操作,用户通过鼠标完成游戏过程。需要满足以下几点要求:
1.实现五子棋简易窗口界面。
2.实现黑白棋轮流下棋功能。
3.实现自动判断获胜方功能。
4.实现悔棋与重开游戏功能。
实现过程
1.绘制窗体对象。
2.UI设计(包括游戏区域、黑白棋子、按钮和标题区域)。
3.使用鼠标监听事件实现下棋。
4.连成五子判定获胜的实现。
代码展示
主框架
在主框架里有面板对象和两个按钮对象,分别是重新开始游戏按钮,悔棋按钮。还设置一个按钮事件类,用来监听两个按钮,并作出相应的动作,代码如下:
棋子类
棋子类里有棋子的坐标,半径和颜色;还有棋子的构造函数。代码如下:
棋盘类
我们要对棋盘的边距,网格的距离进行赋值,设定棋盘的初始状态,如默认黑子先下,定义一个棋子类数组,来保存棋子对象,再定义一个字符串二维数组函数来保存颜色,用来判断输赢,用匿名内部类来处理当棋子在面板上移动时的一些状态。
再对下棋时鼠标按下时的动作事件类进行解析,当在网格上下棋时,判断是否在棋盘内和判断网格上有没有棋子,当棋子在棋盘内并且网格上没有棋子,我们就开始画棋子,将棋子对象和颜色保存,接下来判断是否胜利,判断棋盘是否下满,如果没有继续下棋。
使用函数paintComponent来对棋盘和棋子进行画图,对棋子进行绘图时,将最后一个棋子设为红色。
最后就是判断棋子输赢的函数win,用字符串数组保存的棋子的颜色来进行判断所在行和列有没有五个棋子相连,判断撇和捺行的棋子有没有五个相连的,如果有则某位棋子胜利。代码如下:
项目结构
本程序用于Java初学者学习,共封装三个类,分别是主框架ChessJFrame类、棋子Chess类、棋盘ChessBord类,结构简单,框架明了。
总结
本项目的设计思路与“五子棋”游戏一致,程序在界面设计与功能实现上还有许多不足,但该项目的实现对于Java编程新手实战能力的提升有很大作用,在编写该项目的过程中,对编程者算法的设计能力与面向对象编程的理解都有深刻的考验。
程序在一定程序上还有还有缺陷,仅用于初学者学习,欢迎各位指正。
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
作者其他文章
评论(0)