- 주어진 명세에 맞게 객체를 설계해본다.
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가 이겼습니다!