五子棋的Java实现
📅 2026/7/1 5:35:29
👁️ 次浏览
title: Java Swing实现五子棋游戏人机对战AI完整源码date: 2026-06-30categories: 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(aiPlayerBoard.BLACK)?Board.WHITE:Board.BLACK;intbestRow-1,bestCol-1,maxScore-1;for(intr0;rBoard.SIZE;r){for(intc0;cBoard.SIZE;c){if(board.getPiece(r,c)!Board.EMPTY)continue;intattackScoreevaluatePosition(board,r,c,aiPlayer);intdefendScoreevaluatePosition(board,r,c,humanPlayer);inttotalScoreattackScore(int)(defendScore*1.1);if(totalScoremaxScore){maxScoretotalScore;bestRowr;bestColc;}}}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 写在最后源码已上传至 Giteehttps://gitee.com/SparkBool/gobang.git如果对你有帮助欢迎 ⭐ Star 支持本文为《面向对象程序设计(Java)》课程设计作品
分子动力学实战指南:5分钟掌握NVT/NPT系综选择技巧刚接触分子动力学模拟的研究者,往往会在软件参数配置界面陷入沉思——面对NVT、NPT等专业术语,该作何选择?本文将从实际应用场景出发,结合Python代码示例,…
📅 2026/7/1 5:35:29
作为常年投递 SCI、核心期刊的研究生,长期被科研论文绘图各类问题困扰:手动绘制机理图、数据统计图耗时数小时,导出分辨率不达标、配色不符合期刊规范,反复返修;专业软件学习门槛高,学生预算有限难以负担年…
📅 2026/7/1 5:35:29
更多请点击:
https://kaifayun.com
第一章:VMware虚拟机克隆技术全景概览 VMware虚拟机克隆是企业级虚拟化环境中实现快速部署、环境隔离与测试复现的核心能力之一。克隆操作并非简单复制磁盘文件,而是通过VMware vSphere平台或Workstation/…
📅 2026/7/1 5:35:29
Anthropic 在 2026 年 6 月 29 日正式推送了 Claude Code 的 v2.1.196 版本!作为 6 月份的收官之作,本版本在企业级合规治理(Governance)、Token 经济性(算力减负)以及后台复杂智能体长效流(Lon…
📅 2026/7/1 6:47:36
DeepSeek DSpark 深度解析:大模型推理加速,正在从「模型能力」转向「系统工程」TL;DR
场景:DeepSeek-V4-Flash / DeepSeek-V4-Pro 预览版生产推理、Eagle3 / DFlash 之后的下一代 speculative decoding 框架,以及围绕 draft model…
📅 2026/7/1 6:47:36
XPath定位神器:3分钟学会智能元素定位,提升80%开发效率 【免费下载链接】xpath-helper-plus 这是一个xpath开发者的工具,可以帮助开发者快速的定位网页元素。 项目地址: https://gitcode.com/gh_mirrors/xp/xpath-helper-plus
你是否曾…
📅 2026/7/1 6:47:36
3分钟搞定Windows PDF打印难题:PDFtoPrinter终极解决方案深度解析 【免费下载链接】PDFtoPrinter .Net Wrapper over PDFtoPrinter util allows to print PDF files. 项目地址: https://gitcode.com/gh_mirrors/pd/PDFtoPrinter
还在为Windows系统上的PDF打…
📅 2026/7/1 6:47:36
1. 项目概述:为什么SQL注入依然是Web安全的头号威胁?干了这么多年安全,我依然觉得SQL注入是每个开发者、运维乃至安全新手都必须跨过去的一道坎。它不像某些复杂的0day漏洞那样遥不可及,恰恰相反,它原理简单、危害巨大…
📅 2026/7/1 6:47:36
01 引入生产环境的 Vue
一句话理解
开发环境(development)的 Vue 带着大量警告提示和未压缩代码;生产环境(production)的 Vue 经过了压缩和 Tree-shaking,体积小、速度快。
为什么
Vue 在开发构建里会做很多…
📅 2026/7/1 6:45:35
目录
第一步:选对模板,省心一半
第二步:打开扫码点餐功能
开启功能按钮
桌台管理与桌码生成
第三步:个性化设计,打造品牌感
调整点餐页面
设置点餐规则 你还在让顾客站着排队点餐吗?2025年ÿ…
📅 2026/7/1 0:00:39
在业务中快速构建一个能理解私有文档、准确回答专业问题的智能助手,是很多开发团队面临的共同挑战。传统方案往往需要从零开始搭建复杂的 RAG(检索增强生成)系统,涉及文档解析、向量化、检索、大模型调用等多个环节,整…
📅 2026/7/1 0:00:39
FAE放射组学分析工具:医学影像特征探索的完整解决方案 【免费下载链接】FAE FeAture Explorer 项目地址: https://gitcode.com/gh_mirrors/fae/FAE
你是否曾经面对海量医学影像数据感到无从下手?想要从CT、MRI等影像中提取有价值的定量特征&#…
📅 2026/7/1 0:00:39
6个月前的2025年12月,Boris Cherny 公开宣布自己卸载了 IDE。一时间,Vibe Coding 成了全行业最热的话题。6个月后,当我们回过头来拉一份真实账本,发现事情远没有"一句话生成一个App"那么浪漫。本文从产品经理和研发两个…
📅 2026/6/30 10:04:37
引言:审计结束三个月了,审计员的权限还没关某城商行每年按照监管要求开展至少一次数据安全审计。审计期间,内审部门需要抽样检查各类业务数据——交易流水、客户信息、员工操作日志、权限配置记录。这些数据分布在不同系统中,审计…
📅 2026/6/30 6:54:54
目录
第一步:选对模板,省心一半
第二步:打开扫码点餐功能
开启功能按钮
桌台管理与桌码生成
第三步:个性化设计,打造品牌感
调整点餐页面
设置点餐规则 你还在让顾客站着排队点餐吗?2025年ÿ…
📅 2026/7/1 0:00:39
在业务中快速构建一个能理解私有文档、准确回答专业问题的智能助手,是很多开发团队面临的共同挑战。传统方案往往需要从零开始搭建复杂的 RAG(检索增强生成)系统,涉及文档解析、向量化、检索、大模型调用等多个环节,整…
📅 2026/7/1 0:00:39
FAE放射组学分析工具:医学影像特征探索的完整解决方案 【免费下载链接】FAE FeAture Explorer 项目地址: https://gitcode.com/gh_mirrors/fae/FAE
你是否曾经面对海量医学影像数据感到无从下手?想要从CT、MRI等影像中提取有价值的定量特征&#…
📅 2026/7/1 0:00:39