[*] pr0gramm1ng basics
24 subscribers
50 photos
11 videos
20 files
41 links
Обзор различных кодов и импортируемых библиотек, информация об обновлениях и многое другое у меня на канале.
Download Telegram
[*] pr0gramm1ng basics
вот вам небольшой спойлер моего проекта. Слева можете увидеть его длину (почти 900 строк кода на данный момент) #ball_head_game #python
UPD: Скрипт готов, остались небольшие недочёты и можно выкладывать. Получилась программа на 1115 строк кода. В неё я добавил:

Два режима: singleplayer (одиночная игра) и multiplayer (игра с друзьями, но не по сети).

Скрипт игры получился очень гибкий, поэтому всё можно настроить под себя (в частности это параметры игровой логики).

Доработал запись и создание графиков по вашей игре (heatmap график, столбчатый график с количеством лопнутых шаров, график, показывающий вашу реакцию и другие графики).

Вся статистика последней игры и обновление рекордной статистики есть и сохраняется в json файлы.

Записывается Game_log с логами игры (что мы делали и какие события обрабатывались на протяжении всей игры).

Ограничения обновлены (некоторые стали больше, а некоторые меньше)

Были добавлены новые константы (например IS_RECORD для записи видео)

Наконец-то получилось сделать запись видео с помощью WRITER

Что я хочу доработать:

Добавить новые усложнения для перехода на новый уровень

Добавить больше шаров и прикольные фичи для них (например, шар-умножитель x2 или x3. Или, например, шар-бомба, появляющийся с 4 или 6 уровня)

Добавить возможно ещё какую-нибудь статистику для графиков или json файлов (возможно не будет⁉️)

Пока наверное всё. Как сделаю и наиграюсь с друзьями, так сразу выложу на GitHub. Надеюсь вам понравится ♥️

#python #ball_head_game
2
[*] pr0gramm1ng basics
UPD: Скрипт готов, остались небольшие недочёты и можно выкладывать. Получилась программа на 1115 строк кода. В неё я добавил: Два режима: singleplayer (одиночная игра) и multiplayer (игра с друзьями, но не по сети). Скрипт игры получился очень гибкий…
Привет, ребят 👋 Новый прогресс в проекте⁉️

🧑‍💻 На данный момент в мини-игре уже 1409 строк кода.

🛠️ Что было добавлено и исправлено:

Новый режим игры Time mode. В этом режиме игры вам надо набрать как можно больше очков за определённое время (по умолчанию 60 секунд, но его можно корректировать под себя)

Как и говорил, добавил новые 3 спецшарика.

1. Шар-бомба чёрного цвета. До него ни в коем случае нельзя прикасаться. Если же вы докаснулись до него, то вы взорвётесь и игра закончится. Разблокируется с 4 уровня

2. Шар-умножитель на 2. Когда собираешь этот шар, то все последующие очки от других шаров будут умножены на 2. Действует определённое время (по умолчанию 10 секунд, но можно корректировать) и разблокируется со 2 уровня.

3. Шар-умножитель на 3. Этот шар умножает все последующие очки на 3. Работает временно, как и шар-умножитель на 2 (время корректируется). Открывается со 2 уровня

Исправлен баг с загрузкой статистики в файлы по game_mode

Исправлен баг с уровнями

Добавлены новые константы

Добавлен новый звук (специально для шара-бомбы)

Добавлено поле BOOST для отслеживания шаров-умножителей (показывает насколько сейчас умножается количество очков каждого лопнувшего шара)

Что бы хотел добавить⁉️:

🌟 Новые шарики и усложнения

🌟 Придумал, что можно добавить. Систему комбо

🌟 Если уж и добавлять систему комбо, то и новую статистику, свзянную с системой комбо

🤔 Больше нет идей что можно добавить.

🧑‍🦳 Вообщем ещё сидим и терпим. Думаю где-то в середине и ближе к концу декабря выложу программу.

😓 С видео будет посложнее, потому что я не хочу показывать своё лицо. Думаю, если у mediapipe получится распознавать лица на картинках (например, распечатанное чёрно-белое фото кого-либо). Если получится, то и видео тоже будет. Других вариантов решения этой проблемы я пока не вижу (друзей тоже в видео вставлять не хочу)

📝 Можете написать что можно добавить в комментариях

#python #ball_head_game
1
Ещё одна неприятная новость. Сейчас у меня весь код в одном файле (1500 строк). Это не читабельно и я думал над тем, надо ли это менять или нет. Так вот, Я наверное возьму немного больше времени (до конца декабря) чтобы довести игру до ума и сделать читабельный код. Пока голосуйте за GUI, ну а с завтрашнего дня займусь "уборкой" в коде

#python #ball_head_game
😢2
[*] pr0gramm1ng basics
Привет 👋, как думаете надо ли в мою игру добавлять GUI, в котором можно будет удобно настроить все константы класса (например на tkinter или на PyQt6)?
Всем привет 👋

Итак, я делаю рефакторинг игры, добавляю GUI для констант, добавляю новые шарики и статистику и выпускаю игру. Продолжаем ждать пока не закончу разработку игры и не доведу её до идеала

#python #ball_head_game
Всем привет 👋

😎 Давайте я немного уведомлю вас о прогрессе готовности игры.

Что насчёт рефакторинга игры 🛠️

- Уже готовы несколько игровых менеджеров 🕵️, отвечающих за статистику и музыку 🎧
- Готов config с датаклассами
- К логике игры ещё не приступал, но думаю скоро начну

😔 Общий объём рефакторинга, запланированного мной, готов на 20-40 %

Что насчёт GUI для настройки констант 📝

- Датакласс подготовлен, но пока к самому приложению не приступал

Что нового добавил?

- добавил сохранение SEED и state engine с помощью NumPy
- придумал идеи новых шаров💡, НО пока не добавил их
- добавил статистику, связанную с комбо-системой 🎮

Примерное кол-во строк, сделанное на данный момент: 600-800 строк (примерно 40-50 % от прошлого файла)

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

🤔 Что думаете насчёт этого?

#python #ball_head_game
1
Всем привет 👋

Перешёл на стадию разработки логики (уже примерно 60-70% проекта готово). Параллельно с разработкой осваиваю git. Если релиза не будет 31 декабря, то он будет позже (в январе)

#python #ball_head_game
1
Кста о прогрессе в разработке игры 🤩

Игра готова на 80-85%. Создал 🕵️ валидатор (он проверят правильное ли значение было передано константе, а количество значений ограничено). Игровая логика написана на 40-50%. Шары новые ещё не добавлял. Также немного научился пользоваться git. Вообщем, не знаю успею ли я доделать, но если не успею, то скорее всего релиз в начале января. На этом пока всё 🤐

#python #ball_head_game
Всем привет 👋

Давно не уведомлял вас о прогрессе в разработке игры 🧑‍💻

Сегодня закончил делать всех менеджеров для игры. Они занимают более 1000 строк кода (Я точно не считал, но я уверен, что их больше). Осталась логика (с добавлением новых мной придуманных шаров) и главный файл запуска (с циклом игры). Думаю, что добавлю лицензию MIT. То есть игра закончена примерно на 85-87% (-10% если буду оформлять Readme.md и добавлять MIT лицензию).

Мотивации доделывать этот проект почти нет. Силы на исходе. Я устал эмоционально. Если как-нибудь поддержите в комментариях или поставите реакцию под этим постом, то я буду помнить для кого я стараюсь и буду находить в себе силы, чтобы продолжать работу 😮‍💨

Возможно возьму отдых на пару дней, чтобы чуть-чуть восстановиться 😴

Спасибо, что вы со мной 😔

#python #ball_head_game
Всем привет 👋

Я нашёл в себе силы и вышел на последние три шага.

Конкретно что я сделал:

1. Смог написать остаточную логику игры (победа 🥇)

2. Добавил ко всем файлам игры (кроме main.py) комментарии в виде docstrings (типо документация) на английском (перевод кривой, так как писал с левого переводчика. У меня не так хорошо с английским 😔)

3. Все файлы закоммитил с помощью git 🧑‍💻

Три шага для окончания проекта (~90% проекта сделано):

1. Собрать все файлы воедино в main.py и создать там главный цикл игры 🌀

2. Добавить Readme.md с картинками 🖼️

3. Выложить всё на GitHub и сделать пост здесь и видео в тик ток 🤩

Я думаю, всё ясно. Проект скоро...

#python #ball_head_game
Всем привет 👋

Проект доделан. Главный файл написан. Исправляю баги и ошибки. Делаю Readme.md и выкладываю на GitHub. После выкладываю пост в телеграмм и делаю видео в тик ток. А там уже посмотрим (может сразу выкачу обнову с новыми фичами)

На этом пока всё 🤐

#python #ball_head_game
Всем привет 👋

Баги (которые я нашёл в проекте пока его тестировал) были устранены. Сейчас я проверю проект (проверю docstrings), потом напишу Readme.md (не знаю сколько по времени займёт, потому что проект довольно объёмный) и выкладываю на GitHub, делаю пост и видео в Tik Tok. Возможно проект выйдет на просторы интернета сегодня или завтра (ждите 🥳).

#python #ball_head_game
Всем привет 👋

Проект моей игры сегодня утром был выложен на 👉 GitHub 👈

🧑 В этой игре ты должен головой лопать шарики, которые появляются на экране. Есть 3 режима игры:

1️⃣. Singleplayer: одиночная игра 🤵

2️⃣. Local multiplayer: локальный многопользовательский режим. В нём ты можешь играть со своими друзьями 🎭

3️⃣. Time mode: режим игры, в котором ты должен за определённое время лопнуть как можно больше шаров 🎈

📊 Эта игра также ведёт статистику. Она сохраняет графики, NumPy движок, JSON-файлы с рекордами и статистикой игры, ведёт игровой лог для отладки и сохраняет SEED, который был использован для создания NumPy движка.

📄 Версия игры: 1.0

#python #ball_head_game #project
1
Я удалил репозиторий.

Вот в чём проблема: вчера я удалил последний коммит. Видимо этот коммит повлиял на проект. Кароче проект не рабочий. Сейчас придётся его исправлять 😔

#python #ball_head_game
Кароче ребята, Я всеми силами пытался восстановить файлы проекта с помощью git и у меня получилось, но не все. Самый главный файл игры был уничтожен навсегда. У меня не получилось его восстановить. Если успею переписать главный файл, то выпущу сегодня. В ином случае снова придётся перенести выпуск на завтра 😔

Я расстроен 😮‍💨

#python #ball_head_game
Ребят, репозиторий обновлён. Проект выложен заново (теперь уже рабочий) 🥳🥳🥳🥳🥳

👉 Ссылка 👈

#ball_head_game #python
1🔥1
Я добавил релиз с архивами игры. Теперь я считаю проект можно называть завершённым. Я буду добавлять в него новые фичи и фиксить баги, ну а сейчас мне нужен отдых, примерно на неделю. Всем удачи 👋

Кстати, теперь я буду пытаться делать посты каждый (ведь больше проект меня не тревожит)

#ball_head_game #python
1
Всем привет 👋

💻 typer - библиотека для создания CLI-интерфейсов. Она позволяет из обычной функции с аннотациями типов сделать полноценную консольную утилиту

Установка:
pip install typer


Пример кода с использованием typer:

import typer
import math

app = typer.Typer() # создаём главный объект typer

@app.command() # декоратор для создания консольной команды
def hello(name: str): # команда hello. Обязательный атрибут: name
"""Says hello to a specific person (name)

Args:
name (str): the name of the person we want to say hello
"""
typer.echo(f'Hello, {name}') # выводит в консоль ответ команды

@app.command() # декоратор для создания консольной команды
def calc_planet_mass(
period: float = typer.Option(3600, help='satellite orbital period (seconds)'),
orbit_radius: float = typer.Option(7000000, help='orbit radius (meters)'),
G: float=6.67430e-11
): # команда calc-planet-mass. Атрибуты: --period 3600, --ordit-radius 7000000
"""Calculates the mass of the planet

Args:
period (float, optional): satellite orbital period (seconds). Defaults to typer.Option(3600, help='Period').
orbit_radius (float, optional): orbit radius (meters). Defaults to typer.Option(7000000, help='Orbit radius').
"""
mass = (4 * math.pi**2 * orbit_radius**3) / (G * period**2)
earth_mass = 5.972e24
typer.echo(f'Mass planet: {mass:.2e}') # выводит в консоль полученную массу планеты
typer.echo(f'It {mass/earth_mass:.3f} mass earth') # выводит в консоль количество планет земля в отношении массы планеты

if __name__ == '__main__':
app() # запускаем


Теперь если мы напишем:
python cli_app.py hello Oleg
# Выведет: Hello, Oleg

python cli_app.py hello Alina
# Выведет: Hello, Alina

typer cli_app.py run hello Roma
# Выведет: Hello, Roma

typer cli_app.py run hello Alla
# Выведет: Hello, Alla


Это будет с командой hello. Вот что будет с другой командой:
python cli_app.py calc-planet-mass
# Выведет:
# Mass planet: 1.57e+25
# It 2.621 mass earth

python cli_app.py calc-planet-mass --period 3000 --orbit-radius 9000000
# Выведет:
# Mass planet: 4.79e+25
# It 8.023 mass earth

typer cli_app.py run calca-planet-mass
# Выведет:
# Mass planet: 1.57e+25
# It 2.621 mass earth

typer cli_app.py run calc-planet-mass --period 3000 --orbit-radius 9000000
# Выведет:
# Mass planet: 4.79e+25
# It 8.023 mass earth


Вообщем эта библиотека подойдёт для создания небольших CLI инструментов

#typer #cli #python #libraries