Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Pako 워들제출합니다. #4

Open
wants to merge 55 commits into
base: main
Choose a base branch
from
Open
Changes from 1 commit
Commits
Show all changes
55 commits
Select commit Hold shift + click to select a range
5d8479e
doc: 기능 명세서 추가
SGKIM94 Apr 12, 2022
eb31a9d
feat: Word에 대한 기능명세서의 테스트 코드 추가 및 클래스 추가
SGKIM94 Apr 12, 2022
f2afbd3
refactor: 불필요한 gitkeep 파일 제거
SGKIM94 Apr 12, 2022
5bab906
doc: 구현한 기능에 대한 체크 추가
SGKIM94 Apr 12, 2022
58b435b
refactor: klint에 대한 컨벤션 적용
SGKIM94 Apr 12, 2022
35852c3
feat: 타일에 대한 기능 명세서 구현 및 테스트 코드 추가
SGKIM94 Apr 12, 2022
6fde073
doc: 구현한 기능에 대한 체크 추가
SGKIM94 Apr 12, 2022
3bb8164
refactor: klint 에 대한 컨벤션 적용
SGKIM94 Apr 12, 2022
6fc2288
refactor: 단어를 비교하여 타일을 전달하는 WordMatcher 추가 및 테스트코드 추가
SGKIM94 Apr 12, 2022
991380a
refactor: Word 내 인덱스 위치에 단어가 존재하는지 찾는 foundAlphabet 함수 및 테스트코드 추가
SGKIM94 Apr 12, 2022
7369f19
refactor: 매직넘버에 대한 상수 추출
SGKIM94 Apr 12, 2022
51876df
doc: 기능 명세를 새로 추가함에 따른 수정
SGKIM94 Apr 13, 2022
7bba0b9
feat: 매칭에 대한 노란색과 회색이 되는 케이스에 대한 로직 및 테스트코드 추가
SGKIM94 Apr 13, 2022
3d994bf
feat: Word 에 알파벳이 포함되는 지에 대한 함수 및 테스트코드 추가
SGKIM94 Apr 13, 2022
050f619
doc: 매칭에 대해 구현한 기능 체크리스트 추가
SGKIM94 Apr 13, 2022
de730f8
feat: 게임을 승리하는 규칙과 실패하는 규칙에 대한 기능 및 테스트코드 추가
SGKIM94 Apr 14, 2022
d9546f3
feat: 시도횟수에 대한 value object 추출 진행
SGKIM94 Apr 14, 2022
3bb172b
refactor: 불필요한 예외 명시 제거 및 private 접근제어자 추가
SGKIM94 Apr 14, 2022
ced063d
doc: 구현된 기능에 대한 명세서 체크리스트 추가
SGKIM94 Apr 14, 2022
759013e
refactor: foundAlphabet -> findAlphabet 변경 및 메서드 추출 진행
SGKIM94 Apr 14, 2022
1d39fa9
refactor: private 접근제어자 추가
SGKIM94 Apr 14, 2022
eb71087
refactor: 가독성을 위한 until로 변경
SGKIM94 Apr 14, 2022
cbf8f74
feat: junit test import 추가
SGKIM94 Apr 14, 2022
8e52fd5
refactor: answer 에 대한 중복된 파라미터로 인해 멤버변수로 전환
SGKIM94 Apr 14, 2022
0a32d12
refactor: 게임 결과에 대해서 타일들을 전달하기 위한 요구사항 구현 및 테스트 코드 추가
SGKIM94 Apr 14, 2022
b06d616
feat: Tiles value object 추가 및 테스트코드 추가
SGKIM94 Apr 14, 2022
79f9e49
refactor: Tiles 추가에 따른 수정
SGKIM94 Apr 14, 2022
c4263dd
refactor: 불필요한 tryCount 제거
SGKIM94 Apr 14, 2022
21a5791
feat: words.txt 의 정답들을 가지는 Answers 추가
SGKIM94 Apr 14, 2022
1d526cd
feat: 입력을 받기 위한 InputView 추가
SGKIM94 Apr 14, 2022
1f4a332
refactor: 결과를 출력하기 위한 resultView 추가
SGKIM94 Apr 14, 2022
ad3d1b5
feat: 게임을 플레이하기 위한 기능 구현
SGKIM94 Apr 14, 2022
6783141
doc: 구현된 기능에 대한 체크리스트 추가
SGKIM94 Apr 14, 2022
5319a1a
refactor: 불필요한 함수 제거
SGKIM94 Apr 14, 2022
6d6d054
refactor: data 를 value class 로 변경
SGKIM94 Apr 14, 2022
e4dfdf0
refactor: 불필요한 선언 제거
SGKIM94 Apr 14, 2022
4ee303d
refactor: MAX_TRY_COUNT 에 대한 상수 추출
SGKIM94 Apr 14, 2022
6cc86be
refactor: List 로 사용할 수 있도록 선언
SGKIM94 Apr 14, 2022
beb1b18
refactor: 타일을 뷰와 분리하기 위한 viewTiles 추가
SGKIM94 Apr 14, 2022
2494155
refactor: 결과에 대한 멘트 수저
SGKIM94 Apr 14, 2022
605b476
refactor: Words 일급 컬렉션 추가
SGKIM94 Apr 14, 2022
dd9930b
refactor: 코틀린 함수 사용하도록 수정
SGKIM94 Apr 14, 2022
828fb34
refactor: 조건문을 간결하게 하도록 수정 및 불필요한 delicate 제거
SGKIM94 Apr 15, 2022
155f16a
refactor: delicate 제거에 따른 수정
SGKIM94 Apr 15, 2022
72ebdb8
feat: 결과물을 만들어내기 위한 Results 클래스 추가 및 테스트 코드 추가
SGKIM94 Apr 15, 2022
f57b1e5
refactor: word 를 매번 생성가능하도록 수정 및 2021.6.19에 대한 상수 추출
SGKIM94 Apr 15, 2022
64f24a9
refactor: klint
SGKIM94 Apr 15, 2022
5bce301
refactor: readlin() 으로 변경
SGKIM94 Apr 15, 2022
e544c0f
refactor: results를 ResultView 에서 가져다 사용하도록 수정
SGKIM94 Apr 15, 2022
c0633eb
refactor: mutableList 제거하기 위한 불변형태로 수정
SGKIM94 Apr 15, 2022
7e67435
refactor: Words 일급컬렉션 추가에 따른 수정 및 테스트코드 추가
SGKIM94 Apr 15, 2022
842c92e
refactor: kotlin extension 함수로 변겨
SGKIM94 Apr 15, 2022
0fcd81e
refactor: 불필요한 println 제거
SGKIM94 Apr 15, 2022
293c4b6
refactor: 코드 리뷰 반영 및 변경 필요한 부분 추가
SGKIM94 Apr 15, 2022
c40742d
refactor: 주석 삭제
etff Apr 16, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 31 additions & 0 deletions src/main/kotlin/wordle/domain/Answers.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
package wordle.domain

import wordle.controller.getResourceText
import java.time.LocalDate
import java.time.temporal.ChronoUnit

class Answers {

companion object {
private const val ANSWERS_TEXT_PATH = "./words.txt"
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

답안은 도메인인데 외부 자원(resource)의 특정 위치를 알고 있어야 할 필요가 있을까요? 도메인 영역은 가능한 독립적으로 구현되어있는게 좋을것 같습니다.

val WORDS = createWords()
val ANSWER = createAnswer()

private fun createWords(): List<Word> {
val wordsFile = getResourceText(ANSWERS_TEXT_PATH)

val words = mutableListOf<Word>()
wordsFile.forEachLine {
words.add(Word(it))
}

return words
}

private fun createAnswer(): Word {
return WORDS[(createAnswerPosition() % WORDS.size).toInt()]
}

private fun createAnswerPosition() = ChronoUnit.DAYS.between(LocalDate.of(2021, 6, 19), LocalDate.now())
}
}