понедельник, 21 сентября 2015 г.

Реализация игры "Жизнь"

Хочу поделиться своей реализацией игры Джона Конвея "Жизнь". Она доступна на моём канале GitHub в разделе PyGames.

О реализации

Игры была написана в качестве практики освоения ООП и стандартной библиотеки Tkinter.

Изначально я написал игру, где в качестве ячеек использовались кнопки-buttons. Однако, размер кнопок нельзя было уменьшить до нужного мне размера, когда я хотел большое поле. Тогда я воспользовался реализацией, предложенной на habrahabr, через прямоугольники. Там другой принцип реагирования - по позиционированию мыши.
В реализация  доступно два режима игры: на ограниченном прямоугольнике и на торе. Можно выбрать одну из 5 скоростей появления поколений.
Начальное поле может быть задано как вручную с помощью мыши (левый клик - добавить жизнь в клетку, правый - убить клетку), так и выбрана предустановленная комбинация: с помощью кнопки RANDOM можно задать случайное поле, а с помощью кнопки FIGURE выбрать одну из известных фигур игры.

Файлы игры: main.py, mylife_oop3.py

Что получилось в итоге - представлено на сайте GitHub.

Комментариев нет:

Отправить комментарий

Как перевести UV в направление и скорость ветра? How to convert wind UV-components to direction and velocity?

 Всё просто.  def uv2dir(u, v):     '''     Источник:     https://github.com/blaylockbk/Ute_WRF/blob/master/functions/wind_calc...