Skip Navigation
pythontalk_ru
Наука и Технологии вчера
Telegram
Тетрис на Python: классика жанра или архитектурный хоррор?


Тетрис (ну и Змейка) — это «Hello World» в мире геймдева. Казалось бы, испортить его сложно, но автор этого репозитория очень старался. Разбираем проект, который преподносится как «обучающий материал для начинающих». Да, код рабочий, проект законченный, даже видео на YouTube есть. Но на деле там учат вредным привычкам.

1️⃣ Отсутствие точки входа
В main.py код просто навален в корень файла. Никакого if __name__ == "__main__":. Если вы попробуете импортировать что-то из этого файла (хотя зачем?), у вас сразу инициализируется Pygame и откроется окно.

2️⃣ Беда с пространством имен
В game.py мы видим прекрасное: from blocks import *.
Запомните: каждый раз, когда вы используете import *, вы забиваете пространство имен мусором. Какие классы прилетели? Откуда? Никто не знает.

3️⃣ Класс-оркестр
Класс Game — это и швец, и жнец. Он управляет логикой, считает очки, загружает звуки, проигрывает музыку и... отрисовывает блоки.
Нарушение SRP (Single Responsibility Principle) на лицо. Логика игры не должна знать о существовании pygame.mixer или о том, как рисовать прямоугольники.

# В недрах Game.__init__
self.rotate_sound = pygame.mixer.Sound("Sounds/rotate.ogg")
pygame.mixer.music.load("Sounds/music.ogg")

Хотите поменять звуковую библиотеку? Удачи переписывать всё ядро игры.

4️⃣ ООП головного мозга: Наследование ради... ничего
В blocks.py мы видим классическую ошибку: создание семи разных классов (LBlock, JBlock и т.д.), которые наследуются от Block только ради того, чтобы в __init__ вписать словарик с координатами.

Это классический оверинжиниринг. Все эти классы не имеют уникального поведения, только разные данные.

Как надо: Один класс Block, который принимает тип фигуры или конфиг при инициализации. Данные отдельно, логика отдельно.

5️⃣ Класс Position — зачем?
class Position:
def __init__(self, row, column):
self.row = row
self.column = column

Создавать целый класс для хранения двух целых чисел — это избыточно. В Python есть namedtuple, dataclasses или, в конце концов, просто кортежи (row, col).

6️⃣ Магические числа и хардкод
if self.next_block.id == 3:
self.next_block.draw(screen, 255, 290)
elif self.next_block.id == 4:
self.next_block.draw(screen, 255, 280)

Это «костыльный» UI в чистом виде. Вместо того чтобы вычислить центр области предпросмотра, автор просто подогнал координаты под конкретные ID блоков. Добавите новый блок — и вся верстка поплывет.

7️⃣ Обработка счета из эпохи мамонтов
В game.py мы видим это:

def update_score(self, lines_cleared, move_down_points):
if lines_cleared == 1:
self.score += 100
elif lines_cleared == 2:
self.score += 300
# ... и так далее


Как надо: Обычный словарь или список коэффициентов сделал бы этот код в одну строку. elif-цепочки для простых соответствий — верный признак того, что автор не умеет в структуры данных.

🧑‍⚖️ Вердикт:
Как учебный проект — пойдет. Если учитесь по таким туториалам, помните: их цель — показать результат за 20 минут видео, а не научить вас писать нормальный код. Не тащите эти паттерны в продакшен.

#жарим_код
esenin_mind
Маркетинг 3 март
Telegram
Основано на реальных событиях


Основано на реальных событиях.

1925 год. Молодой писатель Рыбкин выпустил книгу тиражом примерно 10 000 экземпляров.

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

И тогда маркетолог, приятель Рыбкина, дал ему совет разместить объявление в газете.

«Молодой симпатичный миллионер ищет девушку, похожую на героиню книги Г. Рыбкина»

На следующий день тираж исчез с полок полностью.

Никакой рекламной кампании. Никакого слива бюджета. Никаких A/B тестов. Никаких танцев с бубном. Только одно точное попадание в то, чего хочет человек на самом деле.

Книга не изменилась. Изменился смысл, через который её увидели.

Вот и весь маркетинг.

Побеждает не тот, кто громче кричит КУПИТЕ. А тот, кто точнее чувствует свою аудиторию: что её греет, что пугает, о чём она мечтает в три часа ночи.

Это и есть маркетинг без бюджета. Не дешёвый, а умный.

И он работал в 1925-м. Работает в 2026-м. И будет работать всегда, пока у людей есть желания, которые они не умеют назвать вслух.

Маркетинг — это не реклама. Это наука о понимании своей ЦА.


Маркетинг на простом, Стас Есенин
musinpro
Авторские блоги 3 март
Telegram
«Манипуляция сознанием» Сергей Кара-Мурза - это инструкция, как нас делают зомби, только без бонуса «вкуса мозга»


«Манипуляция сознанием» Сергей Кара-Мурза - это инструкция, как нас делают зомби, только без бонуса «вкуса мозга».

Автор с академическим спокойствием объясняет, почему медиа - не окно в мир, а лазер для лоботомии.

После прочтения начинаешь подозревать даже тостер в идеологической обработке.

#book
sokolovenergy
Бизнес и экономика 28 февр
Telegram
Коллеги сообщают, что сегодня отмечается День Арктики


Коллеги сообщают, что сегодня отмечается День Арктики. Хочу поздравить всех причастных, а самой Арктике пожелать, чтобы её оставили в покое (к сожалению, в нынешних реалиях, об этом можно только мечтать). Вчера же, оказывается, умер Дэн Симмонс, автор "Гипериона", но мне он больше запомнился другой своей книгой.
newssamara763
Новости 28 февр
Telegram
Только у трех судей из Краснодарского края, о которых писали СМИ, конфисковали активов почти на 50 млрд рублей


Только у трех судей из Краснодарского края, о которых писали СМИ, конфисковали активов почти на 50 млрд рублей. Речь идет о бывшем председателе Краснодарского краевого суда Александре Чернове, бывшем председателе Верховного суда Адыгеи Аслане Трахове, заместителе председателя Краснодарского краевого суда Игоре Николайчуке, а еще о родственниках и людях, которых называют доверенными. Всего изъяли активов на 47,7 млрд рублей.

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

@newssamara763
Telegram
27 февраля в ИНТЦ «Валдай» в Великом Новгороде прошла презентация книги «Золотой сон бюрократии» об СССР


27 февраля в ИНТЦ «Валдай» в Великом Новгороде прошла презентация книги «Золотой сон бюрократии» об СССР. Книгу представил автор Павел Крашенинников, председатель комитета Госдумы по госстроительству и законодательству и сопредседатель Ассоциации юристов России. Полный материал опубликован на сайте «53 новости».

@newsVelikyNovgorod53
litcritic
Книги и литература 26 февр
Telegram
🔥 Что мы готовим в ближайшем обновлении❓


🔥 Что мы готовим в ближайшем обновлении

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


📎 Режим «Нон-фикшн» для Инструментов Творца
Теперь планировать и организовывать работу можно не только над художественными произведениями, но и над научно-популярными текстами.

В паспорт истории добавим разделы: Тема, Миссия, Идея книги.
Уберем лишнее: Персонажи и Элементы мира.
• Адаптируем внутренние инструкции моделей под нехудожественные тексты.


📂 Комплексный анализ нескольких документов
Анализ научится работать с главами, разбитыми на отдельные файлы внутри одного проекта. Больше не нужно будет выбирать между комплексным анализом и работай с Паспортом истории


🔝 Выбор моделей
В функциях Творца (Написать, Переписать, Описать и др.), а также при создании Сцен и Черновиков, появится выбор модели.
Можно использовать базовую или подключить одну из поддерживаемых.
• В тестовой версии планируем поддержку семейств: GPT, Claude, Gemini, Grok.


👀 История операций
Доработали лог действий. Теперь вы увидите список из последних 20 операций и расход токенов по каждой из них.


🔄Синопсисы и аннотации
Услышали вашу обратную связь: это нужно для конкурсов, питчей и отправки в редакции. Сейчас изучаем, как лучше реализовать генерацию на основе готового текста или комплексного анализа. Если есть идеи — пишите!


〰️ Озвучка текста
Пока не в ближайшем обновлении, но мы активно рассматриваем возможность добавления функции озвучки произведений.


Важно: Большинство функций мы создаем благодаря вашей обратной связи. Нам важно знать, что вы думаете!

Делитесь ожиданиями и предпочтениями:

• В комментариях к этому посту
• В личных сообщениях канала
• На нашу почту
• Через виджет поддержки на сайте LitCritic AI

#LitCritic #писатель #автор
litcritic
Книги и литература 18 февр
Telegram
❤️ Получаем от вас много положительной обратной связи по поводу нового функционала «Комплексный анализ» — и видим большое количество вопросов, которые вы нам присылаете!


❤️ Получаем от вас много положительной обратной связи по поводу нового функционала «Комплексный анализ» — и видим большое количество вопросов, которые вы нам присылаете!

💾В новой статье блога LitCritic AI мы постарались максимально подробно разобрать работу инструмента: Обзор комплексного анализа LitCritic AI - Как увидеть своё произведение целиком

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

#LitCritic #писатель #автор

Управлять можно с клавиатуры

Работает в лентах: голосование, переход между постами и разворот текста.

W
S
A
D
F
Топ авторов за месяц
Свежие комментарии