• 【教学类-09-02】20221022《动物棋 S形迷宫》(数字续写和骰子游戏)(大班主题《动物花花衣》)


    效果展示:

    背景需求:

    【教学类-09-01】20221022《动物棋》的排列方式是10*10矩阵(每行都是从小到大升序排列)从游戏棋的角度出发,它并不是一条线连贯的路线。游戏时需要“跳跃换行”

          为了棋盘更符合棋盘的用法规律。我修改模板中的框线(加粗6磅)制作一个S形的迷宫图

    ——教学中试试孩子们是否能按照迷宫线路进修数字续写---弄懂单数行从小到大和双数行从大到小

     材料准备:

    准备一个名为”连续数字填空10*10_S形迷宫.docx“的word文件

     文件的表格框线:使用”word"绘制表格 功能 线条6磅  手动画线增加线宽。

     模板数字制作:

    S形棋盘路线的数字排列规律为:

    [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]                  小→大

    [20, 19, 18, 17, 16, 15, 14, 13, 12, 11] 大→小

    [21, 22, 23, 24, 25, 26, 27, 28, 29, 30] 小→大

    [40, 39, 38, 37, 36, 35, 34, 33, 32, 31] 大→小

    [41, 42, 43, 44, 45, 46, 47, 48, 49, 50] 小→大

    [60, 59, 58, 57, 56, 55, 54, 53, 52, 51] 大→小

    [61, 62, 63, 64, 65, 66, 67, 68, 69, 70] 小→大

    [80, 79, 78, 77, 76, 75, 74, 73, 72, 71] 大→小

    [81, 82, 83, 84, 85, 86, 87, 88, 89, 90] 小→大

    [100, 99, 98, 97, 96, 95, 94, 93, 92, 91] 大→小

    也就是1,3,5,7,9行都是升序排列,2,4,6,8,10都是降序排列

    以下是制作S形棋盘数字的代码。

     S形棋盘数字的XLS表

     把10*10的数字复制到Word表格内。调整格式。

    代码运行:

    1. '''
    2. 作者:阿夏
    3. 时间:2022年10月20日
    4. 名称:大班学具:100以内连续数字填空(S形迷宫)
    5. (10*10表格1.7*1.9 灰色字 34磅加粗 )
    6. '''
    7. # print('----------第1步:制作docx里面的数字 把100个数字分成10*10矩阵导入xls S形迷宫 1、3、5、7是升序排列,2,4,6,8是降序排列------------')
    8. max=int(input('最大数字50,100等\n'))
    9. num=int(input('几个数字一组\n'))
    10. import xlwt
    11. # 第1步:制作1-100个数字的列表
    12. list=[]
    13. for a in range(1,max+1):
    14. list.append(a)
    15. print(list)
    16. # 第2步:抽取10个数字一组 共10组 ,在一个列表内1,3,5,7,9一组,2,4,6,8一组
    17. list_ten=[]
    18. cc=[]
    19. # c=int(len(list)/num)
    20. for b in [0,2,4,6,8]: # 100个数字10个一组,等于100/10=10组
    21. list_ten.append(list[b*num:b*num+num]) # 列表内1,3,5,7,9一组 从小到大
    22. # 列表2,4,6,8一组,翻转从大到小
    23. c=list[(int(b)+1)*num:(int(b)+1)*num+num] # 从小到大先提取列表
    24. c.sort(reverse=True) # 降序(从大到小)
    25. list_ten.append(c)
    26. print(list_ten)
    27. # 第3步:在终端显示10*10矩阵排列。不用于xls的提取
    28. for list_ten_jz in list_ten:
    29. print(list_ten_jz)
    30. # 第4步:导入xls
    31. arrlan = len(list_ten)# list_ten的长度 10
    32. workbook = xlwt.Workbook()# 新建xls工作簿
    33. sheet = workbook.add_sheet("Sheet")# 新建xls工作簿的工作表的名字是sheet
    34. row = 0
    35. for i in range(arrlan): # 遍历10次
    36. for col,item in enumerate(list_ten[i],0):
    37. sheet.write(row,col,item)
    38. row += 1
    39. try:
    40. workbook.save(r"C:\Users\jg2yXRZ\OneDrive\桌面\连续数字填空\{}个数字{}组(S形迷宫).xls".format(max,num)) # 新建保存 只能xls
    41. print('计划生成成功')
    42. except e:
    43. print('失败...')
    44. print(e)
    45. '''这里先制作10*10的列表数字,复制到“S形迷宫.doc里面,手动设置 10*10表格 行高1.7*列宽1.9 灰色字 Arial 34磅 加粗
    46. 只有设置好docx模板后,再重新运行全部代码,制作多个PDF'''
    47. print('----------第2步:制作docx里面的数字 把100个数字分成10*10矩阵导入xls------------')
    48. import os
    49. max=int(input('最大数字50,100等\n'))
    50. delete=int(input('需要删除几个数字100个里面删除\n'))
    51. num=int(input('需要多少份教具\n'))
    52. Y=int(input('共有几层楼\n'))
    53. X=int(input('每层几间房\n'))
    54. print('----------第1步:制作门牌号------------')
    55. N=[]
    56. for a in range(1,max+1):
    57. N.append(a)
    58. print(N)
    59. # [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100]
    60. print('----------第2步:新建一个临时文件夹------------')
    61. # 新建一个”装N份word和PDF“的文件夹
    62. os.mkdir(r'C:\Users\jg2yXRZ\OneDrive\桌面\连续数字填空\零时Word')
    63. print('----------第3步:随机抽取门牌号数字 打开Word,把抽取的门号替换为空------------')
    64. import random
    65. from win32com.client import constants,gencache
    66. from win32com.client.gencache import EnsureDispatch
    67. from win32com.client import constants # 导入枚举常数模块
    68. import os,time
    69. # C:\Users\jg2yXRZ\OneDrive\桌面\连续数字填空\连续数字填空10乘10.docx
    70. for nn in range( 1,num+1):
    71. word = gencache.EnsureDispatch('Word.Application')
    72. #启动word对象应用
    73. word.Visible = False
    74. doc = word.Documents.Open(r'C:\Users\jg2yXRZ\OneDrive\桌面\连续数字填空\连续数字填空{}乘{}_S形迷宫.docx'.format(Y,X))
    75. #单个另存为word 单独文件夹内
    76. doc.SaveAs(r'C:\Users\jg2yXRZ\OneDrive\桌面\连续数字填空\零时Word\{}.docx'.format('%02d'%nn)) # '%02d'%nn=把"1.docx"改成"01.docx"
    77. doc.Close() #关闭1.docx
    78. #打开“1.docx”
    79. time.sleep(1)
    80. doc = word.Documents.Open(r'C:\Users\jg2yXRZ\OneDrive\桌面\连续数字填空\零时Word\{}.docx'.format('%02d'%nn))
    81. # 随机抽取几个门牌号(#CSDN博主「孟意昶」 原文链接:https://blog.csdn.net/weixin_44999258/article/details/125163277)
    82. shuffle = random.sample(N[10:], delete) # 这是从11开始取值,因为如果改1,会把11,12,21中间的1删除
    83. print(shuffle) # ['602', '403', '505']
    84. for b in shuffle:
    85. print(b) # 602\403\505
    86. # 删除表格里的门牌号 (作者:守候\链接:https://www.zhihu.com/question/388608509/answer/2552638658)
    87. i = 0
    88. for ta in doc.Tables: # 遍历表格
    89. # f为每个表格区域查找
    90. f = ta.Range.Find
    91. # 查找框参数
    92. f.ClearFormatting() # 清除原有格式
    93. f.Forward = True # 向前查找
    94. f.Wrap = constants.wdFindStop # 查找完成即停止
    95. f.MatchWildcards = True # 使用通配符,根据需要设置
    96. f.Text = '{}'.format(b) # 查找的内容
    97. # 替换框参数(删除为空=把门号替换为''空值
    98. f.Replacement.ClearFormatting() # 清除原有格式
    99. f.Replacement.Text = '' # 替换框内容
    100. # f.Replacement.Font.ColorIndex = constants.wdRed # 替换文本的颜色设置为红色,此处是为了演示方便,看到效果。根据需要设置
    101. f.Execute(Replace=constants.wdReplaceAll) # 执行,查找全部
    102. i += 1
    103. doc.Save()# 把有空格的1.docx保存
    104. # 打开1.docx 另存为1.pdf 每一个单页的docx分别保存一个单页的PDF
    105. doc=word.Documents.Open("C:/Users/jg2yXRZ/OneDrive/桌面/连续数字填空/零时Word/{}.docx".format('%02d'%nn),ReadOnly=1)
    106. doc.ExportAsFixedFormat("C:/Users/jg2yXRZ/OneDrive/桌面/连续数字填空/零时Word/{}.pdf".format('%02d'%nn),constants.wdExportFormatPDF)
    107. # 关闭1.docx
    108. doc.Close()
    109. print('----------第4步:把都有PDF合并为一个打印用PDF------------')
    110. # 多个PDF合并(CSDN博主「红色小小螃蟹」,https://blog.csdn.net/yangcunbiao/article/details/125248205)
    111. import os
    112. from PyPDF2 import PdfFileMerger
    113. target_path = 'C:/Users/jg2yXRZ/OneDrive/桌面/连续数字填空/零时Word'
    114. pdf_lst = [f for f in os.listdir(target_path) if f.endswith('.pdf')]
    115. pdf_lst = [os.path.join(target_path, filename) for filename in pdf_lst]
    116. pdf_lst.sort()
    117. file_merger = PdfFileMerger()
    118. for pdf in pdf_lst:
    119. print(pdf)
    120. file_merger.append(pdf)
    121. file_merger.write("C:/Users/jg2yXRZ/OneDrive/桌面/连续数字填空/(打印合集)连续数字填空{}乘{}_S形迷宫.pdf".format(Y,X))
    122. file_merger.close()
    123. # doc.Close()
    124. # print('----------第5步:删除临时文件夹------------')
    125. import shutil
    126. shutil.rmtree('C:/Users/jg2yXRZ/OneDrive/桌面/连续数字填空/零时Word') #递归删除文件夹,即:删除非空文件夹

    运行输入:

    一、输入100个数组,分成10组,导出一个xls

     二、又出现需要输入值的问题

     

     重点提示:

      参见前文”模板数字制作(S形迷宫数字,单数行升序排列、双数行降序排列)

    视频演示

    生成时间:旅行棋S形路线 10*10格子,共100格,删除50格,生成30份,用时3:59秒

    20221022旅行棋10乘10_S形棋盘

    PDF打印效果

     感悟:

    1、Python生成速度快、稳定:

    从《门牌号6*3》《门牌号9*5》《旅行棋10*10矩阵式》《旅行棋10*10S形路线》的30份作业生成时间来看,前两者在3分钟内,后两者都在4到4分半之间。与uibot批量学具相比,python的速度更快,同款学具在删除数量相同、生成数量相同的情况下,用时差异不大。

    总体而言,删除数量越多,用时更长,份数越多,用时更多

    2、

    教学过程:

    时间:2022年12月16日9:30-10:30

    班级:大1班

    人数:6人(疫情只来了6人)

    5位孩子都选了100的棋盘(填空50格)

     

     

     

     

     

     

     

     

     

     

     幼儿发现表格设置中的问题!

     

     

     

     

     

     

    玩骰子 

     

     

     

     

     

     

     

    作品展示

     

     

     花絮:

     格子太小,吃掉棋子

    T:你做好骰子了,我和你玩吧。你选红色还是蓝色?

    S:随便你

    T:那我选红色的棋子,你拿蓝色的棋子。石头剪刀布,谁先开始?

    S:石头剪刀布。你赢了

    T:掷骰子。两下。哎,这格子真小,要是你也扔到2,都没有地方放棋子了。

    S:嗯,如果一样,可以把它(前面一个棋子)吃掉。

    T:(茅塞顿开)好主意,重新回到起点,这样格子就不会挤了!

     

     存在问题:

    由于是S形路线,一会儿从左到右走,一会儿从右向左走。无论老师还是幼儿都绕晕了。2号女孩2次走到最右侧,都习惯性把棋子挪到下一行的最左边。16号男孩提醒老师:“你走错了,是走这边(向左走)——显然S形路线在矩阵格子里不容易操作。最好还是改回10*10从左到右顺序排列)

  • 相关阅读:
    Docker——本文来自AI创作助手
    软件工程毕业设计课题(82)微信小程序毕业设计PHP共享停车位小程序系统设计与实现
    Vant轮播多个div结合二维数组的运用
    Skywalking
    SMILES:化学结构的线性表示方法
    SQL 优化经历:从 30248秒到 0.001秒的经历
    HTML5高级部分
    GDAL库学习
    『无为则无心』Python日志 — 64、Python日志模块logging介绍
    分享一个JS对象隐式转换的问题
  • 原文地址:https://blog.csdn.net/reasonsummer/article/details/127464626