Это игра Minesweeper, написанная на Python с использованием библиотеки tkinter/Tkinter. Поддерживает python2 и python3.## Функции
Алгоритм игры представляет собой конечный автомат состояний. Существуют три состояния: игра в процессе, победа и поражение, из которых два последних являются конечными. Переключение состояний происходит при нажатии на клетку. Действия игры включают нажатие на клетку, которое может привести к трем случаям:
Карта Minesweeper может быть описана тремя атрибутами:
1000
0000
0101
1001
может быть представлена как
Map(width=4, height=4, mine_list=((0,0),(2,1),(2,3),(3,0),(3,3)))
```Эти три атрибута могут использоваться для вычисления других атрибутов карты.
### Игра (Game)
Класс Game был спроектирован как конечный автомат состояний, использующий объект карты Map в качестве источника данных. Объект игры, помимо объекта Map, использует двумерный объект _swept_state_map для отслеживания того, была ли клетка открыта.
0010 0000 0010 0000
В графическом интерфейсе пользовательского интерфейса (GUI) состояние каждой клетки изменяется в соответствии с этим объектом.
## Разработка
### Интерфейс
Этот интерфейс был создан с использованием встроенной библиотеки tkinter.
1 Ответственный за клетки кнопки.
(x,y) левый клик функция
self.bt_map[x][y] = tk.Button(self.map_frame, text='', command=lambda x=x, y=y: self._on_click(x, y))
(x,y) правый клик функция, использующая замыкание для передачи x,y в функцию обратного вызова
def right_click_handler(event, self=self, x=x, y=y): return self._on_right_click(event, x, y) self.bt_map[x][y].bind('', right_click_handler)
2 Автоматический счетчик шагов
У каждого элемента tkinter есть методы after и after_cancel для установки и отмены таймера.
Основной метод представлен ниже:
def _timer(self): if self._state:
## Тестирование
Команда
python minesweeper test.py test
## Запуск
python2 или python3
python app_tk.pyw
## Упаковка
Используйте [PyInstaller](https://pythonhosted.org/PyInstaller/) для упаковки.
Установка PyInstaller
pip install PyInstaller
На Windows, в директории path\Scripts\ создается файл pyinstaller.exe, который следует добавить в переменные среды.Выполните следующую команду:
pyinstaller app_tk.pyw -F -w
где
- `-F` одиночный файл
- `-w` без консольного приложения
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )