waltechel / java-baseball-precourse

숫자 야구게임 미션을 위한 저장소

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

숫자 야구 게임

진행 방법

  • 숫자 야구 게임 요구사항을 파악한다.
  • 요구사항에 대한 구현을 완료한 후 자신의 github 아이디에 해당하는 브랜치에 Pull Request(이하 PR)를 통해 과제를 제출한다.

미션 제출 방법

  • 미션 구현을 완료한 후 GitHub을 통해 제출해야 한다.
  • GitHub을 활용한 제출방법은 프리코스 과제 제출 문서 참고해 제출한다.
  • GitHub에 미션을 제출한 후 프리코스 1차 구글폼을 통해 과제를 최종 제출한다.

기능 요구사항

  • 기본적으로 1부터 9까지 서로 다른 수로 이루어진 3자리의 수를 맞추는 게임이다.
  • 같은 수가 같은 자리에 있으면 스트라이크, 다른 자리에 있으면 볼, 같은 수가 전혀 없으면 낫싱이란 힌트를 얻고, 그힌트를 이용해서 먼저 상대방(컴퓨터)의 수를 맞추면 승리한다.
    • [예] 상대방(컴퓨터)의 수가 425일 때,
      • 123을 제시한 경우 : 1 스트라이크
      • 456을 제시한 경우 : 1 볼 1 스트라이크
      • 789를 제시한 경우 : 낫싱
  • 위 숫자 야구게임에서 상대방의 역할을 컴퓨터가 한다. 컴퓨터는 1에서 9까지 서로 다른 임의의수 3개를 선택한다. 게임플레이어는 컴퓨터가 생각하고 있는 3개의 숫자를 입력하고, 컴퓨터는 게임플레이어가 입력한 숫자에 대한 결과를 출력한다.
  • 이같은 과정을 반복해 컴퓨터가 선택한 3개의 숫자를 모두 맞히면 게임이 종료된다.
  • 게임을 종료한 후 게임을 다시 시작하거나 완전히 종료할 수 있다.
  • 사용자가 잘못된 값을 입력할경우 IllegalArgumentException을 발생시킨 후 애플리케이션은 종료되어야 한다.

기능 요구사항 2

  • 자바 코드 컨벤션을 지키면서 프로그래밍한다.

  • https://github.com/woowacourse/woowacourse-docs/tree/master/styleguide/java

    • indent(인덴트, 들여쓰기) depth가 2를 넘지 않도록 구현한다. 1까지만 허용한다.
  • 예를 들어 while문 안에 if문이 있으면 들여쓰기는 2이다.

    • 힌트 : indent(인덴트,들여쓰기) depth를 줄이는 좋은 방법은 함수(또는 메소드)를 분리하면 된다.
  • 자바 8에 추가된 stream api를 사용하지 않고 구현해야 한다. 단, 람다는 사용가능하다.

    • else 예약어를 쓰지 않는다.
    • 힌트 : if조건절에서 값을 return하는 방식으로 구현하면 else를 사용하지 않아도 된다.
    • else를 쓰지 말라고 하니 switch/case로 구현하는 경우가 있는데 switch/case도 허용하지 않는다.
    • 함수(또는 메소드)의 길이가 10라인을 넘어가지 않도록 구현한다.
  • 함수(또는 메소드)가 한가지 일만 잘하도록 구현한다

  • 미션은 https://github.com/next-step/java-baseball-precourse 저장소를 fork/clone해 시작한다.

  • 기능을 구현하기 전에 docs/README.md 파일에 구현할 기능 목록을 정리해 추가한다.

  • git의 commit 단위는 앞단계에서 docs/README.md 파일에 정리한 기능 목록 단위 또는 의미있는 단위로 Commit 한다.

  • 커밋 메시지 컨벤션 참고해 commit log를 남기려고 노력해본다.

  • 과제 진행 및 제출 방법은 프리코스 과제 제출 문서를 참고한다.

  • 터미널에서 “java-version”을 실행해 자바 8인지 확인한다. 또는 Eclipse, Intellij와 같은 IDE의 자바8로 실행하는지 확인한다.

  • 터미널에서 터미널에서 Mac 또는 Linux 사용자의 경우 “./gradlewcleantest” 명령을 실행하고, Windows 사용자의 경우 “gradlew.batcleantest” 명령을 실행할때 모든 테스트가 통과하는지 확인한다.

  • 2022년 4월18일(월) 23시59분까지 GitHub을 통한 미션제출과 프리코스 1차 구글 폼까지 제출완료 해야 한다.

  • 2022년 4월19일(화) 00시 이후 추가 push도 허용하지 않는다.

  • 2022년 4월19일(화) 00시 이후 제출한경우 미션을 제출하지 않은 것으로 한다.

과제 제출 과정

구현 방법

  • 일단 어색하게라도 구현을 해보고 그 다음에 저 양식에 맞추는 것이 낫겠다
  • 일단 어색하게라도 구현 해보고 나니까 안 보이는 게 보임
  • 사용자가 잘못된 값을 입력할 경우 IllegalArgumentException을 발생시킨 후 어플리케이션은 종료되어야 한다.

About

숫자 야구게임 미션을 위한 저장소


Languages

Language:Java 100.0%