当前位置: 首页 > news >正文

JAVA实现五子棋小游戏(附源码)

在这里插入图片描述
在这里插入图片描述

文章目录

  • 一、设计来源
    • 捡金币闯关小游戏讲解
    • 1.1 主界面
    • 1.2 黑棋胜利界面
    • 1.3 白棋胜利界面
  • 二、效果和源码
    • 2.1 动态效果
    • 2.2 源代码
  • 源码下载
  • 更多优质源码分享

作者:xcLeigh
文章地址:https://blog.csdn.net/weixin_43151418/article/details/145161039


JAVA实现五子棋小游戏(附源码),五子棋小游戏源码,窗体应用程序五子棋小游戏源码,内置双人对战和AI对战两种模式,黑白对弈,五子连起为胜利。界面风格干净整洁,内容条理清晰。这个源码让你快速搭建自己的应用程序,注释完整,代码规范,各种风格都有,代码上手简单,代码独立,可以直接用程序打开,运行Main使用。

一、设计来源

本文章是分类专栏下的【JAVA实战案例
】里面的一篇,专栏里面包括网站,窗体应用程序的源码,技术点解析等案列源码,让你更加熟练掌握JAVA。持续更新中,欢迎大家关注,一起学习交流。

✂ 点击快速进入专栏

捡金币闯关小游戏讲解

游戏规则:

        五子棋起源于中国,是全国智力运动会竞技项目之一,是一种两人对弈的纯策略型棋类游戏。这一源于中国古代的传统黑白棋种,在现代有多种称谓。在日文里,它被称为连珠;英文中则被称为Gobang

        双方分别使用黑白两色的棋子,下在棋盘直线与横线的交叉点上,先形成五子连珠者获胜。

  • 注意:棋子聚集容易获胜!!!

1.1 主界面

        五子棋小游戏主界面,展示自己的logo和标题(这里可以自定义,可以扩展自己想要的风格),游戏分为双人对战和人机对战两种模式,选择模式后,点击棋盘开始下棋。

在这里插入图片描述

1.2 黑棋胜利界面

        黑棋胜利界面,展示自己的logo和标题(这里可以自定义,可以扩展自己想要的风格),游戏分为双人对战和人机对战两种模式,选择模式后,点击棋盘开始下棋。

在这里插入图片描述

1.3 白棋胜利界面

        白棋胜利界面,展示自己的logo和标题(这里可以自定义,可以扩展自己想要的风格),游戏分为双人对战和人机对战两种模式,选择模式后,点击棋盘开始下棋。

在这里插入图片描述

二、效果和源码

2.1 动态效果

    这里是完整的效果演示,可在此代码基础上更加完善功能,支持扩展自己的风格,可以删减内容,打造属于自己的五子棋小游戏。

JAVA实现五子棋小游戏(附源码)

2.2 源代码

        这里是部分技术点的代码演示,更多代码,资源文件,见下面的 源码下载 ,里面有所有代码资源和相关说明。或者直接在这里 下载源码,如有其他技术问题,请私信博主,博主看到后第一时间回复。

  • 绘制窗体
JFrame jf = new JFrame();
jf.setTitle("趣味五子棋");
jf.setResizable(false);
Image appIcon = Toolkit.getDefaultToolkit().getImage(FilePath("icon.png"));//窗口图标
jf.setIconImage(appIcon);
jf.setSize(725, 634);
// 设置退出进程的方法
jf.setDefaultCloseOperation(3);
// 设置居中显示
jf.setLocationRelativeTo(null);
  • 获取文件路径1

    当使用相对路径时,Java 会以当前类所在的目录(也就是类的字节码文件所在的目录)作为起始点去查找文件。所以如果txt文件和编译后的.class文件处于同一个目录下,直接写文件名就可以代表相对路径指向该文件了。不过需要注意的是,这种方式在不同的运行环境(比如从命令行运行或者在某些 IDE 中运行)可能会有细微差异,有时可能需要确保工作目录设置正确才能准确找到文件。

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;public class Main {public static void main(String[] args) {try {// 相对路径直接写文件名即可(假设同目录下有test.txt文件)String filePath = "test.txt";FileReader fileReader = new FileReader(filePath);BufferedReader bufferedReader = new BufferedReader(fileReader);String line;while ((line = bufferedReader.readLine())!= null) {System.out.println(line);}bufferedReader.close();} catch (IOException e) {e.printStackTrace();}}
}
  • 获取文件路径2

    System.getProperty("user.dir")可以获取到当前 Java 程序运行时所在的用户工作目录。通过这个方式获取的目录路径更明确,然后再使用File.separator(它会根据不同操作系统适配对应的路径分隔符,在 Windows 上是\,在 Linux 和 Mac 上是/)拼接上同目录下的txt文件名,这样组成的路径更具通用性,能在多种运行场景下较准确地定位到同目录下的txt文件,减少因工作目录等因素导致找不到文件的问题。

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;public class Main {public static void main(String[] args) {try {// 获取当前用户工作目录String currentDir = System.getProperty("user.dir");// 拼接上同目录下的txt文件名String filePath = currentDir + File.separator + "test.txt";FileReader fileReader = new FileReader(filePath);BufferedReader bufferedReader = new BufferedReader(fileReader);String line;while ((line = bufferedReader.readLine())!= null) {System.out.println(line);}bufferedReader.close();} catch (IOException e) {e.printStackTrace();}}
}

源码下载

注:源码下载在文章头部也可以点击下载,跟这里的是一样的

JAVA实现五子棋小游戏(附源码)点击下载
在这里插入图片描述

更多优质源码分享

  • 【百篇源码模板】html5各行各业官网模板源码下载

  • 【模板源码】html实现酷炫美观的可视化大屏(十种风格示例,附源码)

  • 【VUE系列】VUE3实现个人网站模板源码

  • 【HTML源码】HTML5小游戏源码

  • 【C#实战案例】C# Winform贪吃蛇小游戏源码


--------------- 业精于勤,荒于嬉 ---------------

请添加图片描述

--------------- 行成于思,毁于随 ---------------

     💢 关注博主 带你实现畅游前后端

     🏰 大屏可视化 带你体验酷炫大屏

     💯 神秘个人简介 带你体验不一样得介绍

     💘 为爱表白 为你那个TA,体验别致的浪漫惊喜

     🎀 酷炫邀请函 带你体验高大上得邀请


     ① 🉑提供云服务部署(有自己的阿里云);
     ② 🉑提供前端、后端、应用程序、H5、小程序、公众号、大作业等相关业务;
     如🈶合作请联系我,期待您的联系。
    :本文撰写于CSDN平台,作者:xcLeigh(所有权归作者所有),https://blog.csdn.net/weixin_43151418,如果相关下载没有跳转,请查看这个地址,相关链接没有跳转,皆是抄袭本文,转载请备注本文原地址。


     亲,码字不易,动动小手,欢迎 点赞 ➕ 收藏,如 🈶 问题请 留言(私信或评论),博主看见后一定及时给您答复,💌💌💌


原文地址:https://blog.csdn.net/weixin_43151418/article/details/145161039(防止抄袭,原文地址不可删除)

相关文章:

JAVA实现五子棋小游戏(附源码)

文章目录 一、设计来源捡金币闯关小游戏讲解1.1 主界面1.2 黑棋胜利界面1.3 白棋胜利界面 二、效果和源码2.1 动态效果2.2 源代码 源码下载更多优质源码分享 作者:xcLeigh 文章地址:https://blog.csdn.net/weixin_43151418/article/details/145161039 JA…...

kotlin的dagger hilt依赖注入

依赖注入(dependency injection, di)是设计模式的一种,它的实际作用是给对象赋予实例变量。 基础认识 class MainActivity : ComponentActivity() {override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceSta…...

速通Docker === 常用命令

目录 Docker命令 镜像操作 容器操作 基础操作 启动参数 容器内部操作 打包成指定文件 发布镜像 总结 镜像操作 容器操作 启动容器参数 容器内部操作 打包镜像 启动指定镜像的容器 发布镜像 Docker命令 启动一个nginx,并将它的首页改为自己的页面,发布…...

【redis】键的全局命令

Redis提供了一系列用于管理和操作键的全局命令。这些命令允许你查看、删除、迁移键,以及执行其他与键相关的操作。 有关全局通用类型的命令可以通过help generic命令来查看。有关命令的使用可以通过help 命令来查看,例如help keys。 KEYS keys&#x…...

深度学习-卷积神经网络实战文档注释

1、call 方法 是一个特殊的方法,它允许类的实例表现得像函数一样。也就是说,你可以使用圆括号 () 来调用一个实例,就像调用普通函数一样。 当你调用 model(input_data) 时,实际上是调用了模型的 __ call __ 方法,其会自…...

GR2103高压半桥栅极驱动芯片

产品简介 GR2103封装和丝印 GR2103是一款高性价比的高压半桥栅极驱动专用芯片,设计用于高压、高速驱动N型大功率 MOS管、IGBT管。内置欠压(UVLO)保护功能,防止功率管在过低的电压下工作,提高效率。内置防止直通功能…...

学习threejs,使用OrbitControls相机控制器

👨‍⚕️ 主页: gis分享者 👨‍⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍⚕️ 收录于专栏:threejs gis工程师 文章目录 一、🍀前言1.1 ☘️THREE.OrbitControls 相机控…...

说说Babylon.js中scene.deltaTime的大坑

诡异的问题 下面是给一个材质设置发光颜色周期变化和纹理偏移的代码,你能感觉到这里面可能出现的问题吗? var passTime 0;var uOffset 0;var deltaTime 0;function SetEmissiveColor() {passTime scene.deltaTime * 0.05;if(passTime > 6.2…...

【React】win系统环境搭建

动图更精彩 方案如下 在Visual Studio Code(VSCode)中搭建React开发环境是一个相对简单但非常重要的步骤,可以帮助你更高效地进行前端开发。以下是详细的步骤和配置指南: 一、准备工作 安装Visual Studio Code (VSCode)&#x…...

ThinkPHP 8的一对一关联

【图书介绍】《ThinkPHP 8高效构建Web应用》-CSDN博客 《2025新书 ThinkPHP 8高效构建Web应用 编程与应用开发丛书 夏磊 清华大学出版社教材书籍 9787302678236 ThinkPHP 8高效构建Web应用》【摘要 书评 试读】- 京东图书 使用VS Code开发ThinkPHP项目-CSDN博客 编程与应用开…...

Linux 下配置 Golang 环境

go sdk 下载环境:https://golang.google.cn/dl/选择对应的版本: 使用 wget 直接拉包下载到服务器中 wget https://golang.google.cn/dl/go1.23.4.linux-amd64.tar.gz如果找不到 wget 命令,yum 下载 wget yum -y install wget配置 go 的环境…...

爬虫后的数据处理与使用(使用篇--实现分类预测)

()紧接上文,在完成基本的数据处理后,接下来就是正常的使用了。当然怎么用,确实需要好好思考一下~ 上文:爬虫后的数据处理与使用(处理篇) 前言: 一般来说,我…...

arcgis提取不规则栅格数据的矢量边界

效果 1、准备数据 栅格数据:dem或者dsm 2、栅格重分类 分成两类即可 3、新建线面图层 在目录下选择预先准备好的文件夹,点击右键,选择“新建”→“Shapefile”,新建一个Shapefile文件。 在弹出的“新建Shapefile”对话框内“名称”命名为“折线”,“要素类型”选…...

python milvus 如何检查有多少个collection 以及多少个index,多少个database

在 Milvus 中,可以通过 Python 客户端(`pymilvus`)来检查当前有多少个集合(Collection)、索引(Index)和数据库(Database)。以下是具体的方法: --- ### 1. 检查有多少个集合(Collection) 使用 `list_collections()` 方法可以列出当前连接的所有集合。 ```python…...

2006-2020年各省工业增加值数据

2006-2020年各省工业增加值数据 1、时间:2006-2020年 2、来源:国家统计局、统计年鉴 3、指标:行政区划代码、地区名称、年份、工业增加值 4、范围:31省 5、指标解释:工业增加值是指工业企业在一定时期内以货币形式…...

【MySQL】使用C语言链接

🌈 个人主页:Zfox_ 🔥 系列专栏:MySQL 目录 一:🔥 MySQL connect 🦋 Connector / C 使用🦋 mysql 接口介绍🦋 完整代码样例 二:🔥 共勉 一&#…...

Vue篇-07

Vue UI组件库 一、移动端常用的UI组件库 1.1、Vant 1.2、Cube UI 1.3、Mint UI 二、PC端常用的UI组件库 2.1、Element UI Element - The worlds most popular Vue UI framework 安装: 按需引入: 135_尚硅谷Vue技术_element-ui按需引入_哔哩哔哩_b…...

使用 LLaMA-Factory 微调大模型

本文将介绍如下内容: 一、搭建 Docker Container 环境二、配置大模型训练环境三、构建、配置数据集四、训练大模型 一、搭建 Docker Container 环境 笔者此前多篇文章说明,此处不再赘述,可参考:NGC容器中快速搭建Jupyter环境 E…...

数据仓库的复用性:模型层面通用指标体系、参数化模型、版本化管理

在数据仓库设计中,复用性 是一个关键原则,它不仅能提升数据资产的使用效率,还能降低开发成本、优化系统运维。下面将从 模型层面的复用性、通用指标体系、参数化模型、版本化管理 四个方面进行详细介绍,并提供可落地的设计方案。 …...

Web APP 阶段性综述

Web APP 阶段性综述 当前,Web APP 主要应用于电脑端,常被用于部署数据分析、机器学习及深度学习等高算力需求的任务。在医学与生物信息学领域,Web APP 扮演着重要角色。在生物信息学领域,诸多工具以 Web APP 的形式呈现&#xff…...

渲染学进阶内容——模型

最近在写模组的时候发现渲染器里面离不开模型的定义,在渲染的第二篇文章中简单的讲解了一下关于模型部分的内容,其实不管是方块还是方块实体,都离不开模型的内容 🧱 一、CubeListBuilder 功能解析 CubeListBuilder 是 Minecraft Java 版模型系统的核心构建器,用于动态创…...

质量体系的重要

质量体系是为确保产品、服务或过程质量满足规定要求,由相互关联的要素构成的有机整体。其核心内容可归纳为以下五个方面: 🏛️ 一、组织架构与职责 质量体系明确组织内各部门、岗位的职责与权限,形成层级清晰的管理网络&#xf…...

华为OD机试-食堂供餐-二分法

import java.util.Arrays; import java.util.Scanner;public class DemoTest3 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseint a in.nextIn…...

跨链模式:多链互操作架构与性能扩展方案

跨链模式:多链互操作架构与性能扩展方案 ——构建下一代区块链互联网的技术基石 一、跨链架构的核心范式演进 1. 分层协议栈:模块化解耦设计 现代跨链系统采用分层协议栈实现灵活扩展(H2Cross架构): 适配层&#xf…...

PAN/FPN

import torch import torch.nn as nn import torch.nn.functional as F import mathclass LowResQueryHighResKVAttention(nn.Module):"""方案 1: 低分辨率特征 (Query) 查询高分辨率特征 (Key, Value).输出分辨率与低分辨率输入相同。"""def __…...

IP如何挑?2025年海外专线IP如何购买?

你花了时间和预算买了IP,结果IP质量不佳,项目效率低下不说,还可能带来莫名的网络问题,是不是太闹心了?尤其是在面对海外专线IP时,到底怎么才能买到适合自己的呢?所以,挑IP绝对是个技…...

Mysql8 忘记密码重置,以及问题解决

1.使用免密登录 找到配置MySQL文件,我的文件路径是/etc/mysql/my.cnf,有的人的是/etc/mysql/mysql.cnf 在里最后加入 skip-grant-tables重启MySQL服务 service mysql restartShutting down MySQL… SUCCESS! Starting MySQL… SUCCESS! 重启成功 2.登…...

快刀集(1): 一刀斩断视频片头广告

一刀流:用一个简单脚本,秒杀视频片头广告,还你清爽观影体验。 1. 引子 作为一个爱生活、爱学习、爱收藏高清资源的老码农,平时写代码之余看看电影、补补片,是再正常不过的事。 电影嘛,要沉浸,…...

代码规范和架构【立芯理论一】(2025.06.08)

1、代码规范的目标 代码简洁精炼、美观,可持续性好高效率高复用,可移植性好高内聚,低耦合没有冗余规范性,代码有规可循,可以看出自己当时的思考过程特殊排版,特殊语法,特殊指令,必须…...

【 java 虚拟机知识 第一篇 】

目录 1.内存模型 1.1.JVM内存模型的介绍 1.2.堆和栈的区别 1.3.栈的存储细节 1.4.堆的部分 1.5.程序计数器的作用 1.6.方法区的内容 1.7.字符串池 1.8.引用类型 1.9.内存泄漏与内存溢出 1.10.会出现内存溢出的结构 1.内存模型 1.1.JVM内存模型的介绍 内存模型主要分…...