Найти тему
SamAlex

Крестики Нолики на Python: 2 Рисуем крестики и нолики

Продолжаю серию статей по написанию игры «Крестики Нолики» на 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