响应式做的好的网站,免费ppt模板下载红色主题,专门做母婴的网站,徐州集团网站建设流程作品展示#xff1a; 背景需求#xff1a;
幼儿表示自己适合做5宫格 第一次AI生成九宫格数独python代码
【教学类-43-03】20231229 N宫格数独3.0#xff08;n1、2、3、4、6、8、9#xff09; #xff08;ChatGPT AI对话大师生成#xff09;-CSDN博客文章浏览阅读162次 背景需求
幼儿表示自己适合做5宫格 第一次AI生成九宫格数独python代码
【教学类-43-03】20231229 N宫格数独3.0n1、2、3、4、6、8、9 ChatGPT AI对话大师生成-CSDN博客文章浏览阅读162次点赞2次收藏3次。【教学类-43-03】20231229 N宫格数独3.0n1、2、3、4、6、8、9 ChatGPT AI对话大师生成https://blog.csdn.net/reasonsummer/article/details/135294024
修改结果本套代码只能生成1、2、3、4、6、8、9宫格的数独题目、5、7不行孩子正好需要5宫格的题目o(╥﹏╥)o 第二次更换关键词再问python 修改参数。运行
修改结果本套代码只能生成2、4、6、8宫格双数的数独题目、5、7不行孩子正好需要5宫格的题目o(╥﹏╥)o 代码展示 目的22.4.6.8宫格数独4.0参考AI对话大师提示的代码15正方形手工纸
作者阿夏参考
时间2023年12月29日 20:35
import random
from win32com.client import constants,gencache
from win32com.client.gencache import EnsureDispatch
from win32com.client import constants # 导入枚举常数模块
import os,timeimport docx
from docx import Document
from docx.shared import Pt
from docx.shared import RGBColor
from docx.enum.text import WD_PARAGRAPH_ALIGNMENT
from docx.oxml.ns import qnfrom docxtpl import DocxTemplate
import pandas as pd
from docx2pdf import convert
from docx.shared import RGBColor# 第一步生成所9*9数独# 新建一个”装N份word和PDF“的临时文件夹
imagePath1rC:\Users\jg2yXRZ\OneDrive\桌面\数独\零时Word
if not os.path.exists(imagePath1): # 判断存放图片的文件夹是否存在os.makedirs(imagePath1) # 若图片文件夹不存在就创建# 生成题库
import random
import copynumint(input(生成几份\n))
hsallint(input(N宫格 1,2,3,4,5,6,7,8,9\n))
hshsall
hs1 int(hsall ** 0.5)# 根号
print(hs1)
kkint(input(空格数量输入5就是50%就是空一半\n))for z in range(num):def is_valid(board, num, row, col):# 检查行是否有重复数字if num in board[row]:return False # 检查列是否有重复数字for i in range(hs):if num board[i][col]:return False# 检查所在的小方格是否有重复数字start_row row - row % 2start_col col - col % 2for i in range(start_row, start_row 2):for j in range(start_col, start_col 2):if num board[i][j]:return Falsereturn Truedef solve_sudoku(board):for row in range(hs):for col in range(hs):if board[row][col] 0:for num in range(1, hs1):if is_valid(board, num, row, col):board[row][col] numif solve_sudoku(board):return Trueboard[row][col] 0return Falsereturn Truedef generate_sudoku():board [[0] * hs for _ in range(hs)]solve_sudoku(board)# 随机选择一半格子作为空白格blanks random.sample(range(hs*hs), int(hs*hs*kk/10))for i in blanks:row i // hscol i % hsboard[row][col] 0return boarddef print_sudoku(board):for row in range(hs):for col in range(hs):print(board[row][col], end )print()# 生成一个有一半空格的5宫格数独sudoku generate_sudoku()print(生成的{}宫格数独.format(hs))print_sudoku(sudoku)P[]# 做成列表样式for sd in sudoku:print(sd)for sd2 in sd:if sd20: # 如果某个元素0就替换成空格P.append()else: # 如果某个元素非0就写入本身的数字P.append(sd2)# print(sd2)print(len(P))# v create_board(hs)[1]
# print(v)# # #
# # [[1, 0, 0, 8, 0, 6, 0, 0, 4],
# # [hs, 0, 0, 0, 0, 0, 0, 0, 0],
# # [0, 6, 0, 7, 0, 2, 0, 0, 1],
# # [2, 0, 0, hs1, 7, hs, 0, 0, 0],
# # [7, 0, 0, 6, 8, 0, 0, hs1, 2],
# # [0, 0, hs, 4, 0, 0, 7, 6, hs],
# # [6, 0, 7, 0, 0, 8, hs, 4, 0],
# # [hs1, 0, 1, 0, 4, 0, 0, 0, 0],
# # [hs, 0, 4, hs, 6, 0, 0, 2, 7]]# 第二步 读取word单元格写入# 新建worddoc Document(rC:\Users\jg2yXRZ\OneDrive\桌面\数独\数独正方形.docx) for j in range(1):# 制作单元格bg[]for x in range(0,hs): # hs #数列 先宽 后高 for y in range(0,hs): # 23s1{}{}.format(%02d%x,%02d%y) #数列 先y 后x bg.append(s1) print(bg) print(len(bg))# # 房间模板第一个表格要写入的门牌号列表 table doc.tables[j] # 表0表2 写标题用的# 标题写入3、5单元格 for t in range(0,len(bg)): # 0-5是最下面一行用来写卡片数字ppint(bg[t][0:2]) # qqint(bg[t][2:4])kstr(P[t]) # 提取list图案列表里面每个图形 t索引数字print(pp,qq,k)# 图案符号的字体、大小参数runtable.cell(pp,qq).paragraphs[0].add_run(k) # 在单元格0,0(第1行第1列)输入第0个图图案run.font.name 黑体#输入时默认华文彩云字体# run.font.size Pt(46) #输入字体大小默认30号 换行一页一份大卡片run.font.size Pt(24) #是否加粗# run.font.color.rgb RGBColor(150,150,150) #数字小颜色深0-255run.font.color.rgb RGBColor(50,50,50) #数字小颜色深0-255run.boldTrue# paragraph.paragraph_format.line_spacing Pt(180) #数字段间距r run._elementr.rPr.rFonts.set(qn(w:eastAsia), 黑体)#将输入语句中的中文部分字体变为华文行楷table.cell(pp,qq).paragraphs[0].alignment WD_PARAGRAPH_ALIGNMENT.CENTER#居中 #
# # doc.save(rC:\Users\jg2yXRZ\OneDrive\桌面\数独\零时Word\{}.docx.format(%02d%(z1)))#保存为XX学号的电话号码word time.sleep(2)from docx2pdf import convert# docx 文件另存为PDF文件inputFile rC:/Users/jg2yXRZ/OneDrive/桌面/数独/零时Word/{}.docx.format(%02d%(z1))# 要转换的文件已存在outputFile rC:/Users/jg2yXRZ/OneDrive/桌面/数独/零时Word/{}.pdf.format(%02d%(z1)) # 要生成的文件不存在# 先创建 不存在的 文件f1 open(outputFile, w)f1.close()# 再转换往PDF中写入内容convert(inputFile, outputFile)print(----------第4步把都有PDF合并为一个打印用PDF------------)# 多个PDF合并CSDN博主「红色小小螃蟹」https://blog.csdn.net/yangcunbiao/article/details/125248205
import os
from PyPDF2 import PdfMerger
target_path C:/Users/jg2yXRZ/OneDrive/桌面/数独/零时Word
pdf_lst [f for f in os.listdir(target_path) if f.endswith(.pdf)]
pdf_lst [os.path.join(target_path, filename) for filename in pdf_lst]
pdf_lst.sort()
file_merger PdfMerger()
for pdf in pdf_lst:print(pdf)file_merger.append(pdf)file_merger.write(C:/Users/jg2yXRZ/OneDrive/桌面/数独/打印合集05正方形数独4.0 {}乘{}{}人{}份.pdf .format(hs,hs,num,num))file_merger.close()
# doc.Close()# # print(----------第5步删除临时文件夹------------)
import shutil
shutil.rmtree(C:/Users/jg2yXRZ/OneDrive/桌面/数独/零时Word) #递归删除文件夹即删除非空文件夹 测试结果
本套代码在WORD9*9单元格内只能生成2、4、6、8宫格的双数数独题目 WORD模板
宫格题目结果 存在问题
输入单数就会报错无法制作5宫格数独题