簡體   English   中英

在Tkinter中創建2d數組

[英]Create 2d array in Tkinter

我正在使用Tkinter在Python中開發一個新項目。 我是Python的新手,因此需要一些幫助。 我想創建2D數組並將其顯示在窗口中。

這是我的代碼:

maze =[[player(), invisblock(), invisblock(), invisblock()],
      [invisblock(),invisblock(),invisblock(), invisblock()],
      [invisblock(), invisblock(), invisblock(), invisblock()],
      [invisblock(), invisblock(), invisblock(), invisblock()],  ]

播放器外觀如下:

def player():
    block = tkinter.Label(window)
    block.image = tkinter.PhotoImage(file="down.png")
    block['image'] = block.image
    block.config(text='karel_down')
    return block

並打印如下:

def printt():
    for i, block_row in enumerate(map):
        for j, block in enumerate(block_row):
            block.grid(row=i, column=j)
    window.update()
    window.after(250)

一切正常,但我有一個小問題。 我想做另一個這樣的功能(目前不起作用):

def create_world(row,col):
    for i in range(row):
        for j in range(col):
             maze[i][j] = invisblock()

所以我想用invisblock()從create_world的row和col填充所有迷宮。 示例:create_world(10,10)並將創建10x10 invisblock()迷宮。 我不想像我的第一個代碼示例(迷宮= [[player()...))那樣手動填充,而是使用一個函數。 簡而言之,我想創建對象“ smarter”的初始數組。 謝謝!!

您可以使用列表推導:

def create_world(row,col):
    return [[invisiblock() for i in range(col)] for j in range(row)] 

maze = create_world(10, 10)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM