Пролог.
Команда супер героев во главе с капитаном Непобедимым врывается в здание секретной лаборатории мистера X, одного из самых великих супер злодеев вселенной CD.
Мистер X сидит в роскошном кожаном кресле, потягивает вино из бокала и скучающим взором смотрит на группу взъерошенный и взмыленных героев. Капитан Непобедимый крепко сжимает в руках орудие возмездия и говорит:
"Твоим планам не суждено сбыться, мистер X! Мы пришли остановить тебя и положить конец твоим гнусным планам!"
После секундной паузы Мистер X заливается совсем не злодейским смехом и отвечает своему давнему сопернику:
"Ты что же, думал, что я буду сидеть здесь, пить вино и ждать, пока ваше стадо примчится меня останавливать! Ты в своём уме, капитан! Весь мой весьма коварный план приведён в действие уже как стуки!"
Мистер X смеётся: "Ха-ха-ха, чтоб я ждал, ха-ха-ха!"
Итак, дорогие читатели! Сегодня я презентую вам Rubib! Что такое Rubib? Читайте!
UPD 14.12.2015 - добавлена отдельная страница в блоге для приложения RuBib.
Показаны сообщения с ярлыком tkinter. Показать все сообщения
Показаны сообщения с ярлыком tkinter. Показать все сообщения
воскресенье, 13 декабря 2015 г.
пятница, 4 декабря 2015 г.
Подарок на Новый Год
Дорогие читатели!
Как давече заметил коллега, что мой блог не очень часто обновляется, зато когда обновляется, то ого-го! Что ж, против правды не попрёшь, это так.
К Дню знаний я выложил электронный учебник по matplotlib "Научная графика в python". С тех пор нового материала особо не было, за исключением анонса удобного установщика Cartopy и Iris под Anaconda. Поэтому к Новому Году, а может быть и сильно раньше, постараюсь порадовать вас одним интересным проектом над которым я работал последний месяц, пока был в отпуске. Что это конкретно - пока сюрприз, всё-таки Новый Год как-никак.
Поэтому следите за блогом и "усё будет". А вот рисунок-подсказка. =)
К Дню знаний я выложил электронный учебник по matplotlib "Научная графика в python". С тех пор нового материала особо не было, за исключением анонса удобного установщика Cartopy и Iris под Anaconda. Поэтому к Новому Году, а может быть и сильно раньше, постараюсь порадовать вас одним интересным проектом над которым я работал последний месяц, пока был в отпуске. Что это конкретно - пока сюрприз, всё-таки Новый Год как-никак.
Поэтому следите за блогом и "усё будет". А вот рисунок-подсказка. =)
P.S. К католическому Рождеству будет железно!
понедельник, 21 сентября 2015 г.
Реализация игры "Жизнь"
Хочу поделиться своей реализацией игры Джона Конвея "Жизнь". Она доступна на моём канале GitHub в разделе PyGames.
О реализации
Игры была написана в качестве практики освоения ООП и стандартной библиотеки Tkinter.
Изначально я написал игру, где в качестве ячеек использовались кнопки-buttons. Однако, размер кнопок нельзя было уменьшить до нужного мне размера, когда я хотел большое поле. Тогда я воспользовался реализацией, предложенной на habrahabr, через прямоугольники. Там другой принцип реагирования - по позиционированию мыши.
В реализация доступно два режима игры: на ограниченном прямоугольнике и на торе. Можно выбрать одну из 5 скоростей появления поколений.
Начальное поле может быть задано как вручную с помощью мыши (левый клик - добавить жизнь в клетку, правый - убить клетку), так и выбрана предустановленная комбинация: с помощью кнопки RANDOM можно задать случайное поле, а с помощью кнопки FIGURE выбрать одну из известных фигур игры.
Файлы игры: main.py, mylife_oop3.py
Что получилось в итоге - представлено на сайте GitHub.
О реализации
Игры была написана в качестве практики освоения ООП и стандартной библиотеки Tkinter.
Изначально я написал игру, где в качестве ячеек использовались кнопки-buttons. Однако, размер кнопок нельзя было уменьшить до нужного мне размера, когда я хотел большое поле. Тогда я воспользовался реализацией, предложенной на habrahabr, через прямоугольники. Там другой принцип реагирования - по позиционированию мыши.
В реализация доступно два режима игры: на ограниченном прямоугольнике и на торе. Можно выбрать одну из 5 скоростей появления поколений.
Начальное поле может быть задано как вручную с помощью мыши (левый клик - добавить жизнь в клетку, правый - убить клетку), так и выбрана предустановленная комбинация: с помощью кнопки RANDOM можно задать случайное поле, а с помощью кнопки FIGURE выбрать одну из известных фигур игры.
Файлы игры: main.py, mylife_oop3.py
Что получилось в итоге - представлено на сайте GitHub.
Подписаться на:
Сообщения (Atom)
Как перевести 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...
-
Задача: Поставить компилятор fortran-а на компьютер/ноутбук с операционной системой Windows7 (на 64 разрядную) Методы решения: Geany, CVF...
-
Цель: Есть файл в формате netCDF. Хочется получить карту какой-либо гидрометеорологической величины за какой-нибудь временной срез в Window...
-
Цель: Освоить новые возможности GrADS для анализа гидрометеорологической информации Средства: GrADS Рассмотрим GRIB-файл "model...