Skip to content

codemistake/nightclub

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Nightclub

Тестовое задание:

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

Когда играет Rnb на танцполе танцуют те, кто танцует хип-хоп, рнб. Когда играет Electrohouse на танцполе танцуют те, кто танцует Electrodance, house. Когда играет Поп-музыка танцуют те, кто умеет танцевать под поп-музыку. Если человек не умеет танцевать под данную музыку, он идет в бар и пьет водку.

Танцы представляют из себя движения телом, руками, ногами, головой. В разных танцах они задействованы по-разному:

  • в хип хопе покачивания телом вперед и назад, ноги в полу-присяде, руки согнуты в локтях, головой вперед-назад.
  • в электродэнс покачивание туловищем вперед-назад, почти нет движения головой, круговые движения - вращения руками, ноги двигаются в ритме.
  • в танцах под поп-музыку в основном плавные движения туловищем, руками, ногами и головой.

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

Необходимо реализовать код, с помощью которого можно собрать в клуб определенную публику, и запустить определенный набор музыкальных композиций. Желательно, чтобы код был расширяем. Поведение персонажей (что происходит в клубе) следует выводить на экран текстом. Результат должен быть проверяемым: в любой момент времени должно быть понятно, какая музыка играет, и какой конкретно персонаж какие действия выполняет.

Вывод в консоли:

                                                                                                                                      
┌──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│                                                                                                                                  │
│                                          Яков Бобров - Burn My Passion [00:00 / 00:03]                                           │
│                                                         ♪ Жанр: Hip-hop                                                          │
│                                                                                                                                  │
└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
┌──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│                                                                                                                                  │
│                                                             Танцпол                                                              │
│                                                                                                                                  │
│                                                 o             o              o                                                   │
│                                               \ \ /         \ \ /          \ \ /                                                 │
│                                                \ /           \ /            \ /                                                  │
│                                               Аким          Нонна         Эльвира                                                │
│                                              Дроздов      Молчановa      Мамонтовa                                               │
│                                                                                                                                  │
└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
┌──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│                                                                                                                                  │
│                                                               Бар                                                                │
│                                                                                                                                  │
│                                                         0 \          0 \                                                         │
│                                                         | ‾          | ‾                                                         │
│                                                         П \          П \                                                         │
│                                                      Антонина       Руслан                                                       │
│                                                      Тимофеевa      Маслов                                                       │
│                                                                                                                                  │
└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
┌──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│                                                                                                                                  │
│                                                 Антонина Тимофеевa: Electrohouse                                                 │
│                                              Аким Дроздов: R&B,Electrohouse,Hip-hop                                              │
│                                                       Руслан Маслов: House                                                       │
│                                              Нонна Молчановa: Hip-hop,Electrohouse                                               │
│                                       Эльвира Мамонтовa: Electrodance,Electrohouse,Hip-hop                                       │
│                                                                                                                                  │
│                                                       Hip-hop: Hip-hop,R&B                                                       │
│                                          Electrodance: Electrodance,Electrohouse,House                                           │
│                                                             Pop: Pop                                                             │
│                                                                                                                                  │
└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘

Запуск приложения

$ cd nightclub/docker/local
$ docker-compose up --build
$ docker exec -it nightclub_app bash

Запуск скрипта

$ php artisan nightclub:init
// Или с указанием кол-ва гостей и треков
$ php artisan nightclub:show --guests=5 --tracks=5

Запуск тестов

$ vendor/phpunit/phpunit/phpunit --filter=Nightclub --verbose --testdox
// Или вне контейнера
$ cd nightclub/src
$ ./run_tests.sh

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages