Skip to content

CDG-2022/jihee-dicegame

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 

Repository files navigation

jihee-dicegame

첫번째 과제 : 주사위게임

2명의 플레이어가 주사위를 각각 5번씩 번갈아 던져서 주사위 눈금의 총합이 높은 플레이어가 승자가 되는 프로그램입니다.
아래에 요구사항에 근거하여 프로그램을 작성해주세요.

1. 주사위(Dice, FraudDice)

  • 주사위를 던지면 1~6 사이의 정수가 랜덤하게 나옵니다.
  • 주사위는 아무 특징이 없는 일반 '주사위'와 '사기주사위'가 있습니다. 2종류입니다.
  • 사기주사위에는 레벨을 정할 수 있습니다. 일반모드, 약함모드, 강함모드
  • 사기주사위의 특징입니다
    일반모드 : 보통 주사위와 동일합니다.
    약함모드 : 5이상의 눈금이 나오면 다시 던집니다.
    강함모드 : 2이하의 눈금이 나오면 다시 던집니다.

2. 플레이어(Player, FraudPlayer)

  • 플레이어는 이름을 정할수 있고, 주사위를 들고 있습니다. 또한 본인의 합계득점을 기억합니다.
  • 플레이어도 일반 '플레이어'가 있으며, 사기주사위를 사용하는 '사기플레이어'가 있습니다.
  • 사기플레이어는 지고 있을 경우 얍삽하게도 사기주사위의 레벨을 높입니다(강함모드).
  • 6점 이상 차이로 이기고 있는 경우엔 거만해져서 사기주사위의 레벨을 낮춥니다(약함모드).
  • 위의 경우가 아닌 경우 일반모드로 플레이합니다.

3. 심판(Judge)

  • 심판을 통해 선수등록을 할 수 있습니다.
  • 심판을 통해 게임을 진행합니다. 주사위를 서로 몇번 던질것인지에 대해 지정할 수 있습니다.
  • 심판은 기록원을 통해서 매 라운드마다 주사위 총합을 기록(출력)할 수 있으며, 모든 라운드가 종료되면 승자를 판정합니다.

4. 기록원(Recorder)

  • 기록원은 게임의 진행상황과 결과를 기록하는 역할을 담당합니다.
  • 기록은 System.out.println(); 으로 처리합니다.
  • 두가지를 기록할 수 있습니다.
    모든 플레이어의 스코어를 기록하며, 사기주사위를 쓰는 플레이어의 경우 주사위의 상태까지 보여줍니다.

ex)
[ 최강훈:6[NORMAL] 김준하:6 ]
[ 최강훈:8[NORMAL] 김준하:10 ]
[ 최강훈:13[STRONG] 김준하:14 ]
[ 최강훈:16[STRONG] 김준하:17 ]
[ 최강훈:21[STRONG] 김준하:23 ]

승자를 기록합니다.

ex)
김준하가 승리했습니다!

5. 메인(GameMain)

  • 메인메소드가 존재하며 여기서 프로그램이 실행됩니다.
  • 플레이어의 이름을 정할 수 있습니다.
  • 주사위는 5번 던지는것으로 하겠습니다.

요구사항

  1. 클래스이름은 위 설명에서 괄호안의 이름을 사용하면 됩니다.
  2. 패키지를 꼭 구분하여 작성해 주세요.
  3. 배열은 사용하지 않습니다. 컬렉션 프레임워크(List 또는 Map)를 사용해주세요.
  4. 어떤메소드든 10줄이상 넘어가지 않도록 작성해주세요.

About

객체지향언어의 특성을 살려봅시다.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages