尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

五子棋的Java实现

五子棋的Java实现
📅 发布时间:2026/7/1 5:51:39

title: Java Swing实现五子棋游戏(人机对战+AI+完整源码)
date: 2026-06-30
categories: Java课程设计
tags: [Java, Swing, 五子棋, AI, 课设]


🎮 Java Swing实现五子棋游戏(人机对战+AI+完整源码)

📌 前言

这是《面向对象程序设计(Java)》课程设计作品,一个基于Java Swing + 2D Graphics的五子棋游戏。支持人人对战和人机对战两种模式,AI采用基于棋型评分的启发式搜索算法。

源码地址:https://gitee.com/SparkBool/gobang.git

运行环境:JDK 17+,双击 jar 包即可运行


🛠 技术栈

技术用途
Java Swing图形界面
Java 2D Graphics棋盘与棋子绘制
AI评分算法基于棋型评分的五子棋AI
文件存储比分持久化
MVC架构三层分包设计

🏗 系统架构

五子棋/ └── src/main/java/gobang/ ├── App.java 程序入口 ├── model/ 数据模型层 │ ├── Board.java 棋盘数据(15×15数组) │ └── MoveRecord.java 落子历史记录 ├── service/ 业务逻辑层 │ ├── GameService.java 游戏主逻辑 │ ├── WinChecker.java 胜负判定算法 │ └── AIEvaluator.java 五子棋AI评分算法 └── view/ 界面显示层 ├── MainFrame.java 主窗口(CardLayout) ├── MainMenuPanel.java 主菜单 ├── GamePanel.java 棋盘游戏界面 ├── GameOverPanel.java 游戏结束界面 ├── RulesPanel.java 规则说明 ├── StatsPanel.java 战绩统计 └── ...

🎯 功能展示

1. 主菜单

支持人人对战和人机对战两种模式选择。

2. 棋盘对战

  • 15×15 标准棋盘,鼠标悬停有半透明预览
  • 人机模式下,AI自动计算最佳位置落子
  • 右侧功能按钮:悔棋、认输、重开


3. 胜负判定 & 战绩

自动记录胜负场次,比分保存在本地文件,关闭程序不丢失。


🤖 AI 算法

AI采用基于棋型评分的启发式搜索,核心思想:

遍历所有空位 → 评估每个位置的棋型 → 综合打分 → 选最高分

评分规则:连五 > 活四 > 冲四 > 活三 > 眠三 > 活二

同时评估进攻分(自己的棋型)和防守分(对手的棋型),防守权重略高,对方快赢时必须堵。

// AI核心:遍历空位打分publicstaticint[]getBestMove(Boardboard,intaiPlayer){inthumanPlayer=(aiPlayer==Board.BLACK)?Board.WHITE:Board.BLACK;intbestRow=-1,bestCol=-1,maxScore=-1;for(intr=0;r<Board.SIZE;r++){for(intc=0;c<Board.SIZE;c++){if(board.getPiece(r,c)!=Board.EMPTY)continue;intattackScore=evaluatePosition(board,r,c,aiPlayer);intdefendScore=evaluatePosition(board,r,c,humanPlayer);inttotalScore=attackScore+(int)(defendScore*1.1);if(totalScore>maxScore){maxScore=totalScore;bestRow=r;bestCol=c;}}}returnnewint[]{bestRow,bestCol};}

🚀 运行方式

# 直接运行 jar 包java-jartarget/Gobang-1.0-jar-with-dependencies.jar# 或 Maven 打包mvn package-DskipTestsjava-jartarget/Gobang-1.0-jar-with-dependencies.jar

📝 写在最后

源码已上传至 Gitee:https://gitee.com/SparkBool/gobang.git

如果对你有帮助,欢迎 ⭐ Star 支持!


本文为《面向对象程序设计(Java)》课程设计作品

相关新闻

  • 前端开发者必读:CSRF攻击原理与实战防护指南
  • 面试八股文记录(一)-Android
  • YOLOv10模型改进-卷积层改进-第15篇: YOLOv10改进策略【卷积层】| ShuffleNetV2通道混洗

最新新闻

  • 别再只调fit_intercept了!手把手教你用Python实战scikit-learn LinearRegression的4个隐藏参数
  • 别再死记硬背了!用这3个核心公式,彻底搞懂电感在Buck电路里的工作模式(CCM/DCM/BCM)
  • 前端XSS攻击防御全解析:从原理到实战的完整安全方案
  • NVIDIA显卡隐藏设置完全解锁:Profile Inspector深度调优指南
  • SpringBoot+Vue学生宿舍报修系统:从零搭建到功能测试全流程指南
  • 0元打造家用云盘:旧笔记本变身NAS

日新闻

  • 2026年6月公司网站搭建最新热门渠道测评:四大低成本/零代码平台对比+避坑
  • 【Linux】Linux arm 编译QT程序,出现expected “}“报错
  • 【MATLAB例程】四基站二维AOA定位与距离辅助增强对比仿真。基于角度观测和测距修正的固定目标平面定位精度分析

周新闻

  • Windows字体自定义终极方案:No!! MeiryoUI完全指南
  • Deepin Boot Maker:告别命令行,3分钟制作Linux启动盘的智能解决方案
  • Plain Craft Launcher 2:重新定义你的Minecraft游戏体验

月新闻

  • 2026年6月公司网站搭建最新热门渠道测评:四大低成本/零代码平台对比+避坑
  • 【Linux】Linux arm 编译QT程序,出现expected “}“报错
  • 【MATLAB例程】四基站二维AOA定位与距离辅助增强对比仿真。基于角度观测和测距修正的固定目标平面定位精度分析

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号