Overview

게임 룰

  • 내가 맞춰야 할 점수를 슬라이더를 통해 정확히 입력하면 정답!
  • 정답을 맞추지 못한 경우에는 ‘Round’가 1회씩 증가한다. 즉 시도한 횟수가 Round가 된다.
  • 가장 적은 시도로 정답을 맞추는 것이 게임의 목표
  • 정답을 맞출때마다 시도 횟수는 명예의 전당에 기록된다.

기능 정의

메인 화면

  1. 화면
  • 목표 점수를 나타내는 레이블이 있습니다.
  • 목표 점수를 맞출 수 있는 슬라이더가 있습니다.
  • 결과를 확인하는 버튼이 있습니다.
  • 라운드를 확인할 수 있는 레이블이 있습니다.
  • 새게임을 시작하는 버튼이 있습니다.
  • 명예의 전당(기록)을 확인하는 버튼이 있습니다.
  1. 기능
  • 앱을 처음 실행했을 때 ‘새게임’버튼을 누르지 않으면 게임을 진행할 수 없습다.
  • 정답을 맞춰 게임이 종료된 경우에도 ‘새게임’버튼을 통해 게임을 새롭게 진행할 수 있습니다.
  • 매 게임마다 목표 점수가 랜덤 생성됩니다.
  • 정답 맞추기에 도전할때마다 슬라이더의 위치가 초기화됩니다.
  • 몇 번만에 정답을 맞췄는지에 대한 기록이 명예의 전당에 기록됩니다.

명예의 전당 화면

  1. 화면
  • 스코어를 확인할 수 있습니다.
  1. 기능
  • 스코어를 보여줍니다.

어려웠던 점

  • 뷰 컨트롤러간의 데이터 전달이 어려웠다. 스토리보드상에서는 ‘명예의 전당’ 버튼과 ‘명예의 전당’의 결과가 보여질 테이블 뷰를 세그웨이로 연결했지만, 값을 전달할 수 있는 prepare 메소드를 쓰지 않았으며 소스코드상에서는 내비게이션 뷰 컨트롤러가 테이블 뷰 인스턴스를 생성해 데이터를 전달했지만, 테이블 뷰 인스턴스를 푸시하지 않았다. 결과적으로 소스코드상에서 만들어진 인스턴스와 세그웨이를 통해 띄워진 인스턴스가 서로 다른 인스턴스가 된 것이다. 메인 뷰 컨트롤러가 내비게이션 뷰 컨트롤러인만큼 테이블 뷰 인스턴스를 생성하여 푸시하는 방법으로 해결했다.