Skip to content

Artemaj9/EpicRPS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Challenge №1 EPIC RPS

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. 🪨 📄 ✂️

888

This app is the first challenge in the Swift Marathon project

Technologies

  • Swift, SwiftUI
  • Combine
  • Metal
  • iOS 15.0 +

The project team

Камень, ножницы бумага

"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 нажимает кнопку передачи хода, делает свой выбор.
  • После этого оба выбранных жеста отображаются на экране, проводится сравнение и определяется победитель раунда.
  • Для визуальной ясности при победе одного жеста над другим добавлены анимированные спецэффекты и звуковые эффекты удара.

Команда проекта

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •