【教学类-43-01】20231226 九宫格数独1.0

作品展示——九宫格数独(正方形手工纸)

背景需求:

最近陆续出了“X-Y比大小”“X-Y加法判断题”,发现1/3大4班孩子都能完成,3-4位孩子表示“太简单”。

大4班20号同学,做完0-10的判断题后说:“这里面都是错题

老师说:“是的,0-10里面2:8,就是正确题目占20%,错误题目80%,就是只有8题正确,其他都是错误的题

20号说:“这个对错题目也太简单了,我家里都做“数独”了!”

老师说:“哇,你太厉害了,数独很难啊,

20号:“嗯,我在家里学的!”

老师:“好,下次我做几份数独给你玩!”

设计过程:

网上搜索发现“数独”的九宫格样式,感觉很难,我自己写不了。

就引用了以下这份代码,做了一个正方形手工纸15*15CM的九宫格数独题数独小游戏——Python实现_数独游戏python-CSDN博客文章浏览阅读2.8k次,点赞6次,收藏36次。使用python简单实现一下数独小游戏,并且使用tkinter进行界面展示。_数独游戏pythonhttps://blog.csdn.net/m0_46366547/article/details/131334720?

材料准备:

WORD参数

代码展示:

'''
目的:九宫格数独1.0(15正方形手工纸)
作者:阿夏(参考)
时间:2023年12月26日 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“的临时文件夹
imagePath1=r'C:\Users\jg2yXRZ\OneDrive\桌面\数独\零时Word'
if not os.path.exists(imagePath1):  # 判断存放图片的文件夹是否存在os.makedirs(imagePath1)  # 若图片文件夹不存在就创建# 生成题库
import random
import copynum=int(input('生成几份\n'))
for z in range(num):# ————————————————
# 版权声明:本文为CSDN博主「Vaeeeeeee」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
# 原文链接:https://blog.csdn.net/m0_46366547/article/details/131334720def generate_sudoku_board():# 创建一个9x9的二维列表,表示数独棋盘board = [[0] * 9 for _ in range(9)]# 递归函数,用于填充数独棋盘的每个单元格def filling_board(row, col):# 检查是否填充完成整个数独棋盘if row == 9:return True# 计算下一个单元格的行和列索引next_row = row if col < 8 else row + 1next_col = (col + 1) % 9# 获取当前单元格在小九宫格中的索引box_row = row // 3box_col = col // 3# 随机生成1到9的数字numbers = random.sample(range(1, 10), 9)for num in numbers:# 检查行、列、小九宫格是否已经存在相同的数字if num not in board[row] and all(board[i][col] != num for i in range(9)) and all(num != board[i][j] for i in range(box_row*3, box_row*3+3) for j in range(box_col*3, box_col*3+3)):board[row][col] = num# 递归填充下一个单元格if filling_board(next_row, next_col):return True# 回溯,将当前单元格重置为0board[row][col] = 0return False# 填充数独棋盘filling_board(0, 0)return boarddef create_board(level): # level数字越大代表游戏难度越大"""生成一个随机的数独棋盘,空白格少"""board = generate_sudoku_board()board1 =  copy.deepcopy(board)for i in range(81):row = i // 9col = i % 9if random.randint(0, 9) < level:board1[row][col] = 0return (board,board1)v = create_board(5)[1]  print(v)# # >>>
# # [[1, 0, 0, 8, 0, 6, 0, 0, 4],
# #  [5, 0, 0, 0, 0, 0, 0, 0, 0],
# #  [0, 6, 0, 7, 0, 2, 0, 0, 1],
# #  [2, 0, 0, 3, 7, 9, 0, 0, 0],
# #  [7, 0, 0, 6, 8, 0, 0, 3, 2],
# #  [0, 0, 5, 4, 0, 0, 7, 6, 9],
# #  [6, 0, 7, 0, 0, 8, 9, 4, 0],
# #  [3, 0, 1, 0, 4, 0, 0, 0, 0],
# #  [9, 0, 4, 5, 6, 0, 0, 2, 7]]# 提取每个元素P=[]for a1  in v:         # 第一次读取,[a,b][c,d][e,f]的内容-列表for a2 in a1:    # 第二次读取,[a,b,c,d,e,f]的内容-元素if a2==0:                # 如果某个元素==0,就替换成空格P.append('')else:      # 如果某个元素非0,就写入本身的数字P.append(a2)print(P)print(len(P))#     # 第二步 读取word单元格写入# 新建worddoc = Document(r'C:\Users\jg2yXRZ\OneDrive\桌面\数独\数独正方形.docx')  for j in range(1):# 制作"单元格"bg=[]for x in range(0,9):       # 5   #数列 先宽 后高  for y in range(0,9):      #    23s1='{}{}'.format('%02d'%y,'%02d'%x)       #数列 先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是最下面一行,用来写卡片数字pp=int(bg[t][0:2])     # qq=int(bg[t][2:4])k=str(P[t])              # 提取list图案列表里面每个图形  t=索引数字print(pp,qq,k)# 图案符号的字体、大小参数run=table.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(150,150,150) #数字小,颜色深0-255run.bold=True# 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(r'C:\Users\jg2yXRZ\OneDrive\桌面\数独\零时Word\{}.docx'.format('%02d'%(z+1)))#保存为XX学号的电话号码word     time.sleep(2)from docx2pdf import convert# docx 文件另存为PDF文件inputFile = r"C:/Users/jg2yXRZ/OneDrive/桌面/数独/零时Word/{}.docx".format('%02d'%(z+1))# 要转换的文件:已存在outputFile = r"C:/Users/jg2yXRZ/OneDrive/桌面/数独/零时Word/{}.pdf".format('%02d'%(z+1))  # 要生成的文件:不存在# 先创建 不存在的 文件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正方形数独({}人{}份).pdf" .format(num,num))file_merger.close()
# doc.Close()# # print('----------第5步:删除临时文件夹------------')    
import shutil
shutil.rmtree('C:/Users/jg2yXRZ/OneDrive/桌面/数独/零时Word') #递归删除文件夹,即:删除非空文件夹

重点说明:

一、制作9*9的数字(原理我不懂,说不清楚)

二、读取【【】【】】嵌套列表里面的每个元素,如果该元素==0,就改成空格,

终端输入:

作品展示:

感悟:

目前不清楚大4班20号的“数独”水平,所以预先做一份9宫格数独,摸底,根据幼儿反馈,再增减难度(九宫格增加空格数/六宫格题目数等)

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

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

相关文章

mongodb聚合_删除_可视化工具

3.5 MongoDB中limit和skip MongoDB Limit() 方法 如果你需要在MongoDB中读取指定数量的数据记录&#xff0c;可以使用MongoDB的Limit方法&#xff0c;limit()方法接受一个数字参数&#xff0c;该参数指定从MongoDB中读取的记录条数。limit()方法基本语法如下所示&#xff1a;…

跟着LearnOpenGL学习12--光照贴图

文章目录 一、前言二、漫反射贴图三、镜面光贴图3.1、采样镜面光贴图 一、前言 在跟着LearnOpenGL学习11–材质中&#xff0c;我们讨论了让每个物体都拥有自己独特的材质从而对光照做出不同的反应的方法。这样子能够很容易在一个光照的场景中给每个物体一个独特的外观&#xf…

机器学习——决策树(三)

【说明】文章内容来自《机器学习——基于sklearn》&#xff0c;用于学习记录。若有争议联系删除。 1、案例一 决策树用于是否赖床问题。 采用决策树进行分类&#xff0c;要经过数据采集、特征向量化、模型训练和决策树可视化4个步骤。 赖床数据链接&#xff1a;https://pan…

解决Pycharm pip安装模块太慢问题,pycharm2022没有manage repositories配置镜像源

解决方案 方法清华阿里云中国科技大学华中理工大学 或者直接-i 加镜像 方法 URL写下面任意一个 清华 https://pypi.tuna.tsinghua.edu.cn/simple阿里云 http://mirrors.aliyun.com/pypi/simple/中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/华中理工大学 http:/…

钦丰科技(安徽)股份有限公司携卫生级阀门管件盛装亮相2024发酵展

钦丰科技(安徽)股份有限公司携卫生级阀门管件盛装亮相2024济南生物发酵展&#xff01; 展位号&#xff1a;2号馆A65展位 2024第12届国际生物发酵产品与技术装备展览会&#xff08;济南&#xff09;于3月5-7日在山东国际会展中心盛大召开&#xff0c;展会同期将举办30余场高质…

LENOVO联想笔记本小新Pro 14 IRH8 2023款(83AL)电脑原装出厂Win11系统恢复预装OEM系统

链接&#xff1a;https://pan.baidu.com/s/1M1iSFahokiIHF3CppNpL4w?pwdzr8y 提取码&#xff1a;zr8y 联想原厂系统自带所有驱动、出厂主题壁纸、Office办公软件、联想电脑管家等自带的预装软件程序 所需要工具&#xff1a;16G或以上的U盘 文件格式&#xff1a;ISO 文件…

django之drf框架(两个视图基类、5个扩展视图类、9个视图子类)

两个视图基类 APIView和GenericAPIView drf提供的最顶层的父类就是APIView&#xff0c;以后所有的类都继承自他 GenericAPIView继承自APIView&#xff0c;他里面封装了一些工能 基于APIViewModelSerializerResposne写5个接口 子路由&#xff1a;app01>>>urls.py …

【C++】开源:fast-cpp-csv-parser数据解析库配置使用

&#x1f60f;★,:.☆(&#xffe3;▽&#xffe3;)/$:.★ &#x1f60f; 这篇文章主要介绍fast-cpp-csv-parser数据解析库配置使用。 无专精则不能成&#xff0c;无涉猎则不能通。——梁启超 欢迎来到我的博客&#xff0c;一起学习&#xff0c;共同进步。 喜欢的朋友可以关注一…

linux开放tomcat 8080端口

1、查看8080是否开放 firewall-cmd --query-port8080/tcp查看已开启的端口 firewall-cmd --list-ports开启防火墙 systemctl start firewalld2、永久开放8080端口 firewall-cmd --zonepublic --add-port8080/tcp --permanent3、重加载&#xff08;重启防火墙&#xff09; …

UDP信号多个电脑的信息传输测试、配置指南

最近要做一个东西&#xff0c;关于一个软件上得到的信号&#xff0c;如何通过连接的局域网&#xff0c;将数据传输出去。我没做过相关的东西&#xff0c;但是我想应该和软件连接数据库的过程大致是差不多的&#xff0c;就一个ip和一个端口号啥的。 一.问题思路 多个设备同时连…

【宇宙猜想】AR文创入驻今日美术馆、北京天文馆等众多展馆,在AR互动中感受科技魅力!

近日&#xff0c;由「宇宙猜想」推出的AR系列文创产品先后入驻今日美术馆、北京天文馆、国家自然博物馆、上海天文馆、国家海洋馆、中华手工展馆等各大馆场并与其展开相关合作。 「宇宙猜想」致力于创造虚拟空间价值&#xff0c;用AR技术与文创产品碰撞出新的火花&#xff0c;为…

数据结构与算法(C语言版)P10——图

1、图的基本概念和术语 前面学过&#xff1a; 线性是一对一树形是一对多 而今天要学习的图形结构是多对多。 图的定义&#xff1a; G(V,E) V&#xff1a;顶点(数据元素)的__有穷非空__集合。E&#xff1a;边的有穷集合。 __有向图&#xff1a;__每条边都是有方向的 __无…

Hive实战:词频统计

文章目录 一、实战概述二、提出任务三、完成任务&#xff08;一&#xff09;准备数据文件1、在虚拟机上创建文本文件2、将文本文件上传到HDFS指定目录 &#xff08;二&#xff09;实现步骤1、启动Hive Metastore服务2、启动Hive客户端3、基于HDFS文件创建外部表4、利用Hive SQL…

物联网协议Coap之Californium CoapServer解析

目录 前言 一、CoapServer对象 1、类对象定义 2、ServerInterface接口 3、CoapServer对象 二、CoapServer服务运行分析 1、CoapServer对象实例化 1.1 调用构造方法 1.2 生成全局配置 1.3 创建Resource对象 1.4-1.8、配置消息传递器、添加CoapResource 1.9-1.12 创建线…

Dash中 基本的 callback 5

app.callback 在Dash中&#xff0c;app.callback 被用于创建交互性应用程序&#xff0c;它用于定义一个回调函数&#xff0c;该函数在应用程序中发生特定事件时被触发。回调函数可以修改应用程序的布局或更新图表等内容&#xff0c;从而实现动态交互。 下面是一个简单的 app.…

65内网安全-域环境工作组局域网探针

这篇分为三个部分&#xff0c;基本认知&#xff0c;信息收集&#xff0c;后续探针&#xff0c; 基本认知 分为&#xff0c;名词&#xff0c;域&#xff0c;认知&#xff1b; 完整架构图 名词 dwz称之为军事区&#xff0c;两个防火墙之间的区域称之为dwz&#xff0c;但安全性…

视频批量处理:随机分割方法,创新剪辑方式

随着数字媒体技术的飞速发展&#xff0c;视频处理已是日常生活和工作中不可或缺的一部分。在处理大量视频时&#xff0c;要一种高效、自动化的方法来满足需求。现在一起来看云炫AI智剪如何批量随机分割视频的批量处理方法&#xff0c;给视频剪辑工作带来创新。 视频随机分割4段…

SAP PP 配置学习(三)

Classification 分类 关联特征值 – (省市联动) 关联特征显示 一个特征是否输入&#xff0c;根据另一个特征来判断。如&#xff1a;只有输入了省份&#xff0c;才需要输入城市。没输省份前&#xff0c;城 市这个特征是不可见的。 修改【城市】特征. 在【城市】特征值中&#xf…

禁止浏览器记住密码和自动填充 element-ui+vue

vue 根据element-ui 自定义密码输入框&#xff0c;防止浏览器 记住密码和自动填充 <template><divclass"el-password el-input":class"[size ? el-input-- size : , { is-disabled: disabled }]"><inputclass"el-input__inner"…

【Unity6.0+AI】Unity版的Pytorch之Sentis-把大模型植入Unity

本教程详细讲解什么Sentis。以及恶补一些人工智能神经网络的基础概念,概述了基本流程,加载模型、输入内容到模型、使用GPU让模型推理数据、输出数据。 官方文档 Unity Sentis: Use AI models in Unity Runtime | Unity 主页介绍 官方文档链接:Sentis overview | Sentis | 1…