Mobile game "Rock Paper Scissors". Application for Apple devices on the iOS platform. Play alone or with a friend. Track the statistics of your victories. 🪨 📄 ✂️
This app is the first challenge in the Swift Marathon project
- Swift, SwiftUI
- Combine
- Metal
- iOS 15.0 +
- Artem — Team Leader, iOS Developer
- Ruslan — iOS Developer
- Daria — iOS Developer
- Evgeniy — iOS Developer
"EPIC RPS" — это увлекательное приложение-игра для двух игроков, основанное на классической игре "Камень, ножницы, бумага". Это приложение является первым испытанием в проекте Swift Marathon в рамках прохождения курса от Paul Hudson "100 days of SwiftUI"
- Swift, SwiftUI
- Combine
- Metal
- iOS 15.0 +
Главный экран На главном экране приложения представлены три кнопки: "Start", "Results", "?". Пользователь может начать новую игру, посмотреть результаты предыдущих игр или ознакомиться с правилами игры.
Экран "Правила игры"
Экран "Правила игры" предоставляет пользователю возможность ознакомиться с правилами игры в удобном формате.
Экран "Fight Load" После нажатия кнопки "Start" пользователь попадает на экран загрузки игры, который отображается в течение 3 секунд. На этом экране показывается статистика игроков, включая количество побед и поражений.
Экран "Начало игры" Экран "Начало игры" появляется после загрузочного экрана. Руки игроков отображаются в базовом состоянии. На экране присутствует таймер, который отсчитывает 30 или 60 секунд, в зависимости от настроек, давая игроку время для выбора жеста. Если игрок не успевает сделать выбор, раунд завершается, и ему засчитывается поражение.
На экране имеются три кнопки для выбора жестов:
- Камень (Rock): Кулак.
- Ножницы (Scissors): Вытянутые указательный и средний пальцы, образующие букву "V".
- Бумага (Paper): Открытая ладонь.
После нажатия на одну из кнопок происходит визуальное нажатие, подсвечивание кнопки и проигрывается звук нажатия. Через 1 секунду после нажатия руки принимают положения жестов. Шкала победы заполняется у игрока, который выиграл раунд. Победителем становится игрок, у которого шкала заполнится до середины (3 победы).
Если игроки показывают одинаковые жесты, на экране появляется надпись "DRAW" (ничья) и баллы не засчитываются. На экране также есть кнопка "Пауза", которая останавливает игру и таймер, пока игрок снова не нажмет на нее, и кнопка "Назад", возвращающая игрока на главный экран.
Экран "Результаты игры"
Когда один из игроков выигрывает 3 раунда, появляется экран "Fight Result". В зависимости от результата, экран подсвечивается синим (победа) или красным (поражение) цветом. Отображается итоговый счёт игры и надпись "You Win" или "You Lose". На экране присутствуют две кнопки:
Домой: возвращает пользователя на главный экран. Повторить: перезапускает игру с экрана "Round 1". В случае ничьи при одинаковых жестах игроков на экране появляется надпись "DRAW" (ничья), и баллы не засчитываются.
Экран "Результаты" (Results)
На экране "Результаты" пользователь может увидеть свои достижения в игре "Камень, ножницы, бумага". Здесь отображается следующая информация:
- Баллы игрока: каждая победа приносит игроку 500 баллов.
- Процент побед: отображает процент выигранных игр от общего числа проведенных раундов.
- Возможность изменять аватар: при нажатии на изображение аватара пользователь может выбрать новый аватар из предложенных вариантов.
- Возможность изменять имя: при нажатии на текстовое поле с именем игрока открывается возможность изменить имя.
Данные о баллах и проценте побед сохраняются после выхода из приложения, обеспечивая постоянный контроль за достижениями игрока.
Экран "Настройки" (SettingsViewController)
На экране "Настройки" пользователь может настроить параметры игры:
- Выбор времени на выбор жеста: пользователь может выбрать время для выбора жеста - 10 или 20 секунд.
- Выбор фоновой музыки: пользователь может выбрать фоновую музыку, которая будет играть во время игры.
- Включение режима "Передача хода": на экране появляется дополнительная кнопка рядом с выбором жестов. Эта кнопка позволяет игроку передать ход второму игроку после сделанного выбора.
Изменения в логике игры включают:
- Игрок №1 делает свой выбор жеста, который сохраняется на экране.
- Игрок №2 нажимает кнопку передачи хода, делает свой выбор.
- После этого оба выбранных жеста отображаются на экране, проводится сравнение и определяется победитель раунда.
- Для визуальной ясности при победе одного жеста над другим добавлены анимированные спецэффекты и звуковые эффекты удара.
- @Artemaj9 Team Leader, iOS Developer
- @ARuslanDenisov iOS Developer
- @KorotkovaDaria iOS Developer
- @EKukarskiy iOS Developer