下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
利用excel和python设计多功能的飞行棋盘
今天应儿子要求买了个飞行棋,货到后,发现玩起来根本就提不起兴趣,棋盘如下:
于是决定重新编写个个性棋盘,其中用到了excelVBA、正则表达式、python,之所以这样使用,是因为
我不知道如何在某一种语言里单独实现。
1、绘制棋盘
在excel中按照棋盘所需,以填充颜色作为棋盘
2、填充棋盘
通过ctrl+h,调出查找替换功能,查找底色为黄色的单元格,替换为数字1
3、输出坐标
使用excelVBA来输出单元格内容为1的行列数并输出:
'获取坐标
SubgetCoord()
DimiAsInteger
DimjAsInteger
Fori=1To13
Forj=lTol3
IfCells。,j)=1ThenDebug.Print&i&&j&
Next
Next
EndSub
4、经合坐标
为了方便将坐标用于python,将输出的内容使用正则表达式进行改变:
仰存并分,TWCfUR141
KM1ESX式
SBMIS
6PCRfCOMP)
6ECMAScrpCQ*v*Scrtpt)
6Python3
6Go^ng
IM
9rt^x®
(l,4]41,5]>[l^b(l,7b(l,«b(l,9],[l>W]42>4j,(2>7b[2>WJ4>><)43>7],(3,lt)44>»b(4-2b(4.3]44^J>
(4.7]44.ie)44.1i].(4,i2J.[4,lJ).(5.1]45,7]45,li)46.1).[6.7].[6,;JJ,(7.1J.(7.2]47,3]47,4]47-5J47.6),
(^T]j7,s],[7,9bp,M]JMib(7>nb(MJ]jea],(a^]>[t,n],[^i]>[e^]>(9,n],[ie,ij,(ie,2],(it3],
(i3・6)・C3・7】・C3/)/n・9)・(n・ie).
5、与成随机动作
在python中通过以下代码,随机生成不同的动作
importrandom
#坐标列表
coords=[
[1,4L[1,5],(1,6],口,刀,11,8J,[1,9],(1,10],[2,4],(2,7),[2,10],(3,4|,[3,7],(3,10],(4,1],[4,2],
[4,3],[4,4],(4,7],[4,10],[4,11],[4,12],[4,13],[5,1],[5,7],[5,13],[6,1],[6,7],[6,13],[7,1],
[7,2],[7,3],[7,4],[7,5],[7,6],[7,7],(7,8],[7,9],亿助,[7,11],[7,12],[7,13],[8,1],[8,刀,[8,13],
[9,1],(9,7],[9,13],[10,1],[10,2],[10,3],[10,4),[10,7],[10,10],(10,.11),[10,12],(10,13],(11,4],
[11,7],(11,10],[12,4],[12,7],(12,10],[13,4],[13,5],[13,6],[13,7],[13,8],[13,9],[13,10]
1
#动作
actions=[
{'name':'退'num':7},
{'name':'前'num':7},
{'name':'停rnum,:7},
{'name':'再'num':3},
)
#组装动作数据
content=[]
/drsubinactions:
foriinrangefsubCnum']):
n=int(random.random()*6+l)
content.append(sub['name']+str(n))
#补充空白动作
#动作数量
actionsLen=sum((sub['num']/orsubinactions])
#坐标数量
coordsLen=len(coords)
it填充空白动作
content.extend(["]*(coordsLen-actionsLen))
#随机打乱数组
random.shuffle(content)
print(content)
每次运行都会生成不同的数据:
'前6丁丁再I,“,,退5丁停2n停2','退2丁丁前3m退3丁丁丁再6丁前2丁'退6丁前V,
'再6。前2丁退1,",'停27',退3丁丁停3丁丁丁丁前4丁丁丁停6',",'7停
1丁丁退6丁丁停1丁','前6',"]
6、根据坐标与动作数据,将内容写到excel表中
接着上面的代码,在后面继续写入;
#将动作数据按坐标写入到excel的棋盘中
#打开文档,得到workbook对象
workbook-openpyxl.load_workbook("./cheesMap.xlsx")
#将工作簿中的“题W'表赋给worksheet对象
worksheet=workbook.get_sheet_by_name("Sheetl")
tt按坐标填入动作
forcoor,actioninzip(coords,content):
worksheet.cell(coor[0],coor[l]),value=action
it保存
whileJrue:
fileName='棋盘'+str(int(random.random()*999+l))+".xlsx"
/fnot(os.path.exists(fileName)):
break
workbook.save(fileName)
workbook.close()
print(f"己生成{fileName}")
这就会在代码所在目录下生成名字以“棋盘〃+数字的xlsx文件:每一个文件都是一个打乱的棋盘。
名称”修改日期
.vscode2023-06-2814:31
,.imq2023-06-2814:39
好cheesMap.xlsx2023-06-2816:14
testpy
«ft6
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 4.3.5无交叉线岔工作原理
- 《影视鉴赏》第三章
- 餐车长岗位理论能力考核试卷含答案
- 环己烷装置操作工岗位水平知识考核试卷含答案
- 电光源发光部件制造工岗位实操知识技能考核试卷含答案
- 2025年智能家居场景定制落地策略分析
- 2025年执业药师全套题库及答案
- 2025年职业健康培训考试试题答案
- 2025年中储粮吉林分公司招聘笔试考试题库及答案解析
- 2025年重庆市专业技术继续教育公需科目考试及答案
- 中国老年人睡眠管理新范式专家共识(2026 版)
- 2026年轮胎制造行业市场现状分析报告及未来五至十年碳中和与循环经济
- 2026年托业(TOEIC)全真试题及详细答案解析
- 中国慢性乙型肝炎功能性(临床)治愈临床实践专家共识课件
- 医疗废物试题及答案大全
- 水电站大坝安全现场检查技术规程 -DL-T 2204
- 中世纪文化课件
- 自动识别系统(AIS)检验指南
- 设备质量维修培训
- “正大杯”第十五届全国大学生市场调查与分析大赛参考试题库(含答案)
- 汽车悬架转向与制动系统维修(第2版)PPT完整全套教学课件
评论
0/150
提交评论