Печать

bfsvsf

Изучаем

# Библиотеки
# Типы данных: логический, числовой, строковый, список, множество
# Арифметические операции
# Циклы
# Оператор условного выполнения
# Логические операции
# Функции

from tkinter import *           # импортируем всё из графической библиотеки tkinter
from random import shuffle      # импортируем функцию shuffle (перемешивает список)

tk = Tk()                       # создаём главное окно программы
tk.geometry('750x750')          # устанавливаем размер окна
tk.title("Flip-flop")           # заголовок окна

mainloop()

Лист.

from tkinter import *           # импортируем всё из графической библиотеки tkinter
from random import shuffle      # импортируем функцию shuffle (перемешивает список)

cols = rows = 8                 # столбцы и строки (определяют размер игрового поля)
btn = []                        # список для всех кнопок (клеток)

tk = Tk()                       # создаём главное окно программы
tk.geometry('750x750')          # устанавливаем размер окна
tk.title("Flip-flop")           # заголовок окна

# Создаём n кнопок и размещаем их в rows рядов по cols в каждом ряду
for n in range(cols * rows):    # цикл для перебора всех клеток
    if n % cols == 0:           # если n кратно количеству колонок, то
        f = Frame()             # создаём фрейм (контейнер для нового ряда)
        f.pack(expand=YES, fill=BOTH)   # размещение фрейма в окне программы
    btn += [Button(f)]          # добавляем в список новую кнопку
    btn[-1].pack(expand=YES, fill=BOTH, side=LEFT)  # отображение кнопки на экране

mainloop()

Лист.

from tkinter import *           # импортируем всё из графической библиотеки tkinter
from random import shuffle      # импортируем функцию shuffle (перемешивает список)

cols = rows = 8                 # столбцы и строки (определяют размер игрового поля)
btn = []                        # список для всех кнопок (клеток)
playground = ['green', 'red'] * (cols*rows//2)  # значение определяет цвет клетки
shuffle(playground)             # перемешиваем цвета

def play(n):                    # функция обработчик нажатия на кнопку
    for i in range(cols * rows):    # цикл для перебора всех клеток
        btn[i].config(bg = playground[i], activebackground = playground[i])
    print(n)

tk = Tk()                       # создаём главное окно программы
tk.geometry('750x750')          # устанавливаем размер окна
tk.title("Flip-flop")           # заголовок окна

# Создаём n кнопок и размещаем их в rows рядов по cols в каждом ряду
for n in range(cols * rows):    # цикл для перебора всех клеток
    if n % cols == 0:           # если n кратно количеству колонок, то
        f = Frame()             # создаём фрейм (контейнер для нового ряда)
        f.pack(expand=YES, fill=BOTH)   # размещение фрейма в окне программы
    btn += [Button(f)]          # добавляем в список новую кнопку
    btn[-1].pack(expand=YES, fill=BOTH, side=LEFT)  # отображение кнопки на экране
    btn[-1].config(command=lambda n=n:play(n))  # привязываем команду к кнопке
play(0)                         # вызываем play, чтобы перерисовать поле

mainloop()

Лист.

from tkinter import *           # импортируем всё из графической библиотеки tkinter
from random import shuffle      # импортируем функцию shuffle (перемешивает список)

cols = rows = 8                 # столбцы и строки (определяют размер игрового поля)
btn = []                        # список для всех кнопок (клеток)
playground = ['green', 'red'] * (cols*rows//2)  # значение определяет цвет клетки
shuffle(playground)             # перемешиваем цвета

def play(n=-1):                 # функция обработчик нажатия на кнопку
    global playground
    for i in range(cols * rows):    # цикл для перебора всех клеток
        if n != -1 and i % cols == n % cols:
            playground[i] = 'green' if playground[i] == 'red' else 'red'
        btn[i].config(bg = playground[i], activebackground = playground[i])

tk = Tk()                       # создаём главное окно программы
tk.geometry('750x750')          # устанавливаем размер окна
tk.title("Flip-flop")           # заголовок окна

# Создаём n кнопок и размещаем их в rows рядов по cols в каждом ряду
for n in range(cols * rows):    # цикл для перебора всех клеток
    if n % cols == 0:           # если n кратно количеству колонок, то
        f = Frame()             # создаём фрейм (контейнер для нового ряда)
        f.pack(expand=YES, fill=BOTH)   # размещение фрейма в окне программы
    btn += [Button(f)]          # добавляем в список новую кнопку
    btn[-1].pack(expand=YES, fill=BOTH, side=LEFT)  # отображение кнопки на экране
    btn[-1].config(command=lambda n=n:play(n))  # привязываем команду к кнопке
play()                          # вызываем play без аргумента, чтобы перерисовать поле

mainloop()

Лист.

from tkinter import *           # импортируем всё из графической библиотеки tkinter
from random import shuffle      # импортируем функцию shuffle (перемешивает список)

cols = rows = 8                 # столбцы и строки (определяют размер игрового поля)
btn = []                        # список для всех кнопок (клеток)
playground = ['green', 'red'] * (cols*rows//2)  # значение определяет цвет клетки
shuffle(playground)             # перемешиваем цвета

def play(n=-1):                 # функция обработчик нажатия на кнопку
    global playground
    r, c = divmod(n, cols)      # строка и столбец нажатой кнопки
    for i in range(cols * rows):    # цикл для перебора всех клеток
        if n != -1 and i // cols == r or i % cols == c:
            playground[i] = 'green' if playground[i] == 'red' else 'red'
        btn[i].config(bg = playground[i], activebackground = playground[i])

tk = Tk()                       # создаём главное окно программы
tk.geometry('750x750')          # устанавливаем размер окна
tk.title("Flip-flop")           # заголовок окна

# Создаём n кнопок и размещаем их в rows рядов по cols в каждом ряду
for n in range(cols * rows):    # цикл для перебора всех клеток
    if n % cols == 0:           # если n кратно количеству колонок, то
        f = Frame()             # создаём фрейм (контейнер для нового ряда)
        f.pack(expand=YES, fill=BOTH)   # размещение фрейма в окне программы
    btn += [Button(f)]          # добавляем в список новую кнопку
    btn[-1].pack(expand=YES, fill=BOTH, side=LEFT)  # отображение кнопки на экране
    btn[-1].config(command=lambda n=n:play(n))  # привязываем команду к кнопке
play()                          # вызываем play без аргумента, чтобы перерисовать поле

mainloop()

Лист.

from tkinter import *           # импортируем всё из графической библиотеки tkinter
from random import shuffle      # импортируем функцию shuffle (перемешивает список)

cols = rows = 8                 # столбцы и строки (определяют размер игрового поля)
btn = []                        # список для всех кнопок (клеток)

def start(event=None):
    """
    Инициализация новой игры (заполнение случайными значениями и отрисовка)
    """
    global playground           # глобальная переменная - виртуальное игровое поле
    playground = ['green', 'red'] * (cols*rows//2)  # значение определяет цвет клетки
    shuffle(playground)         # перемешиваем цвета
    play()                      # вызываем play без аргумента, чтобы перерисовать поле

def play(n=-1):                 # функция обработчик нажатия на кнопку
    global playground
    r, c = divmod(n, cols)      # строка и столбец нажатой кнопки
    for i in range(cols * rows):    # цикл для перебора всех клеток
        if n != -1 and i // cols == r or i % cols == c:
            playground[i] = 'green' if playground[i] == 'red' else 'red'
        btn[i].config(bg = playground[i], activebackground = playground[i])

tk = Tk()                       # создаём главное окно программы
tk.geometry('750x750')          # устанавливаем размер окна
tk.title("Flip-flop")           # заголовок окна

# Создаём n кнопок и размещаем их в rows рядов по cols в каждом ряду
for n in range(cols * rows):    # цикл для перебора всех клеток
    if n % cols == 0:           # если n кратно количеству колонок, то
        f = Frame()             # создаём фрейм (контейнер для нового ряда)
        f.pack(expand=YES, fill=BOTH)   # размещение фрейма в окне программы
    btn += [Button(f)]          # добавляем в список новую кнопку
    btn[-1].pack(expand=YES, fill=BOTH, side=LEFT)  # отображение кнопки на экране
    btn[-1].config(command=lambda n=n:play(n))  # привязываем команду к кнопке
tk.bind('<space>', start)       # событие на клавиатуре вызовет функцию
start()                         # инициализация новой игры

mainloop()

Лист