[Перевод] Создание игр на Python 3 и Pygame: Часть 3

image
(Остальные части туториала: первая, вторая, четвёртая, пятая.)

Это третья из пяти частей туториала о создании игр с помощью Python 3 и Pygame. Во второй части мы рассмотрели класс TextObject, используемый для рендеринга текста на экран, создали основное окно и узнали, как отрисовывать объекты: кирпичи, мяч и ракетку.

В этой части мы погрузимся глубже в сердце Breakout и узнаем, как обрабатывать события, познакомимся с основным классом Breakout и увидим, как перемещать различные объекты в игре.

Обработка событий


В Breakout есть три типа событий: события нажатий клавиш, события мыши и события таймера. Основной цикл в классе Game обрабатывает нажатия клавиш и события мыши и передаёт их подписчикам (вызывая функцию-обработчик).

Хотя класс Game очень общий и не обладает знаниями о реализации Breakout, сама подписка и способы обработки событий очень специфичны.
Читать дальше →

Мега-Учебник Flask, Глава 8: Подписчики, контакты и друзья (издание 2018)

blog.miguelgrinberg.com


Miguel Grinberg




<<< предыдущая следующая >>>


Эта статья является переводом восьмой части нового издания учебника Мигеля Гринберга, выпуск которого автор планирует завершить в мае 2018.Прежний перевод давно утратил свою актуальность.




Это восьмая часть серии Flask Mega-Tutorial, в которой я расскажу вам, как реализовать функцию «подписчики», аналогичную функции Twitter и других социальных сетей.

Читать дальше →

[Перевод] Создание игр на Python 3 и Pygame: Часть 2

image
Во второй из пяти частей туториала, посвящённого созданию игр с помощью Python 3 и Pygame, мы рассмотрим класс TextObject, используемый для рендеринга текста на экране. Мы создадим основное окно, в том числе и фоновое изображение, а затем научимся отрисовывать объекты: кирпичи, мяч и ракетку.

Класс TextObject

Класс TextObject предназначен для отображения текста на экране. Можно сделать вывод, что с точки зрения дизайна он должен быть подклассом класса GameObject, потому что тоже является визуальным объектом и его тоже иногда нужно двигать. Но я не хотел вводить глубокую иерархию классов, при которой весь отображаемый Breakout текст оставался на экране неизменным. Класс TextObject создаёт объект шрифта. Он рендерит текст на отдельную текстовую поверхность, которая затем копируется (рендерится) на основную поверхность. Интересный аспект TextObject заключается в том, что у него нет какого-то фиксированного текста. Он получает функцию text_func(), вызываемую каждый раз, когда он рендерится. Это позволяет нам обновлять отображение жизней и очков в Breakout, просто создав функцию, возвращающую текущие жизни и очки, а не отслеживать то, какие текстовые объекты отображают очки и жизни и обновлять их текст при каждом их изменении. Это удобный трюк из функционального программирования, и в крупных играх он позволяет поддерживать удобство и аккуратность программы. ...Далее...

[Перевод] Как мы выстраивали инфраструктуру данных в Wish

Я пришел в Wish 2,5 года назад, дела в компании шли отлично. Наше приложение было в топе в iOS и Android магазинах и продавало более 2 миллионов товаров в день.

Мало кто верил, что можно построить большой бизнес, продавая дешевые товары. Однако, используя данные, Wish смогли бросить вызов этим сомнениям. Аналитика данных всегда была у нас в крови.

Но когда наш бизнес стал расти огромными темпами, мы не были к этому готовы, обнаружилось множество проблем с аналитикой. Каждая команда внутри компании стала нуждаться в срочной поддержке в работе с данными и многое упускала из виду в своем поле деятельности. В то время наши аналитические возможности еще только зарождались и не могли удовлетворить все растущий спрос.

В данном посте я расскажу о том, какие уроки мы извлекли за это время, а также распишу верный путь для компаний, находящихся в поисках способов масштабирования их аналитических функций.


Читать дальше →

10 языков программирования для изучения в 2018 году

Вышло ежегодное исследование TIOBE Index for January 2018, где определены самые популярные языки программирования 2018 года. Рассказываем, какие языки вошли в топ-10, в какой сфере они применяются и какие задачи выполняют. Опытные разработчики пройдут мимо — ничего интересного, а джуниоры определят интересную сферу и выберут перспективный язык для изучения. Дерзайте!


Читать дальше →

Приглашаем на итоги конкурса по анализу данных



В эту пятницу (15 декабря) мы приглашаем читателей Хабра присоединиться к онлайн трансляции награждения победителей конкурса по прогнозированию невозврата кредита. Состязание длилось 4 месяца, задача была предоставлена Банком Хоум Кредит (собственно, как и данные).

Мы наградим победителей и призеров, послушаем презентации их решений.

  • 1 место и Академический приз — Анзор Березгов
  • 2 место — Иван Тимошилов
  • 3 место — Александр Дьяконов
  • Приз SAS — Дарья Соболева

Читать дальше →

Анонс Moscow Spark #3

image

Всем привет! Мы долго готовились, искали крутых докладчиков и, наконец, анонсируем Moscow Spark #3, который состоится 16 ноября на Мансарде Rambler&Co! Предыдущий митап собрал почти 250 человек, и мы рассчитываем, что сможем собрать не меньше в этот раз. Ключевой темой этого мероприятия станет Spark Streaming, актуальная и очень интересная часть фреймворка Apache Spark.
Читать дальше →

Синтаксический анализ в NLTK

Здравствуйте. Это статья об синтаксическом анализе предложений, их представлении. Для разбора предложений будет использоваться пакет NLTK и язык программирования Python (версии 2.7).

Вступление


В моей предыдущей статье мы рассматривали морфологические анализаторы и их использование. Настоятельно рекомендую прочитать её, чтобы лучше понять данную статью. Также там рассматривается установка и настройка пакета NLTK.
Читать дальше →

Submit the cool project: свой API-client с одного конфигурационного файла


Привет, Хабрахабр! Я тут недавно сделал тулзу, которая генерирует целую обертку-клиент над любым API, который ты только захочешь, с одного yml-файла, а потом сразу же загружает его в Python Package Index (PyPi). Да, результат можно установить в свой любой проект с помощью pip и начать пользоваться. Подробнее под катом!
Читать дальше →

«Используй Силу машинного обучения, Люк!» или автоматическая классификация светильников по КСС

«Сила машинного обучения окружает нас, методы её окружают нас и связывают. Сила вокруг меня, везде, между мной, тобой, решающим деревом, лассо, гребнем и вектором опорным»

Так бы, наверное, мне сказал Йода если бы он учил меня пути Data Science.

К сожалению, пока среди моих знакомых зеленокожие морщинистые личности не наблюдаются, поэтому просто продолжим вместе с вами наш совместный путь обучения науке о данных от уровня абсолютного новика до … настоящего джедая того, что в итоге получиться.

В прошлых двух статьях мы решали задачу классификации источников света по их спектру (на Python и C# соответственно). В этот раз попробуем решить задачу классификации светильников по их кривой силе света (по тому пятну которым они светят на пол).

Если вы уже постигли путь силы, то можно сразу скачать dataset на Github и поиграться с этой задачей самостоятельно. А вот всех, как и я новичков прошу подкат.

Благо задачка в этот раз совсем несложная и много времени не займет.

Читать дальше →
  • Новее
  • 1


Последние посты