{"id":24149256,"url":"https://github.com/wh4tisl0ve/simulation","last_synced_at":"2025-07-01T13:07:41.184Z","repository":{"id":252146678,"uuid":"838842783","full_name":"Wh4tisl0ve/Simulation","owner":"Wh4tisl0ve","description":"Симуляция 2D мира, населенного травоядными и хищниками, где они взаимодействуют между собой","archived":false,"fork":false,"pushed_at":"2024-08-23T12:35:14.000Z","size":834,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-01T17:28:58.389Z","etag":null,"topics":["oop","python3"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Wh4tisl0ve.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-08-06T13:00:33.000Z","updated_at":"2025-01-30T16:30:39.000Z","dependencies_parsed_at":"2024-08-22T17:17:28.848Z","dependency_job_id":"ba56d675-290f-40b3-b27f-ac25e3ff6f7a","html_url":"https://github.com/Wh4tisl0ve/Simulation","commit_stats":null,"previous_names":["wh4tisl0ve/simulation"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Wh4tisl0ve/Simulation","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Wh4tisl0ve%2FSimulation","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Wh4tisl0ve%2FSimulation/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Wh4tisl0ve%2FSimulation/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Wh4tisl0ve%2FSimulation/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Wh4tisl0ve","download_url":"https://codeload.github.com/Wh4tisl0ve/Simulation/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Wh4tisl0ve%2FSimulation/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262969883,"owners_count":23392529,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["oop","python3"],"created_at":"2025-01-12T08:37:23.258Z","updated_at":"2025-07-01T13:07:41.161Z","avatar_url":"https://github.com/Wh4tisl0ve.png","language":"Python","readme":"# Симуляция\n\nСуть проекта - пошаговая симуляция 2D мира, населённого травоядными и хищниками.  \nКроме существ, мир содержит ресурсы, которыми питаются травоядные и статичные объекты, которые занимают клетку.\n\n2D мир представляет из себя матрицу NxM, каждое существо или объект занимают клетку целиком, нахождение в клетке нескольких объектов/существ - недопустимо.\n\nПроект создан в рамках **Python Roadmap Сергея Жукова** -\u003e [ссылка](https://zhukovsd.github.io/python-backend-learning-course/)\n\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"./docs/logo.png\" width=\"250\" height=\"250\" alt=\"logo\"/\u003e\n\u003c/p\u003e\n\n## Основные механики\n* Хищники ищут травоядных, для того, чтобы их атаковать. Хищники имеют силу атаки(рассчитанная с зависимостью от их возраста и веса) и диапазон атаки, при атаке у травоядного отнимается запас здоровья, равный силе атаки хищника;\n* Травоядные ищут ресурсы. И имеют запас здоровья(рассчитанный с зависимостью от их возраста и веса). При сближении с ресурсами, травоядные встают на место ресурса;\n* Существа имеют скорость(количество клеток, которое они могу пройти за 1 ход);\n* Существа генерирутся в зависимости от пропорций и размера карты.\n\n## Структура проекта\n\n* [main.py](main.py) Файл, позволяющий запустить процесс симуляции\n* [src/launcher.py](src/launcher.py) Содержит класс, позволяющий организовать общение с пользователем\n* [src/simulation.py](src/simulation.py) Главный класс приложения, хранит в себе информацию о карте, рендерере карты и списке действий, проводимыми над картой\n* [src/actions](src/actions) Директория, содержащая действия над миром\n* [src/view.py](src/view.py) Содержит в себе консольное представление игры\n* [src/map](src/map) Директория, которая содержит карту и её рендерер\n* [src/entities](src/entities) Директория, содержащая классы для всех существ и объектов существующих в симуляции\n* [src/entities/creatures](src/entities/creatures) Директория, содержащая классы живых существ\n* [src/entities/creatures/way_finder.py](src/entities/creatures/way_finder.py)  Класс, позволяющий найти путь к требуемым сущностям. Поиск пути реализован с использованием \"[Поиска в ширину](https://ru.wikipedia.org/wiki/Поиск_в_ширину)\"\n* [src/entities/resources](src/entities/resources) Директория, содержащая классы ресурсов\n* [src/entities/static_objects](src/entities/static_objects) Директория, содержащая классы статичных объектов\n\n## Процесс\n\n1. Начните игру выполнив `python3 main.py` в терминале.\n2. На экране появится главное меню игры, введите команду `1` для начала игры.\n\n   ![Menu](./docs/menu.jpg)\n\n3. После чего запустится симуляция.  \n\n   ![Start](./docs/start_simulation.jpg)\n\n4. Симуляцию можно поставить на паузу/продолжить с помощью ввода любого символа с клавиатуры и нажатия Enter.\n5. Наблюдайте за симуляцией и наслаждайтесь :)\n\n## Возможное развитие проекта\n* Механика размножения существ;\n* Механика голода, когда от отсутствия пищи у существ начинает уменьшаться HP;\n* Добавление всеядных существ;\n* Реализация поиска еды с использованием алгоритма A*;\n* Добавление графического интерфейса.\n\n\n## Стек\n\n* Python 3.11","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwh4tisl0ve%2Fsimulation","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwh4tisl0ve%2Fsimulation","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwh4tisl0ve%2Fsimulation/lists"}