можно ли заполнить холст tkinter смесью случайных единиц и нулей? (Python) - PullRequest
0 голосов
/ 27 апреля 2020

Я нахожусь в процессе создания Игры Жизни Джона Конвея, и мне было интересно (потому что я довольно новичок в python), если есть какой-нибудь способ, которым я могу заполнить холст tkinter единицами и нулями, чтобы они представляли живых и мертвые клетки.

Поскольку я запустил программу, но я не сделал это так, как я задаю этот вопрос. То, как я это сделал, я храню словарь, содержащий имя и координаты прямоугольников в качестве пары ключ-значение.

Так что если у вас есть какие-либо решения о том, как реализовать таким образом, я бы хотел их услышать. Спасибо за любую помощь.

1 Ответ

1 голос
/ 28 апреля 2020

В следующем примере я предполагаю, что ключи словаря являются кортежем строки и столбца, а значение равно 1 или 0. Я устанавливаю размер ячейки равным 10x10 пикселей. В этом примере также определяется тег, который выглядит как « row , column » (например, «3,4»), так что вы можете легко установить цвет указанной ячейки c .

size=10  # pixels per cell
for row, column in data.keys():
    tag = f"{row},{column}"
    x0 = column*size
    y0 = row*size
    x1 = x0+size
    y1 = y0+size
    color = "red" if data[(row,column)] == 1 else "white"
    canvas.create_rectangle(x0, y0, x1, y1, fill=color, tags=(tag,))

Используя тег, вы можете настроить указанную c ячейку через ее строку и столбец следующим образом:

canvas.itemconfigure("4,5", fill="yellow")

Простой способ инициализации словаря будет с это основа c l oop:

data = {}
for row in range(20):
    for column in range(20):
        data[(row, column)] = 0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...