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(防止抄袭,原文地址不可删除)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/68357.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Flink概述

一、Flink是什么 二、Flink特点 三、Flink vs SparkStreaming 表 Flink 和 Streaming对比 Flink Streaming 计算模型 流计算 微批处理 时间语义 事件时间、处理时间 处理时间 窗口 多、灵活 少、不灵活(窗口必须是批次的整数倍) 状态 有 …

基于SpringBoot的企业级工位管理系统【源码+文档+部署讲解】

系统介绍 基于SpringBootVue实现的企业级工位管理系统采用前后端分离架构方式,系统设计了管理员、员工两种角色,系统实现了用户登录与注册、个人中心、员工管理、部门信息管理、工位信息管理、使用情况管理、工位分配管理等功能。 技术选型 开发工具&…

【计算机体系结构、微架构性能分析】core 与 uncore 分别是哪一些部分?区分 core 和 uncore

在计算机体系结构中,Core 和 Uncore 是描述处理器内部架构的两个重要概念,尤其在多核处理器中更为常见。 1. Core(核心) Core 指的是处理器中的计算核心,是执行指令和处理数据的基本单元。每个核心都包含独立的执行单…

数据结构——线性表和顺序表

1、线性表的基本概念 1.1 定义 线性结构是简单且常用的数据结构,而线性表则是一种典型的线性结构 存储数据,最简单,最有效的方法是吧它们存储在一个线性表中 一个线性表是n个元素的有限序列。每个元素在不同的情况下有不同的含义&#xff0c…

Windows图形界面(GUI)-QT-C/C++ - QT 窗口属性

公开视频 -> 链接点击跳转公开课程博客首页 -> ​​​链接点击跳转博客主页 目录 标题栏 基本概念 设置窗口标题 隐藏标题栏 UI编辑器 窗口关闭事件 窗口大小调整事件 窗口移动事件 自定义标题栏 菜单栏 基本概念 设置菜单栏(API) 设置菜单栏(UI) 工具栏 …

Linux系统离线部署MySQL详细教程(带每步骤图文教程)

1、登录官网下载对应的安装包 MySQL :: Developer Zone 2、将压缩包上传到服务器上,这里直接上传到/usr/local路径上 使用sftp工具上传到/usr/local目录上 3、解压压缩包 tar -xf mysql-8.0.39-linux-glibc2.17-x86_64.tar.xz 4、将mysql-8.0.39-linux-glibc2.17…

网络安全技术之计算机安全

计算机安全之访问控制策略 访问控制是网络安全防范和保护的主要策略,它的主要任务是保证网络资源不被非法使用和非常访问。它也是维护网络系统安全、保护网络资源的重要手段。各种安全策略必须相互配合才能真正起到保护作用,但访问控制可以说是保证网络…

leetcode刷题记录(六十一)——73. 矩阵置零

(一)问题描述 73. 矩阵置零 - 力扣(LeetCode)73. 矩阵置零 - 给定一个 m x n 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 。请使用 原地 [http://baike.baidu.com/item/%E5%8E%9F%E5%9…

QT 如何禁止QComboBox鼠标滚轮

一般情况下,QComboBox会相应鼠标的滚轮事件,即当鼠标停靠在QComboBox上方时,滚动鼠标滚轮,QComboBox的选项会发生切换。但这或许并不是我们希望所出现的,尤其是当QComboBox嵌入在QScrollArea中时,用户只是想…

【蓝桥杯】43689.包子凑数

题目描述 小明几乎每天早晨都会在一家包子铺吃早餐。他发现这家包子铺有 𝑁 种蒸笼,其中第 𝑖 种蒸笼恰好能放 𝐴𝑖 个包子。每种蒸笼都有非常多笼,可以认为是无限笼。  每当有顾客想买 𝑋 个包…

CV与NLP经典大模型解读

一。llm与lora微调策略解读 (1)文本大模型 llama:meta开源语言模型(咱们能负担得起下游任务了)。 lora:绘你模型你也得能训练的动才行(咱们也能微调下游任务)。loradiffusion。 self-instruct:下游任务得规矩些,输入与输出都得有一个标准格式。 peft:将上面三个…

ESP8266-01S的WIFI功能AT指令

1、ATCWMODE——设置wifi模式(STA/AP/STAAP) 设置指令&#xff1a;ATCWMODE<mode> 参数说明&#xff1a;1:station模式 2:sofAP模式 3:stationsofAP模式 查询指令&#xff1a;ATCWMODE? 参数说明&#xff1a;1:station模式 2:sofAP模式 …

Dexie.js内存管理技巧:在大型数据集操作中避免浏览器崩溃

Dexie.js 内存管理技巧&#xff1a;避免浏览器崩溃 在使用 Dexie.js 操作 大型数据集 时&#xff0c;如果不注意内存管理&#xff0c;可能会导致浏览器内存溢出&#xff08;OOM&#xff0c;Out of Memory&#xff09;或崩溃。因此&#xff0c;以下 内存管理技巧 可用于优化性能…

K8S集群常用命令

1&#xff0c;查看pod kubectl get pods -A 查看所有的pod kubectl get pods 这个只查看namespace为default下的pod&#xff0c;也就是只查看默认命名空间下的pod kubectl get pod -A -o wide 查看所有的pod&#xff0c;并且放出的信息更全&#xff08;包含了pod的ip&#xff0…

人机交互(包含推荐软件)

视觉交互、语音交互、笔式交互、触觉交互、虚拟环境交互。 主要的研究方面包括&#xff1a;人机交互界面表示模型与设计方法、可用性工程、可用性评估模型和方法、多模态智能交互技术、智能交互认知技术、语音识别交互、web界面交互设计、移动界面交互设计。 交互设计流程&am…

解锁未来情感科技:AI 机器人 Ropet 搭载的前沿智能黑科技

2025年的国际消费电子产品展览会&#xff08;CES&#xff09;上&#xff0c;一只可爱的“毛绒玩具”成了全场焦点。 当然&#xff0c;这并不是一个单纯的玩偶&#xff0c;而是和《超能陆战队》的大白一样温暖的陪伴机器人。 相信有很多人和小编一样&#xff0c;当年看完《超能…

C++ ranges

C20新增 ranges 新特性 任何可以迭代的对象都可以使用 ranges。头文件&#xff1a;#include 注&#xff1a; std::views是std::ranges::views的别名 常用方法&#xff1a; 1.遍历 正序遍历&#xff1a;for(int i:v) 逆序遍历&#xff1a;for(int i:v|reverse) 2.判断是否为空…

HarmonyOS 鸿蒙 ArkTs(5.0.1 13)实现Scroll下拉到顶刷新/上拉触底加载,Scroll滚动到顶部

HarmonyOS 鸿蒙 ArkTs(5.0.1 13)实现Scroll下拉到顶刷新/上拉触底加载 效果展示 使用方法 import LoadingText from "../components/LoadingText" import PageToRefresh from "../components/PageToRefresh" import FooterBar from "../components/…

# [游戏开发] Unity中的碰撞与触发器实现:从基础到应用

在游戏开发中,碰撞检测是一个非常普遍且关键的问题。如何判断一个物体是否碰到另一个物体,通常是通过计算物体间的距离或使用专门的物理引擎来实现。随着技术的发展,现代游戏引擎提供了更为便捷和高效的方式——触发器,它通过事件驱动机制,极大简化了碰撞检测和响应过程。…

Flink(八):DataStream API (五) Join

1. Window Join Window join 作用在两个流中有相同 key 且处于相同窗口的元素上。这些窗口可以通过 window assigner 定义&#xff0c;并且两个流中的元素都会被用于计算窗口的结果。两个流中的元素在组合之后&#xff0c;会被传递给用户定义的 JoinFunction 或 FlatJoinFunct…