Skip to content

J-Bakuli/Simulation_Bakuli

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Simulation_Bakuli

Небольшой pet-проект про симуляцию 2D-экосистемы: в мире живут травоядные и хищники, растёт трава, а некоторые объекты просто занимают клетки и создают препятствия. Проект сделан как пошаговая симуляция, где каждое существо принимает решение и действует в рамках одного тика.

Что здесь происходит

Мир — это сетка N x M, где каждая сущность занимает ровно одну клетку.
В одной клетке не может находиться несколько объектов одновременно. В симуляции участвуют:

  • травоядные и хищники;
  • трава как источник пищи;
  • статичные объекты (препятствия).

Как работает логика

  • симуляция работает в состояниях: RUNNING, PAUSED, STOPPED;
  • еда ищется через BFS:
    • сначала рядом, в соседних клетках;
    • если не найдена — поиск в ширину с лимитом MAX_SEARCH_DEPTH;
  • в консоли доступно управление: Pause / Continue / Exit;
  • основной цикл работает в отдельном потоке, а пауза ограничена PAUSE_TIMEOUT_MS.

Почему проект полезный

Здесь я практикую:

  • ООП и моделирование поведения агентов;
  • применение BFS в реальной задаче;
  • многопоточность и управление состояниями;
  • проектирование симуляций на Java.

Что хочу улучшить дальше

  • сделать поведение агентов более “умным”, добавить голод хищников;
  • добавить новые типы сущностей и взаимодействий;
  • улучшить визуализацию мира;
  • выполнить покрытие тестами.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages