Java快乐小游戏---数独

article/2025/11/10 13:06:54

最近学各种工具和框架概念学麻了,效果的养分和热情严重不足,背负着要搞黄面试,自己做了两个小游戏。

在这里插入图片描述

demo用的是JDK17,不过没用到很复杂的ApI应该没有兼容性问题.

在刚开始想组合数独的时候想着这在每行每列里进行重复性判断,思路图和代码如下

在这里插入图片描述

代码如下

  private void ResetTatget(int[][] target) {//弄一个生成1到9不重复的数组Random r = new Random();//播下种子//暂时不做同步处理int i = 0;//当J等于charge的时候再加一int k2 = 0;//记录要进行比较的行数for (; i < charge;) {int  j=0;
aa:            for (; j < charge;) {if (i != 0)//不为第一行时{//要求:该行不能与for([0][j]~[i][j]里的值相同)&&同行里相同//第一个数都要随机插入,否则无法比较//且全部执行完毕后k2才++if (j == 0)//为第N行第一个数时  比如第二行第一个{int i4 = r.nextInt(charge)+1;//判断是否与上面的行重复  从零行开始比较 比较I行for (int x = 0; x < i; x++) { //i==1 k2=0if (target[x][j] == i4) {continue aa;//若相同重新执行 }}//同列中没有相同的数,插入target[i][j] = i4;j++;} else {//第N行第二个以上  j=1//判断列是否重复  从零行开始比较 比较I行int i5 = r.nextInt(charge)+1;for (int x = 0; x < i; x++) { //i==1 k2=0int i7 = target[x][j];if (i7 == i5) {continue aa;}}//再判断当前行是否存在相同for (int k = 0; k < j; k++) {//如果当前行存在相同时重新刷新int i6 = target[i][k];if (i6 == i5) {continue aa;}}target[i][j]=i5;j++;if (j==charge)//赋值完【0】【8】后J为9(出去判断即结束循环){i++;}}} else {  //i==0if (j == 0)//为第一行第一个数时{int i2 = r.nextInt(charge) + 1;target[i][j] = i2; //0,0为i1j++;} else {   //此时J下标为1int i3 = r.nextInt(charge) + 1;//生成随机数for (int k1=0; k1 < j; k1++) {//如果存在相同时重新刷新且不执行++ 为1后if (target[i][k1] == i3) {continue aa;}}target[i][j] = i3;//插入j++;if (j==charge)//赋值完【0】【8】后J为9(出去判断即结束循环){i++;}}}}}}
//这长度教我的杨广武看了都说好(doge)

本以为会顺顺利利的,结果显示数组的时候直接卡死在某个数字上,这个位置填哪个数字都不行

在这里插入图片描述

想着这个数组不行,进入了死循环的话就再利用核心代码重新刷新就好,想了用boolean值,用秒数等都出了好多的错误。

实在不行,找我的GPT小助手在线提供答案,思路和核心代码如下

生成随机数模块—第一轮使用,没分析第二轮

在这里插入图片描述

    private boolean fillBox(int[][] grid, int row, int col) {Random random = new Random();int num;for (int i = 0; i < 3; i++) {//0,1,2for (int j = 0; j < 3; j++) {//0,1,2do {num = random.nextInt(SIZE) + 1;//生产0到9的随机数} while (!isValid(grid, row, col, num));//当数字与当前行列没有冲突时grid[row + i][col + j] = num; //第一轮[0,0]-->[2,2]  第二轮[3,3]-->[5,5] //填满了对角线周围是空的}}return true;}

先利用该方法生成了斜对角线后,进行每个数字的递归

在这里插入图片描述

思路图和代码如下

在这里插入图片描述

private boolean fillRemaining(int[][] grid, int i, int j) {  //grid 二维数组,i=0,j=3if (j >= SIZE && i < SIZE - 1) {//0和3都小于  J大于等于9且I小于8,开始判断下一行i = i + 1;j = 0;}if (i >= SIZE && j >= SIZE) {//i和j都为9时结束return true;}if (i < 3) { //当I<3时跳过遍历前3位数if (j < 3) {j = 3;}} else if (i < SIZE - 3) {//当3<I<6时跳过遍历前3位数if (j == (i / 3) * 3) {j = j + 3;}} else {if (j == SIZE - 3) {//当I>6时跳过遍历后3位数 通过J等于6时实现i = i + 1;j = 0;if (i >= SIZE) {//结束插入return true;}}}//出现一个位置9个都重复则为False--方法会终止:不会再填补下一个位置for (int num = 1; num <= SIZE; num++) {  //执行1-9,且包含9if (isValid(grid, i, j, num)) {//当前的行和列+三格之内是否有重复的值 0.3不变 num1-9怕段是否符合要求grid[i][j] = num;//1-9开始按顺序赋于原始值if (fillRemaining(grid, i, j + 1)) {//判断自身的符合性结果 如符合返回Ture退出方法并终止return true;}grid[i][j] = EMPTY;}}return false;}

再经过遮挡+点击增加的功能+渲染+点击位置和显示数字的调整,数独就完成了


http://chatgpt.dhexx.cn/article/ks38Mubu.shtml

相关文章

使用selenium自动登陆b站 图片文字验证识别

文章目录 前言一. 反&#xff0c;反反爬虫1.反爬虫2.反反爬虫 二&#xff0c;超级鹰三.完整代码1.导包2.超级鹰接口3.连接手动开启的浏览器4.定位文本框标签5.图片文字识别6.文本处理&#xff0c;坐标处理7.导入刚刚py文件中的函数8.按文字顺序点击图片中的坐标9.登陆 四.完整代…

【小白学习记录】渗透测试之信息收集

网安小白第一次写文章&#xff0c;不喜勿喷&#xff0c;欢迎大佬评论区指错交流 目录 前言 一、渗透测试是什么&#xff1f; 二、信息收集 1.通过网页直接获取信息 2.ip收集 3.端口扫描 4.目录扫描 5.旁站收集 6.备案信息查询 总结 前言 随着互联网的快速发展&#xff0c;网…

用selenium全自动化爬取教务系统作业清单

写在前文&#xff1a;撰写本文仅用于学习交流&#xff0c;不承担因此带来任何的潜在风险和责任 文章目录 0 目的明确&#xff0c;限制和思考1 前置模块准备1.1 selenium安装及简单操作1.2 python lxml模块安装 2 代码撰写2.1 selenium操作网页2.1.1 元素定位2.1.2 验证码图片保…

python 突破b站验证码_Python爬虫模拟登陆哔哩哔哩(bilibili)并突破点选验证码功能...

写在前面 今天带给大家一个突破点选验证码的案例&#xff0c;利用爬虫模拟登陆哔哩哔哩&#xff0c;并且把一些采坑的地方给大家强调一下&#xff01; 一、需求分析 模拟登陆哔哩哔哩 网站链接: https://passport.bilibili.com/login 效果图如下&#xff1a; 验证成功后会自动跳…

向毕业妥协系列之机器学习笔记:决策树(一)

目录 一.决策树模型 二.学习过程 三.纯度&#xff08;熵&#xff09; 四.选择拆分信息增益 一.决策树模型 现在以识别猫为例&#xff0c;有三个特征&#xff0c;分别是耳朵&#xff0c;脸和胡须&#xff0c;然后每个特征都有两种输出&#xff08;等价于二元分类&#xff0…

求余数的各种方法

1.辗转相除法辗转相除法&#xff08;又名欧几里德法&#xff09; C语言中用于计算两个正整数a,b的最大公约数和最小公倍数&#xff0c;实质它依赖于下面的定理&#xff1a; a b0 gcd(a,b) gcd(b,a mod b) b!0根据这一定理可以采用函数嵌套调用和递归调用形式进行求两个数的最大…

matlab求余数

matlab求余数给出了两个函数&#xff1a;mod和rem&#xff0c;官方也给出了两者的区别&#xff1a; 根据需要选择合适的求余函数&#xff0c;记录一下。

rdnf-0.2

rdnf 0.2 思路 indradb indradb图数据库是基于kv存储引擎&#xff0c;主要是基于rocksdb。基本元素主要有三&#xff1a;Edge、Vertex、Property&#xff08;包含edge_property、vertex_property&#xff09;。 原理如下 VertexManager key&#xff1a;vertex.idvalue&#…

RDD是什么?

前言 本文隶属于专栏《1000个问题搞定大数据技术体系》&#xff0c;该专栏为笔者原创&#xff0c;引用请注明来源&#xff0c;不足和错误之处请在评论区帮忙指出&#xff0c;谢谢&#xff01; 本专栏目录结构和参考文献请见1000个问题搞定大数据技术体系 注意一些关于Spark Co…

AMD RDNA Architecture - AMD RDNA 架构

AMD RDNA Architecture - AMD RDNA 架构 https://www.amd.com/en/technologies/rdna Architected for Gaming - 为游戏而构建 The new RDNA architecture is designed for the next generation of efficient high-performance gaming. It’s the DNA that powers your games, …

Residual Dense Network for Image Super-Resolution(RDN)

摘要 1.问题背景&#xff1a;传统的深度CNN在图像超分辨率任务中取得了显著的成功&#xff0c;但是大部分基于深度CNN的SR模型没有充分利用来自原始低分辨率&#xff08;LR&#xff09;图像的层次特征&#xff0c;导致相对较低的性能。 2.创新点&#xff1a;为了解决这个问题…

一文带你初识RDMA技术——RDMA概念,特点,协议,通信流程

文章目录 1.RDMA概念2.RMDA与Socket2.1传统的TCP/IP通信2.2TCP/IP存在的问题 3.RDMA的特点3.1CPU offload3.2kernel bypass3.3zero copy3.4异步接口 4.RDMA通信协议InfiniBandRoCEiWARP 5.RDMA编程概述5.1传输操作5.2传输模式5.3相关概念5.4典型实例 6.RDMA通信过程6.1单向通信…

rDSN概览

原文链接&#xff1a;https://github.com/Microsoft/rDSN/wiki/overview rDSN(Robust Distributed System Nucleus)翻译成中文是高可用分布式系统核心&#xff0c;旨在提供一个健壮的、易于扩展、易于维护运营的分布式软件架构。对于分布式系统的开发人员来说&#xff0c;其提…

深度学习(二十二)——ESPCN, FSRCNN, VESPCN, SRGAN, DemosaicNet, MemNet, RDN, ShuffleSeg

https://antkillerfarm.github.io/ ESPCN ESPCN&#xff08;efficient sub-pixel convolutional neural network&#xff09;是创业公司Magic Pony Technology的Wenzhe Shi和Jose Caballero作品。该创业团队主要来自Imperial College London&#xff0c;目前已被Twitter收购。…

超分文章记录 SRCNN-FSRCNN-ESPCN-VDCN-DRCN-RDN-LapSRN-SRDenseNet-SRGAN

1.Learning a Deep Convolutional Network for Image Super-Resolution&#xff08;SRCNN 2014 ECCV &#xff09; 1、总结 第一篇用深度学习做超分的文章&#xff0c;就是用深度学习来表示传统方式。结构比较简单。 源码地址&#xff1a; SRCNN CODE 2、思路 先用 bicubic…

Introducing RDNA Architecture

Introducing RDNA Architecture The RDNA architecture white paper https://www.amd.com/system/files/documents/rdna-whitepaper.pdf The all new Radeon gaming architecture powering “Navi” 全新 Radeon 游戏架构为 Navi 提供动力 Table of Contents Introduction R…

Fluent案例:肾动脉RDN治疗过程的仿真

1 问题背景 肾动脉消融&#xff08;Renal denervation&#xff0c;简称RDN&#xff09;是一种治疗高血压的办法&#xff0c;其基本原理为利用插入肾动脉的电极消融导管进行射频消融&#xff0c;使肾动脉血管壁附近的交感神经因高温而损伤失活&#xff0c;减少神经系统过度活跃的…

LDAP 中的 RDN

什么是 RDN&#xff0c;RDN 和 DN 又有什么关系呢&#xff1f; 很多第一次接触到 LDAP 的童鞋&#xff0c;经常会被一堆名字搞得晕头转向。 RDN&#xff08;relative distinguished name&#xff09;中文翻译就是相对专有名字。 一般指dn逗号最左边的部分&#xff0c;如 cnb…

超分算法RDN:Residual Dense Network for Image Super-Resolution 超分辨率图像重建

这篇文章总结分析了ResNet 和DenseNet的优缺点&#xff0c;并将其结合&#xff0c;提出了新的结构ResidualDenseNet。文章中对ResNet 和DenseNet以及MemNet都进行了简单的对比分析。四篇原文都放在下面。 参考文档&#xff1a; RDN&#xff1a;https://arxiv.org/pdf/1802.0879…

图像超分算法小合集二:FSRCNN、DRCN、RDN、EDSR

目录 FSRCNNDRCNRDNEDSR 文章&#xff1a; FSRCNN : Accelerating the Super-Resolution Convolutional Neural Network DRCN: Deeply-Recursive Convolutional Network for Image Super-Resolution RDN: Residual Dense Network for Image Super-Resolution EDSR&#xff1a;E…