dgfhdfgh

dfhdfh

Рис. 2. Изображения шариков в png формате.

Лекция Тимофея Хирьянова

from tkinter import *               # графическая библиотека
from random import shuffle          # перемешать список suffle(A)

column = 5                          # столбцы
row = 5                             # строки
btn = []                            # список кнопок

def play(n):                        # функция обработчик нажатия на кнопку
    btn[n].config(text = n)

for i in range(row):
    f = Frame()
    f.pack(expand=YES, fill=BOTH)
    for j in range(column):
        n = i*column+j
        btn += [Button(f, font=("mono", 16, "bold"), width=5, height=3)]
        btn[-1].pack(expand=YES, fill=BOTH, side=LEFT)
        btn[-1].config(text =" ")
        btn[-1].config(command=lambda n=n:play(n))

mainloop()

Лист. 1. Шаблон для игрового поля.

from tkinter import *               # графическая библиотека
from random import shuffle          # перемешать список suffle(A)

column = 9                          # столбцы
row = 9                                 # строки
btn = []                                # список кнопок
img = []
files = ['blank.png', 'azure.png', 'bronze.png', 'emerald.png', 'gold.png',
               'pink.png', 'scarlet.png', 'steel.png']
num = [1, 2, 3, 4, 5, 6, 7]
playGround = [0]*column*row

for i in range(5):
    shuffle(num)
    playGround[i] = num[0]
shuffle(playGround)

tk = Tk()
for i in files:
    img += [PhotoImage(file=i)]

def play(n):                        # функция обработчик нажатия на кнопку
    global playGround
    bl_btn = []
    for i, b in enumerate(playGround):
        if b==0:
            bl_btn += [i]
    if bl_btn == []:
        return
    shuffle(bl_btn)
    shuffle(num)
    playGround[bl_btn[0]] = num[0]
    for i, b in enumerate(btn):
        b.config(image = img[playGround[i]])

for i in range(row):
    f = Frame()
    f.pack(expand=YES, fill=BOTH)
    for j in range(column):
        n=i*column+j
        btn += [Button(f, image = img[playGround[n]])]
        btn[-1].pack(expand=YES, fill=BOTH, side=LEFT)
        btn[-1].config(command=lambda n=n:play(n))

mainloop()

Лист. 2.