Продолжаю серию статей по написанию игры «Крестики Нолики» на Python.
Предыдущие части:
1 Игровое поле.
В предыдущей статье мы создали игровое поле, используя библиотеку Tkinter. В этой статье определим две функции для отрисовки «Крестика» и «Нолика», а также еще одну функцию, которая будет обрабатывать клик по игровому полю и вызывать функцию отрисовки «Крестика» или «Нолика» с передачей координат клика.
Определим функцию «add_x» отрисовки крестика. Функция будет принимать два параметра «колонку» и «ряд», где необходимо отрисовать «крестик». Крестик будет состоять из двух диагональных линий, которые будем создавать с помощью метода «create_line». Определим координаты «х» и «у», крестик будем рисовать «80 на 80» пикселей, а игровая ячейка «100 на 100» пикселей.
Координата "х"
х = "делаем отступ от края ячейки 10 пикселей" + ("ширина ячейки 100 пикселей" * "колонку")
x = 10 + 100 * column
Координата "y"
y = "делаем отступ от края ячейки 10 пикселей" + ("ширина ячейки 100 пикселей" * "ряд")
y = 10 + 100 * row
Теперь напишем нашу функцию полностью. Цвет определим «##0000FF», ширину линии 7 пикселей.
Вызовем ее несколько раз, передав разные параметры. И проверим ее работоспособность.
Все работает, «крестики» появились в заданных ячейках.
Определим функцию «add_o» отрисовки нолика. Функция будет принимать два параметра «колонку» и «ряд», где необходимо отрисовать «нолик». Нолик будем создавать с помощью метода «create_oval». Координаты «х» и «у» будем находить так же, как и в предыдущей функции.
Вызовем ее несколько раз передав разные параметры. И проверим ее работоспособность.
Все работает, «нолики» появились в заданных ячейках.
Определим еще одну функцию «click» которая будет обрабатывать клики по игровому полю. Функция будет принимать один параметр «событие» и вызывать функцию «add_x» (мы будем играть крестиками) передавая в нее координаты ячейки, по которой был совершен клик.
В функции извлекаем значения атрибутов «х» и «у» объекта «event», в которых хранятся координаты местоположения курсора мыши, выполняем их целочисленное деление на размер нашей ячейки 100 пикселей, результат которого будут координаты наших ячеек. И вызывает функцию «add_x».
Что бы наша функция «click» вызывалась при клике мыши на игровом поле, необходимо добавить обработчик событий, который будет ее вызывать. Обработку событий будем делать с помощью метода «bind».
Запускаем и проверяем. Все отрабатывает, как мы планировали. При клике на ячейку в ней появляется крестик.
А на сегодня все.
Спасибо за внимание. Если Вам понравился материал, буду рад, если поставите "Лайк", оставите комментарий и подпишитесь на мой канал.
Продолжение следует:
3 Глупый бот
4 Проверка на выигрыш
5 Старт, Стоп и Результаты игры
6 Мозги для Бота
7 Из PY в EXE
#python #игра на python #tkinter #create_line
#create_oval #функции python