Дано:
Игра про игровые автоматы (слоты).
Как работают слоты:
На каждый спин(вращение барабанов) генерируется числовая матрица, кадое число это символ слота на клиенте. (например число 1 - это вишня, 2 - арбуз).
Слот в основном состоит из 5 барабанов(колонок) и 3 рядов. Матрица строится по колонкам.
Пример матрицы: [1, 3, 7, 2, 3, 5, 6, 3, 4, 7, 2, 71, 9, 9, 4]
1 2 6 7 9
3 3 3 2 9
7 5 4 71 4
Выигрыш считается по линиям, слева направо. Если символ идет в ряд больше 1 раза подряд значит матрица выигрышная.
В игре есть квесты(задания) с прогрессом, которые засчитываются после выполнения спина.
Нужно реализовать механизм который будет парсить результат спина CoreController.getSpinResult() и на его основе засчитывать прогресс по квесту, если он удовлетворяет результатам квеста. Сохранять прогресс не обязательно(так как нет подключения к бд.)
В базе хранятся квесты для юзеров, в таблице userQuest. (Подключение к базе реализовывать не нужно, данные будут хранится в json)
типы квестов.
- Совершить спин 12 раз (Засчитывать прогресс при каждом спине) - do_spin
- Потратить 2000 монет (Монеты списываются за каждый спин) - spent_money
- Выбить в матрице комбо из 3 символов 2 раза (например символ с id 3 в строку) - combo_row
- Выбить в матрице уникальный символ (например символ c id 71) - get_symbol
Пример матрицы: [1, 3, 7, 2, 3, 5, 6, 3, 4, 7, 2, 71, 9, 9, 4]
1 2 6 7 9
3 3 3 2 9
7 5 4 71 4
В этой матрице засчитается прогресс сразу по всем типам квестов.
CoreController.spin() - тут реализовать подсчет выполнения квестов.
Как только questValue == userQuestValue квест считается выполненым.
Результаты спинов и выполнения квестов вывести в консоль. Реализацию класса CoreController можно менять, если небоходимо.
Прикольная тема, на выхах мб поделаю