JAVA实现有趣的数独小游戏(附源码)


文章目录

作者:xcLeigh

文章地址:https://blog.csdn.net/weixin_43151418/article/details/146039002


JAVA实现有趣的数独小游戏(附源码),数独小游戏源码,窗体应用程序数独小游戏源码,界面风格干净整洁,内容条理清晰,小游戏分为简单、中等、困难三个等级,通关计时,快来试试你的最快通关记录吧。这个源码让你快速搭建自己的应用程序,注释完整,代码规范,各种风格都有,代码上手简单,代码独立,运行Main使用。

一、设计来源

本文章是分类专栏下的【JAVA实战案例

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

✂ 点击快速进入专栏

数独小游戏讲解

游戏规则:

数独(shù dú)是源自18世纪瑞士的一种数学游戏(一说起源于日本)。是一种运用纸、笔进行演算的逻辑游戏。玩家需要根据9×9盘面上的已知数字,推理出所有剩余空格的数字,并满足每一行、每一列、每一个粗线宫(3*3)内的数字均含1-9,不重复。

数独盘面是个九宫,每一宫又分为九个小格。在这八十一格中给出一定的已知数字和解题条件,利用逻辑和推理,在其他的空格上填入1-9的数字。使1-9每个数字在每一行、每一列和每一宫中都只出现一次,所以又称"九宫格"。

  • 注意:难度系数越高,难度越高,最大81!!!

1.1 主界面

数独小游戏源码窗体主界面,展示自己的logo和标题(这里可以自定义,可以扩展自己想要的风格),顶部四个导航菜单,游戏》编辑》查看》帮助》,可以跳转网页,也可以弹出对话框,更能保存游戏数据,还有前进后退功能。

1.2 游戏难度配置界面

菜单》游戏》新建游戏,进入配置游戏难度弹框,0-80,数字越大,难度越大,数独盘面是个九宫,每一宫又分为九个小格。在这八十一格中给出一定的已知数字和解题条件,利用逻辑和推理,在其他的空格上填入1-9的数字。使1-9每个数字在每一行、每一列和每一宫中都只出现一次,所以又称"九宫格"。
游戏难度配置1


游戏难度配置2

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实现有趣的数独小游戏(附源码) 点击下载

更多优质源码分享


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


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


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

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

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

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

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


① 🉑提供云服务部署 (有自己的阿里云);

② 🉑提供前端、后端、应用程序、H5、小程序、公众号、大作业等相关业务;

如🈶合作请联系我,期待您的联系。

:本文撰写于CSDN平台,作者:xcLeigh(所有权归作者所有),https://blog.csdn.net/weixin_43151418,如果相关下载没有跳转,请查看这个地址,相关链接没有跳转,皆是抄袭本文,转载请备注本文原地址。


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


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

相关推荐
小猪皮蛋粥7 分钟前
python画图
开发语言·python
Felven7 分钟前
A. The 67th Integer Problem
开发语言
zopple10 分钟前
Laravel7.x核心特性全解析
开发语言·php·laravel
wjs202410 分钟前
MVC 应用程序
开发语言
studyForMokey11 分钟前
【Android面试】Java专题 todo
android·java·面试
lly20240611 分钟前
ionic 模态窗口:全面解析与最佳实践
开发语言
小白学大数据13 分钟前
解决 Python 爬虫被限制:延迟抓取指令深度解析
开发语言·c++·爬虫·python
一只大袋鼠15 分钟前
MyBatis 特性(三):缓存、延迟加载、注解开发
java·数据库·笔记·sql·缓存·mybatis
qq_120840937123 分钟前
Three.js 工程向:EffectComposer 后处理链路与色彩管理
开发语言·前端·javascript
老毛肚27 分钟前
Redis高级
java·数据库·redis