【教学类-43-11】 20231231 3*3宫格数独提取单元格坐标数字的通用模板(做成2*2=4套、3*2=6套)

 

背景需求:

1、以前做单元格填充,都是制作N个分开的单元格

(表格=8)

74f42848291e43a3a8259171792f8e55.png

2、这次做五宫格数独的Word模板,我图方便,就只用了一个大表格,第六行第六列隐藏框线,看上去就是分开的,实际还是一个表格(0)

94c22218bf8b442cb052184b87d0310a.png

我要提取中间4套5*5的坐标,就需要写四次XY

0cfd6d94088544ee88301e0e08a78be5.png

如果是6*3、9*9,这样的写法就太长了,要写6份,9份

所以,我需要设计一个简略的遍历代码,实现所有填充单元格坐标的提取

 

设计过程:

工具:AI对话大师

第1问

2449b9bbf4d949b1b7d5969e18599e2c.png

第2问

bf2c30ff11bd4f8ca02b5bad414bf872.png

 

第3问

064d107addfc4f15a68f50835b3a8f2c.png第4问

86142f4cec07495e9a0c6d83ec2f623c.png第5问——终于出现了我需要的结果

e10593dc8a7b40089d1876886f6efea7.png

测试1.1:3*3宫格(原始)

# 测试11*11格,2*2一共4套3*3 宫格grid_size = 7
subgrid_size = 3start_coordinates = [(0, 0), (0, 4), (4, 0), (4, 4)]
cell_coordinates = []for start_coord in start_coordinates:i, j = start_coordsubgrid_coordinates = []for x in range(subgrid_size):for y in range(subgrid_size):subgrid_coordinates.append((i + x, j + y))cell_coordinates.append(subgrid_coordinates)bg=[]# 打印结果
for coordinates in cell_coordinates:# print(coordinates) for c in  coordinates:# print(c)        # 元组 (1, 2) 样式s = ''.join(map(str, c))     # 元组 (1, 2) 转换为字符串 '12'# print(str(s))        #  '12'a1='%02d'%int(s[0])   #  '01'a2='%02d'%int(s[1])   #  '02'bg.append('{}{}'.format(a1,a2))  #  '0102'
print(bg)# 左上 第1套
# ['0000', '0001', '0002', 
# '0100', '0101', '0102', 
# '0200', '0201', '0202', # 右上 第2套
# '0004', '0005', '0006', 
# '0104', '0105', '0106', 
# '0204', '0205', '0206', # 左下 第3套
# '0400', '0401', '0402',
# '0500', '0501', '0502',
# '0600', '0601', '0602',# 右下 第4套
# '0404', '0405', '0406', 
# '0504', '0505', '0506', 
# '0604', '0605', '0606']

运行结果

c5daf163470a43c08542f7298cc44338.png测试2:3*3宫格(改坐标起始参数)

# 测试11*11格,2*2一共4套3*3 宫格
'''
目的:数独09 N宫格X乘Y套单元格计算,如何在一个表格里,找出所有填数字的单元格
以“3宫格”做2*2=4套,“3宫格”做3*2=6套为例
作者:阿夏(参考)
时间:2023年12月31日 13:35
'''
# import zfill# 几宫格
gg = 3
# 底边几套.底边看有2份
db=3
# 侧边几套 侧边看也是2份
cb=2# 棋盘格子数量,# 如果正方形:底边2*侧边2,就是3*3宫格 2*2=4套,底边边格子数量就是3*2+1=7,侧边格子数量就是3*2+1=7,
# 如果长方形:底边3*侧边2,就是3*3宫格,3*2=6套 底边格子数量就是3*3+2=11,侧边格子数量就是3*2+1=7,
# if db==cb:
db_size = gg*db+(db-1)
cb_size=  gg*cb+(cb-1)
print('{}宫格排列底{}侧{}共{}套,底边格子数{}'.format(gg,db,cb,db*cb,db_size ))
print('{}宫格排列底{}侧{}共{}套,侧边格子数{}'.format(gg,db,cb,db*cb,cb_size ))# 确定每个宫格的左上角坐标 00 04 40  44
bgszm=[]
for a in range(0,cb_size,gg+1):    # 0-11每隔4,写一个坐标  侧边yfor b in range(0,db_size,gg+1):  # 0-11每隔4,写一个坐标  侧边xbgszm.append('{}{}'.format('%02d'%a,'%02d'%b))
print(bgszm)
# 3宫格排列底3侧2共6套,底边格子数11
# 3宫格排列底3侧2共6套,侧边格子数7
# ['0000', '0004', '0008', '0400', '0404', '0408']# 转为元祖
start_coordinates = [(int(s[0:2]), int(s[2:4])) for s in bgszm]
cell_coordinates = []# 推算每个起始格子后面的单元格数字
for start_coord in start_coordinates:i, j = start_coordsubgrid_coordinates = []for x in range(gg):for y in range(gg):subgrid_coordinates.append((i + x, j + y))cell_coordinates.append(subgrid_coordinates)# 打印结果(元祖样式)
bg=[]
for coordinates in cell_coordinates:# print(coordinates)     # [(4, 8), (4, 9), (4, 10), (5, 8), (5, 9), (5, 10), (6, 8), (6, 9), (6, 10)]for c in  coordinates:print(c)        # 元组 (1, 2) 样式s = ''.join(str(num).zfill(2) for num in c)   # zfill将元组 (1, 2) 转换为字符串 '0102' 特别是(5,10)这种必须转成2个数字0510print(str(s))        #  '12'bg.append(s)  #  '0102'
print(bg)# # 3*3宫格的2*2=4套题坐标
# # 左上 第1套
# # ['0000', '0001', '0002', 
# # '0100', '0101', '0102', 
# # '0200', '0201', '0202', # # 右上 第2套
# # '0004', '0005', '0006', 
# # '0104', '0105', '0106', 
# # '0204', '0205', '0206', # # 左下 第3套
# # '0400', '0401', '0402',
# # '0500', '0501', '0502',
# # '0600', '0601', '0602',# # 右下 第4套
# # '0404', '0405', '0406', 
# # '0504', '0505', '0506', 
# # '0604', '0605', '0606']# # 3*3宫格的3*2=6套题坐标# # 3宫格排列底3侧2共6套,底边格子数11
# # 3宫格排列底3侧2共6套,侧边格子数7
# # 6套题的首字坐标['0000', '0004', '0008', '0400', '0404', '0408']
# # 6套题的全部坐标# ['0000', '0001', '0002', 
#  '0100', '0101', '0102', 
#  '0200', '0201', '0202', # '0004', '0005', '0006',
# '0104', '0105', '0106', 
# '0204', '0205', '0206', # '0008', '0009', '0010', 
# '0108', '0109', '0110',
# '0208', '0209', '0210',# '0400', '0401', '0402',
# '0500', '0501', '0502', 
# '0600', '0601', '0602', # '0404', '0405', '0406',
# '0504', '0505', '0506', 
# '0604', '0605', '0606', # '0408', '0409', '0410', 
# '0508', '0509', '0510', 
# '0608', '0609', '0610']

 

3宫格两款:

1、  3宫格  4套(2*2)正方形,

 

f91edbe5b90e47fc8614fd2c7cf74a02.png

85848c90db4c4e87bdfb238bb078766e.png

7cb663c8b8d64dc7b606d582983238f7.png

2、3宫格  6套(3*2)长方形

150883d880f741d08772437d9e390857.png

ccb55de845ee40d9bb9d660b852e397d.png

917edbdbf315461586d7eb03fd35b93d.png

感悟:

代码里面的技术难点 都是用Chat GDP AI对话生成的,提高了数据搜索的效率

2aae12d6dec845af8afd2b42c0270a13.png

ea8f98cf498a41f19122b25399f04922.png76eeb65be20843298b168c06263cd96c.pngb772ed33e18d4aab942c0de675a48df2.png

 

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

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

相关文章

剑指offer题解合集——Week2day6

文章目录 剑指offerWeek2周六:表示数值的字符串AC代码思路: 周六:调整数组顺序使奇数位于偶数前面AC代码思路: 剑指offerWeek2 周六:表示数值的字符串 题目链接:表示数值的字符串 请实现一个函数用来判…

Spring系列:Spring如何解决循环依赖

❤ 作者主页:欢迎来到我的技术博客😎 ❀ 个人介绍:大家好,本人热衷于Java后端开发,欢迎来交流学习哦!( ̄▽ ̄)~* 🍊 如果文章对您有帮助,记得关注、点赞、收藏、…

Hololens打包报错【MSB4181】【error C1192】问题解决

Hololens2打包发生错误,errorcode1,主要原因如下: C:\ProgramFiles\MicrosoftVisualStudio\2022\Community\MSBuild\Microsoft\WindowsXaml\v17.0\8.2\Microsoft.Windows.UI.Xaml.Common.targets(415,5): error MSB4181: CompileXaml false […

Python+OpenGL绘制3D模型(六)材质文件载入和贴图映射

系列文章 一、逆向工程 Sketchup 逆向工程(一)破解.skp文件数据结构 Sketchup 逆向工程(二)分析三维模型数据结构 Sketchup 逆向工程(三)软件逆向工程从何处入手 Sketchup 逆向工程(四&#xf…

WSL使用VsCode运行cpp文件

文章目录 缘起主要步骤参考 缘起 今天在阅读《C20设计模式-可复用的面向对象设计方法(原书第2版)》的时候,遇到代码想要运行一下,于是决定使用wsl下的vscode配置cpp的环境。 主要步骤 1.安装gcc和g编译器 打开命令行输入wsl&am…

推荐系统中 排序策略 CTR 预估加权平均法

CTR(Click-Through Rate)预估加权平均法是一种用于估计广告点击率的方法,其中对不同的CTR预估模型赋予不同的权重,通过加权平均来得到整体的CTR预估。这样的方法可以充分利用多个CTR预估模型的优势,提高整体的预估准确…

docker应用部署(部署MySql,部署Tomcat,部署Nginx,部署Redis)

Docker 应用部署 一、部署MySQL 搜索mysql镜像 docker search mysql拉取mysql镜像 docker pull mysql:5.6创建容器,设置端口映射、目录映射 # 在/root目录下创建mysql目录用于存储mysql数据信息 mkdir ~/mysql cd ~/mysqldocker run -id \ -p 3307:3306 \ --na…

TCP服务器的编写(下)

我们现在开始对我们的客户端开始封装 我们的客户端,创建完套接字,需不需要bind呢?? 当然是不需要的,你本身是一个客户端,其他人写的应用也可能是客户端,如果我们bind,一定意味着我们…

CCNP课程实验-05-Comprehensive_Experiment

目录 实验条件网络拓朴配置实现基础配置实现IGP需求:1. 根据拓扑所示,配置OSPF和EIGRP2. 在R3上增加一个网段:33.33.33.0/24 (用Loopback 1模拟) 宣告进EIGRP,并在R3上将EIGRP重分布进OSPF。要求重分布进OSPF后的路由Tag值设置为6…

算法基础之滑雪

滑雪 核心思想&#xff1a;记忆化搜索 状态表示&#xff1a; f[i][j] 表示所有从(i,j) 开始滑的路径的最大值 状态计算&#xff1a; 分成四个方向 f[i][j] max(f[i][j] , f[i][j1] 1) 且h[a][b] (下一个点) 必须严格小于 h[i][j] 才能滑过去 #include<iostream>#…

LaTeX符号大全:打破排版的边界

LaTeX符号大全&#xff1a;打破排版的边界 大家好&#xff0c;我是免费搭建查券返利机器人赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01;今天&#xff0c;让我们一起探索一门极富表现力的排版艺术——LaTeX&…

08 HXJson

前言 这个主要是一个对象转换json处理的工具包, 依赖于HXCommon 里面主要包含了一些 字符串互转json, 对象互转json 的处理 相关使用 api 参照的是 net.sf.json 提供了相关的 get/opt/put/element 相关 api 适用于各种情况 具体的实现 这里不多做赘述 GitHub - 97065514…

Docker 容器命令总汇

目录 1、创建Docker容器&#xff08;不启动&#xff09; 2、创建Docker容器&#xff08;启动&#xff09; 3、列出正在运行的容器 4、停止和启动容器 5、重启容器 6、进入容器 7、查看容器信息 8、查看容器日志 9、删除容器和镜像 10、重命名容器 11、从旧容器复制数…

电压,电流,温度采样检测原理

电流采集电路&#xff1a; 电流采样原理&#xff1a; 电压采样电路&#xff1a; 温度检测&#xff1a;通过热敏电阻实现 以上资料来源于&#xff1a;正点原子&#xff0c;仅做学习笔记使用

Avalonia框架下实现热更新

在Avalonia框架下实现热更新&#xff08;也称为动态加载或模块化更新&#xff09;&#xff0c;通常涉及程序集的动态加载与卸载&#xff0c;以及UI元素、视图模型或其他应用程序逻辑部分的实时替换。由于Avalonia本身是一个跨平台的GUI框架&#xff0c;并没有直接内置热更新机制…

c++11--原子操作,顺序一致性,内存模型

1.原子操作 多线程下为了实现对临界区资源的互斥访问&#xff0c;最普遍的方式是使用互斥锁保护临界区。 然而&#xff0c;如果临界区资源仅仅是数值类型时&#xff0c;对这些类型c提供了原子类型&#xff0c;通过使用原子类型可以更简洁的获得互斥保护的支持。 (1). 一个实例…

力扣:209. 长度最小的子数组(Python3)

题目&#xff1a; 给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其总和大于等于 target 的长度最小的 连续子数组 [numsl, numsl1, ..., numsr-1, numsr] &#xff0c;并返回其长度。如果不存在符合条件的子数组&#xff0c;返回 0 。 来源&#xff1…

模版匹配历劫之路1-匹配点太多如何解决

1测试图片 2初步推测是否是提取的点太多而导致匹配时间很长 2.1通过canny的算法来提取检测点 import numpy as np import cv2 import time import matplotlib.pyplot as pltclass GeoMatch:def __init__(self):self.noOfCordinates0 # 坐标数组中元素的个数self.cordinates…

思维链COT原理探究

要进行因果分析&#xff0c;需要把思维链中的不同元素拆解开来&#xff0c;然后通过控制变量实验&#xff0c;来研究不同元素对COT效果的影响。以下两篇论文的核心差异就在于: COT的变量拆解&#xff0c;以及控制变量的实验方式。 结合两篇论文的实验结论&#xff0c;可能导致…

MIT线性代数笔记-第34讲-左右逆,伪逆

目录 34.左右逆&#xff0c;伪逆左右逆伪逆 打赏 34.左右逆&#xff0c;伪逆 左右逆 之前讲到的逆都是针对可逆方阵而言的&#xff0c;对于长方矩阵&#xff0c;实际上也有广义的逆&#xff0c;那就是左逆和右逆 左逆 当矩阵列满秩&#xff0c;即 r n r n rn时&#xff0c;…