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()
Лист