sw_bj
Карточная игра с использованием SWAPI (Star Wars API)
Выполнено как тестовое задание со следующими условиями:
Используя swapi.com (http://swapi.com/) необходимо сделать простую карточную игру:
Есть колода из 82 персонажей. (API: /people).
У каждого из них появляется показатель силы (strength), который рассчитывается исходя из роста и веса (height и mass). Показатель силы может быть целым числом от 1 до 10, где 10 - соответствует произведению роста и массы самого высокого и увесистого персонажа, а 1 - наоборот, самому легкому и невысокому. Округляем по правилам математики (>=0.5 - в большую сторону, <0.5 - в меньшую).
Игра будет похожа на 21 (очко).
Всего 2 игрока (синий и красный).
Кто ходит первым выбирается случайно.
В начале каждой игры колода персонажей перемешивается случайным образом.
Тому, кто сейчас ходит, предлагается вытягивать карты из колоды по очереди, чтобы набрать общий показатель силы отряда (strength) близкий или равный 21. Если перебор, то учитывается показатель силы 1.
Далее ход переходит к другому игроку.
Игра продолжается, пока кто-то после завершения своего хода не набрал 63 очка силы (в идеальном случае 3 хода по 21 очку за ход). Этот игрок становится победителем.
Требования к приложению:
⁃ React
⁃ Только функциональные компоненты
⁃ Локальное состояние не используется (useState), используется только глобальное через Redux Toolkit
⁃ Интерфейс и стили любые, но интерфейс игры должен быть интуитивным и наглядным
⁃ При перезагрузке страницы состояние игры не должно сбрасываться.
⁃ Выложить работающее приложение на GitHub Pages.
// В процессе выполнения обнаружилось, что один из персонажей(Jabba) имеет сильно отличающаюся массу от остальных, чем портит набор «карт». Было решено вынести его как джокера, при его выпадении, игрок сразу же «выигрывает». Шанс — 1/82 на старте и увеличивается, т.к. колода «пустеет».
Описание
Карточная игра с использованием SWAPI (Star Wars API)
Языки
JavaScript
- HTML
- CSS
- TypeScript