Skip to content

Latest commit

 

History

History
66 lines (59 loc) · 2.79 KB

1st-spec.md

File metadata and controls

66 lines (59 loc) · 2.79 KB

1주차 미션코스

학습목표

  • 주어진 명세에 맞게 객체를 설계해본다.
  • interface 문법을 익히고, 적절하게 사용해본다.

진행방식

  • 아래 주어진 레포지토리를 포크하면서 시작한다.
  • 포크한 레포지토리에서 자신의 깃허브 이름으로 된 브렌치를 만들어서 진행한다.
  • 아래 주어진 명세에 맞게 구현한다.
  • 주어지지 않은 내용은 스스로 판단하여 구현한다.

제출 방법

  • 자신의 이름으로 된 브렌치를 포크한 레포지토리의 main 브렌치에 PR을 날린다.

턴제 게임

진행 요구 사항

  • 먼저 기능에 맞는 객체를 설계한다.
    • 설계한 객체를 다양한 방식으로 표현하여 TODO.md 에 첨부한다.
  • TODO.md 에 구현할 기능 목록을 정리한다.
  • 기능 목록에 따라 커밋 혹은 브렌치를 나눈다.
    • 한번에 git add . 을 통해 커밋하는 것은 금지한다.

기능 요구 사항

  • 주어진 턴 동안 2명의 캐릭터는 서로 혹은 자신에게 특정 행동을 할 수 있다.
  • 캐릭터에겐 체력, 마나가 존재한다.
  • 2명의 캐릭터가 한번씩 행동하면 1턴이 지난 것으로 간주한다.
  • 특정 행동은 공격, 방어, 스킬 3가지가 존재한다.
  • 공격은 매턴, 마나 소모 없이 할 수 있으며, 상대에게 1~10 사이의 랜덤한 데미지를 입힌다.
  • 방어는 매턴, 마나 소모 없이 할 수 있으며, 상대의 데미지를 한번 1~10 사이의 랜덤한 숫자만큼 감소시킨다.
  • 스킬은 한번 사용시 일정한 턴이 지나야 사용할 수 있으며, 마나를 소모한다.
  • 스킬은 마나 * (1 ~ 10 사이의 랜덤한 숫자) 의 데미지를 입힌다.

입력

  • 처음에는 2명의 캐릭터 이름을 입력받는다. 쉼표(,) 를 통해 구분한다.
    knight,slime
    
  • 몇턴 동안 진행할지 입력받는다.
    3
    
  • 자신의 차례에서는 출력에서 보여준 행동 중 선택한다.
    5
    

출력

  • 매 자신의 턴에는 다음과 같은 정보가 출력된다.
    • 자신과 상대의 체력, 마나
    • 공격, 방어, 스킬 순으로 보여준다.
      • 입히거나 막을 수 있는 데미지의 범위를 보여준다.
      • 스킬은 사용까지 기다려야하는 턴 수와 필요한 마나를 보여준다.
    knight 체력: 50 마나: 30 | slime 체력: 10 마나: 5
    1. 공격(1 ~ 10)
    2. 방어(1 ~ 10)
    3. 두번베기(2 ~ 20) - 2MP - 0턴
    4. 3번베기(3 ~ 30) - 3MP - 0턴
    5. 쎼게 때리기(0 ~ 5) - 5MP - 2턴
    
  • 체력이 0이하시, 게임 종료를 출력한다.
    knight가 이겼습니다!