【教学类-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,一经查实,立即删除!

相关文章

OpenHarmony开发者自测试框架初学指南

OH开发者自测试框架初学指南 前言前置环境搭建wsl2安装wsl2迁移源码下载编译环境 测试框架应用环境搭建libreadline-dev安装python库安装nfs-kernel-server验证 windows环境准备vscodeusbipd 生成测试用例更改BUILD.gn的配置项关于fuzz配置编写fuzz用例编译fuzz用例执行 后记 前…

redis在linux集群部署

1.下载redis wget http://download.redis.io/releases/redis-3.2.9.tar.gz 2.解压redis tar -zxvf redis-3.2.9.tar.gz 3.安装redis 在解压redis目录下 make install /usr/soft/redis/ 4.启动redis 在redis的bin目录 执行 ./redis.conf 5.设置redis 端口 密码 集群 vim redis.c…

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…

不浪费原料的汉堡制作方案(LeetCode日记)

LeetCode-1276-不浪费原料的汉堡制作方案 题目信息: 圣诞活动预热开始啦&#xff0c;汉堡店推出了全新的汉堡套餐。为了避免浪费原料&#xff0c;请你帮他们制定合适的制作计划。 给你两个整数 t o m a t o S l i c e s tomatoSlices tomatoSlices 和 c h e e s e S l i c…

【uniapp】Uniapp cli 自动化打包脚本实现

一、前言 通常使用uniapp开发app时&#xff0c;大多数会使用项目的云服务打包&#xff0c;否则的话再借助原生会变得极其复杂&#xff0c;还要去安装对应大内存的环境。如果恰好此时&#xff0c;你有一个需求是&#xff0c;可以随意的更换logo和封面、标题切换成另外一个app&a…

Hadoop集成对象存储和HDFS磁盘文件存储

1.环境配置 1.1 版本说明 组件版本是否必须其他事项Hadoop3.3.0是hadoop3.3.0之后原生支持国内主要对象存储Hive3.1.3否实测没有Hive也可以使用sparksql&#xff0c;使用hive更好的管理HDFS数据spark3.3.1是hive和spark整合后&#xff0c;语法为HSQL&#xff0c;自定义函数按…

深入理解 golang 中的反射机制

目录 什么是反射 反射的使用方法 反射的应用场景 反射的性能考量 反射的最佳实践 小结 反射机制是计算机科学中的一个重要概念&#xff0c;程序通过反射可以在运行时访问、检测和修改自身的状态和行为。Golang 作为静态类型的编译型语言&#xff0c;虽然在设计上倾向于简…

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

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

大语言模型激活函数绘图

使用torch中的激活函数&#xff0c;绘制多个激活函数多一个图中对比展示 引入依赖 import torch from torch.nn import functional as F import matplotlib.pyplot as plt plt.rcParams[font.sans-serif] [Arial Unicode MS]定义单个曲线图的绘制函数 def draw_single_plot…

解决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;共同进步。 喜欢的朋友可以关注一…

perl使用find函数踩坑

前言 写了一个脚本可以同时检查多个仿真log文件&#xff0c;并生成html表格。按照文件修改时间从新到旧排序。然后一直无法使用stath函数获取ctime。 结论&#xff1a;find函数会改变程序执行的当前目录&#xff0c;find(\&process_files, $dir);函数是在$dir目录下运行的…

【AI】人工智能爆发推进器之生成对抗网络

目录 一、什么是生成对抗网络 二、发展历程 三、应用场景 四、小案例&#xff1a;使用GAN生成手写数字 4.1 问题描述 4.2 代码实现 一、什么是生成对抗网络 生成对抗网络&#xff08;Generative Adversarial Networks&#xff0c;简称GAN&#xff09;是深度学习中的一种…

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;为…