TIL - 숫자 야구 게임

HyeBin, Park·2022년 3월 25일
0

TIL

목록 보기
5/12
post-thumbnail

실습 프로젝트 - 숫자 야구 게임

📒 외부 라이브러리 사용하기

(1) gradle : Build Tool

  • 빌드한다 / 실행한다.
  • 외부에 의존성이 있는 라이브러리의 설치
  • gradle post

(2) JavaFaker

  • 테스트 데이터를 만들어주는 패키지
  • github

(3) Lombok

  • @AllArgsConstructor // 모든 Args 의 생성자를 만들어라
  • @NoArgsConstructor // 기본생성자도 생성가능하게 해줌
  • @ToString // toString 구현
  • @EqualsAndHashCode // equlas와 hashcoed 구현
  • @Getter, @Setter // Getter Setter 구현
  • @Data => 위의 모든게 다들어가있음

📃 설계

(1)요구사항 파악하기

  • 게임의 룰
  • 동작환경, 데이터의 범위
    - 3자리 숫자 사용(확장가능)
    - 중복된 숫자를 사용하지 않음
    - 1~9 를 사용 (0 사용 x)
  • Console 상에서 동작하는 프로그램
  • 일을 객체로 나누기 / 객체를 연관 짓기
  • 핵심로직 설계
    - Flow Chart
    - Correct Input에서 false일 경우 Loop로 돌아감
    - 3 Strikes에서 false일 경우 Loop로 돌아감

🔍 AtomicInteger ?

  • int자료형을 갖고 있는 wrapping 클래스
  • 멀티쓰레드 환경에서 동시성 보장
  • CAS : 비교 및 교환
  • get() : 값을 읽을 때
  • set() : 값을 변경할 때
  • getAndSet() : 현재의 value를 get(return)하고, 인자로 전달된 값 set
  • addAndGet() : add 하고 get
  • compareAndSet(expect, update) : 현재값이 expect와 동일하면 update로 값 변경하고 true return

🔍 getNumericValue

java.lang.Charater.getNumericValue(char)

  • 숫자 형태의 char형을 int형으로 변환
  • 문자에 숫자 값이 없을 경우 -1 반환
  • 음이 아닌 정수로 표시할 수 없는 숫자 값일 경우 -2 반환
  • 공식

💁‍♀️

큰(?) 프로젝트로 객체지향적인 설계를 배웠을때는 매번 그저 코드를 타이핑만 했고, 개념적인 부분 그래서 이게 왜 객체지향적인 코드인지 알지 못했다. 하지만 작은 게임 만들기를 통해 객체 지향으로 프로젝트를 설계 강의를 들으니까 이해하는데 더 수월했고, 이전의 무거운 프로젝트로 수업을 들었을때 왜 그렇게 했는지가 이제 조금은 이해가 간다. 이제 스스로 설계해보기 !

0개의 댓글