Напишем на Python с графической библиотекой tkinter программу (заготовку) для логических игр c прямоугольным полем. В качестве клеток на поле будем использовать кнопки (класс Button).
Перечислим примеры таких игр:
- Шашки,
- Шахматы,
- Го,
- Уголки,
- Крестики нолики,
- Линии
- Пазлы - головоломки:
- Пятнашки,
- Где ест уж,
- Чайный сервиз,
- Flip-Flop,
- Тренировка памяти,
- Сапёр,
- Пег,
- Игры с цифрами,
- Судоку
- Арифметика:
- Number Match
- Трубопровод...
h,k
from tkinter import * # графическая библиотека
from random import shuffle # перемешать список suffle(A)
Tk() # главное окно программы
mainloop() # главный цикл программы
Лист. 1.
Рис. 1.
from tkinter import * # графическая библиотека
from random import shuffle # перемешать список suffle(A)
Button() # конструктор кнопки
mainloop() # главный цикл программы
Лист. 2.
from tkinter import * # графическая библиотека
from random import shuffle # перемешать список suffle(A)
Button().pack()
mainloop() # главный цикл программы
Лист. 3.
Рис. 2.
from tkinter import * # графическая библиотека
from random import shuffle # перемешать список suffle(A)
Button().pack()
Button().pack()
Button().pack()
mainloop() # главный цикл программы
Лист. 4.
Рис. 3.
from tkinter import * # графическая библиотека
from random import shuffle # перемешать список suffle(A)
Button().pack(expand=YES)
Button().pack(expand=YES)
Button().pack(expand=YES)
mainloop() # главный цикл программы
Лист. 5.
Рис. 4.
from tkinter import * # графическая библиотека
from random import shuffle # перемешать список suffle(A)
Button().pack(expand=YES, fill=BOTH)
Button().pack(expand=YES, fill=BOTH)
Button().pack(expand=YES, fill=BOTH)
mainloop() # главный цикл программы
Лист. 6.
Рис. 5.
from tkinter import * # графическая библиотека
from random import shuffle # перемешать список suffle(A)
Button().pack(expand=YES, fill=BOTH, side=LEFT)
Button().pack(expand=YES, fill=BOTH, side=LEFT)
Button().pack(expand=YES, fill=BOTH, side=LEFT)
mainloop() # главный цикл программы
Лист. 7.
Рис. 6.
from tkinter import * # графическая библиотека
from random import shuffle # перемешать список suffle(A)
Frame().pack(expand=YES, fill=BOTH) # Фрейм
Button().pack(expand=YES, fill=BOTH, side=LEFT)
Button().pack(expand=YES, fill=BOTH, side=LEFT)
Button().pack(expand=YES, fill=BOTH, side=LEFT)
mainloop() # главный цикл программы
Лист. 8.
Рис. 7.
from tkinter import * # графическая библиотека
from random import shuffle # перемешать список suffle(A)
Frame(bd=2, relief="sunken").pack(expand=YES, fill=BOTH)
Frame(bd=2, relief="sunken").pack(expand=YES, fill=BOTH)
Frame(bd=2, relief="sunken").pack(expand=YES, fill=BOTH)
Button().pack(expand=YES, fill=BOTH, side=LEFT)
Button().pack(expand=YES, fill=BOTH, side=LEFT)
Button().pack(expand=YES, fill=BOTH, side=LEFT)
mainloop() # главный цикл программы
Лист. 9.
Рис. 8.
from tkinter import * # графическая библиотека
from random import shuffle # перемешать список suffle(A)
f = Frame(bd=2, relief="sunken")
f.pack(expand=YES, fill=BOTH)
f = Frame(bd=2, relief="sunken")
f.pack(expand=YES, fill=BOTH)
f = Frame(bd=2, relief="sunken")
f.pack(expand=YES, fill=BOTH)
Button().pack(expand=YES, fill=BOTH, side=LEFT)
Button().pack(expand=YES, fill=BOTH, side=LEFT)
Button().pack(expand=YES, fill=BOTH, side=LEFT)
mainloop() # главный цикл программы
Лист. 10.
from tkinter import * # графическая библиотека
from random import shuffle # перемешать список suffle(A)
f = Frame(bd=2, relief="sunken")
f.pack(expand=YES, fill=BOTH)
f = Frame(bd=2, relief="sunken")
f.pack(expand=YES, fill=BOTH)
f = Frame(bd=2, relief="sunken")
f.pack(expand=YES, fill=BOTH)
Button(f).pack(expand=YES, fill=BOTH, side=LEFT)
Button(f).pack(expand=YES, fill=BOTH, side=LEFT)
Button(f).pack(expand=YES, fill=BOTH, side=LEFT)
mainloop() # главный цикл программы
Лист. 11.
Рис. 9.
from tkinter import * # графическая библиотека
from random import shuffle # перемешать список suffle(A)
f = Frame()
f.pack(expand=YES, fill=BOTH)
Button(f).pack(expand=YES, fill=BOTH, side=LEFT)
Button(f).pack(expand=YES, fill=BOTH, side=LEFT)
Button(f).pack(expand=YES, fill=BOTH, side=LEFT)
f = Frame()
f.pack(expand=YES, fill=BOTH)
Button(f).pack(expand=YES, fill=BOTH, side=LEFT)
Button(f).pack(expand=YES, fill=BOTH, side=LEFT)
Button(f).pack(expand=YES, fill=BOTH, side=LEFT)
f = Frame()
f.pack(expand=YES, fill=BOTH)
Button(f).pack(expand=YES, fill=BOTH, side=LEFT)
Button(f).pack(expand=YES, fill=BOTH, side=LEFT)
Button(f).pack(expand=YES, fill=BOTH, side=LEFT)
mainloop() # главный цикл программы
Лист. 12.
Рис. 10.
from tkinter import * # графическая библиотека
from random import shuffle # перемешать список suffle(A)
for i in range(3):
f = Frame()
f.pack(expand=YES, fill=BOTH)
Button(f).pack(expand=YES, fill=BOTH, side=LEFT)
Button(f).pack(expand=YES, fill=BOTH, side=LEFT)
Button(f).pack(expand=YES, fill=BOTH, side=LEFT)
mainloop() # главный цикл программы
Лист. 13.
from tkinter import * # графическая библиотека
from random import shuffle # перемешать список suffle(A)
for i in range(3):
f = Frame()
f.pack(expand=YES, fill=BOTH)
for j in range(3):
Button(f).pack(expand=YES, fill=BOTH, side=LEFT)
mainloop()
Лист. 14.
from tkinter import * # графическая библиотека
from random import shuffle # перемешать список suffle(A)
column = 5 # столбцы
row = 5 # строки
for i in range(row):
f = Frame()
f.pack(expand=YES, fill=BOTH)
for j in range(column):
Button(f).pack(expand=YES, fill=BOTH, side=LEFT)
mainloop()
Лист. 15.
Рис. 11.
from tkinter import * # графическая библиотека
from random import shuffle # перемешать список suffle(A)
column = 5 # столбцы
row = 5 # строки
for i in range(row):
f = Frame()
f.pack(expand=YES, fill=BOTH)
for j in range(column):
Button(f, font =("mono", 16, "bold"), width = 5, height=3).pack(expand=YES, fill=BOTH, side=LEFT)
mainloop()
Лист. 16.
Рис. 12.
from tkinter import * # графическая библиотека
from random import shuffle # перемешать список suffle(A)
column = 5 # столбцы
row = 5 # строки
btn = [] # список кнопок
for i in range(row):
f = Frame()
f.pack(expand=YES, fill=BOTH)
for j in range(column):
btn += [Button(f, font =("mono", 16, "bold"), width = 5, height=3)]
btn[-1].pack(expand=YES, fill=BOTH, side=LEFT)
mainloop()
Лист. 17.
from tkinter import * # графическая библиотека
from random import shuffle # перемешать список suffle(A)
column = 5 # столбцы
row = 5 # строки
btn = [] # список кнопок
def play(n): # функция обработчик нажатия на кнопку
print(n)
for i in range(row):
f = Frame()
f.pack(expand=YES, fill=BOTH)
for j in range(column):
btn += [Button(f, font =("mono", 16, "bold"), width = 5, height=3)]
btn[-1].pack(expand=YES, fill=BOTH, side=LEFT)
btn[-1].config(text = " ", command=lambda n=i*column+j:play(n))
mainloop()
Лист. 18.
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):
btn += [Button(f, font =("mono", 16, "bold"), width = 5, height=3)]
btn[-1].pack(expand=YES, fill=BOTH, side=LEFT)
btn[-1].config(text = " ", command=lambda n=i*column+j:play(n))
mainloop()
Лист. 19.
Рис. 13.
Рис. 2. Изображения шариков в png формате.
Игровое поле с картинками.
from tkinter import * # графическая библиотека
from random import shuffle # перемешать список suffle(A)
column = 5 # столбцы
row = 5 # строки
btn = [] # список кнопок
def play(n): # функция обработчик нажатия на кнопку
btn[n].config(image = img)
tk = Tk()
img = PhotoImage(file="scarlet.png")
for i in range(row):
f = Frame()
f.pack(expand=YES, fill=BOTH)
for j in range(column):
btn += [Button(f, font =("mono", 16, "bold"), width = 5, height=3)]
btn[-1].pack(expand=YES, fill=BOTH, side=LEFT)
btn[-1].config(text = " ", command=lambda n=i*column+j:play(n))
mainloop()
Лист. 20.
Рис. 14.
from tkinter import * # графическая библиотека
from random import shuffle # перемешать список suffle(A)
column = 5 # столбцы
row = 5 # строки
btn = [] # список кнопок
def play(n): # функция обработчик нажатия на кнопку
btn[n].config(image = img)
tk = Tk()
img = PhotoImage(file="scarlet.png")
for i in range(row):
f = Frame()
f.pack(expand=YES, fill=BOTH)
for j in range(column):
btn += [Button(f)]
btn[-1].pack(expand=YES, fill=BOTH, side=LEFT)
btn[-1].config(command=lambda n=i*column+j:play(n))
mainloop()
Лист. 21.
Рис. 15.
Рис. Прозрачное изображение размером 50х50 px.
from tkinter import * # графическая библиотека
from random import shuffle # перемешать список suffle(A)
column = 5 # столбцы
row = 5 # строки
btn = [] # список кнопок
def play(n): # функция обработчик нажатия на кнопку
btn[n].config(image = img)
tk = Tk()
imgBL = PhotoImage(file="blank.png")
img = PhotoImage(file="scarlet.png")
for i in range(row):
f = Frame()
f.pack(expand=YES, fill=BOTH)
for j in range(column):
btn += [Button(f, image=imgBL)]
btn[-1].pack(expand=YES, fill=BOTH, side=LEFT)
btn[-1].config(command=lambda n=i*column+j:play(n))
mainloop()
Лист. 22.
Рис. 16.
from tkinter import * # графическая библиотека
from random import shuffle # перемешать список suffle(A)
column = 5 # столбцы
row = 5 # строки
btn = [] # список кнопок
img = []
files = ['red.png', 'yellow.png', 'gold.png',
'green.png', 'emerald.png', 'cyan.png',
'blue.png', 'pink.png','azure.png',
'bronze.png', 'purple.png', 'scarlet.png',
'steel.png', 'silver.png']
def play(n): # функция обработчик нажатия на кнопку
shuffle(img)
btn[n].config(image = img[0])
tk = Tk()
imgBL = PhotoImage(file="blank.png")
for i in files:
img += [PhotoImage(file=i)]
for i in range(row):
f = Frame()
f.pack(expand=YES, fill=BOTH)
for j in range(column):
btn += [Button(f, image=imgBL)]
btn[-1].pack(expand=YES, fill=BOTH, side=LEFT)
btn[-1].config(command=lambda n=i*column+j:play(n))
mainloop()
Лист. 23.
Рис. 17.