利用excel和python设计多功能的飞行棋盘_第1页
利用excel和python设计多功能的飞行棋盘_第2页
利用excel和python设计多功能的飞行棋盘_第3页
利用excel和python设计多功能的飞行棋盘_第4页
利用excel和python设计多功能的飞行棋盘_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

利用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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论