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

[Wordle] 애쉬(김동호) 미션 제출합니다. #6

Open
wants to merge 24 commits into
base: main
Choose a base branch
from
Open
Changes from 1 commit
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
3208e76
docs: 기능 목록 작성
dongho108 May 11, 2022
a6bfd74
feat: 단어 생성 기능 추가
dongho108 May 11, 2022
5ecc453
feat: 정답 단어를 반환하는 기능 추가
dongho108 May 11, 2022
ae9220f
feat: 정답매칭기능 구현
dongho108 May 11, 2022
693fd1d
feat: 최대 6번까지 단어를 매칭하능 기능 구현
dongho108 May 11, 2022
977e755
feat: 플레이어의 입력으로 게임이 진행되도록 구현
dongho108 May 11, 2022
2bf267f
refactor: 변수명 수정
dongho108 May 11, 2022
4a32fdc
style: 변수 위치 수정
dongho108 May 11, 2022
6a91799
refactor: round를 game으로부터 받도록 수정
dongho108 May 11, 2022
960f8a4
style: kotlin 컨벤션에 맞게 수정
dongho108 May 11, 2022
4558c6f
refactor: 메서드 순서 변경
dongho108 May 12, 2022
0f59d95
rename: WordResponse -> WordReader
dongho108 May 15, 2022
22fb216
refactor: 반복문을 mapIndexedNotNull api를 이용하도록 수정
dongho108 May 15, 2022
f7572be
refactor: 변수 두개로 getter 만들던 코드 private set으로 수정
dongho108 May 15, 2022
e1e554c
test: kotest로 마이그레이션
dongho108 May 15, 2022
255eb1c
style: 중괄호 앞뒤에 공백 추가
dongho108 May 15, 2022
884db31
feat: dsl 실습 추가
dongho108 May 19, 2022
80b6701
feat: study 패키지 분리 및 data clas 테스트 추가
dongho108 May 25, 2022
12b5126
refactor: 외부에 companion object의 MAX_ROUND를 공개하도록 수정
dongho108 May 25, 2022
07e75fa
refactor: ArrayList의 InitialCapacity를 미리 지정하도록 수정
dongho108 May 26, 2022
cb2b7c6
refactor: Word로부터 GameResult의 size를 결정하도록 수정
dongho108 May 26, 2022
b58d199
refactor: word 검증메서드들 확장함수로 변경
dongho108 May 26, 2022
126673e
refactor: 메서드명 더 명확하게 변경
dongho108 May 26, 2022
1c4ec1a
refactor: Regex를 미리 생성해 사용하도록 수정
dongho108 May 26, 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
Prev Previous commit
Next Next commit
rename: WordResponse -> WordReader
dongho108 committed May 15, 2022
commit 0f59d95a63e7488d98d2b9b9c7413ca0d442d0e6
6 changes: 3 additions & 3 deletions src/main/kotlin/wordle/Application.kt
Original file line number Diff line number Diff line change
@@ -4,15 +4,15 @@ import wordle.domain.Game
import wordle.domain.GameResult
import wordle.domain.Word
import wordle.domain.Words
import wordle.domain.WordsResponse
import wordle.domain.WordsReader
import wordle.view.InputView
import wordle.view.OutputView
import java.time.LocalDate

fun main() {

val wordsResponse = WordsResponse("words.txt")
val words = Words(wordsResponse.words)
val wordsReader = WordsReader("words.txt")
val words = Words(wordsReader.words)
val game = Game(words, LocalDate.now())
val gameResult = GameResult()

Original file line number Diff line number Diff line change
@@ -2,7 +2,7 @@ package wordle.domain

import java.io.File

class WordsResponse(val path: String) {
class WordsReader(private val path: String) {

val words: List<Word>
get() = getWords(path)
20 changes: 10 additions & 10 deletions src/test/kotlin/wordle/domain/GameTest.kt
Original file line number Diff line number Diff line change
@@ -19,8 +19,8 @@ internal class GameTest {
@DisplayName("플레이의 단어가 words에 포함되어있지 않다면 예외를 던져야 한다.")
fun containsWord() {
// given
val wordsResponse = WordsResponse("words.txt")
val words = Words(wordsResponse.words)
val wordsReader = WordsReader("words.txt")
val words = Words(wordsReader.words)
val game = Game(words, LocalDate.of(2021, 6, 19))

// when
@@ -34,8 +34,8 @@ internal class GameTest {
@DisplayName("플레이어의 답과 정답을 매칭한다.")
fun matchAnswer(word: Word, expectedTiles: Tiles) {
// given
val wordsResponse = WordsResponse("words.txt")
val words = Words(wordsResponse.words)
val wordsReader = WordsReader("words.txt")
val words = Words(wordsReader.words)
val game = Game(words, LocalDate.of(2021, 6, 19))

// when
@@ -49,8 +49,8 @@ internal class GameTest {
@DisplayName("정답 매칭을 6번 진행하면 게임은 종료되어야 한다.")
fun gameOver() {
// given
val wordsResponse = WordsResponse("words.txt")
val words = Words(wordsResponse.words)
val wordsReader = WordsReader("words.txt")
val words = Words(wordsReader.words)
val game = Game(words, LocalDate.of(2021, 6, 19))

// when
@@ -67,8 +67,8 @@ internal class GameTest {
@DisplayName("정답을 맞추면 게임은 종료되어야 한다.")
fun gameOverMatch() {
// given
val wordsResponse = WordsResponse("words.txt")
val words = Words(wordsResponse.words)
val wordsReader = WordsReader("words.txt")
val words = Words(wordsReader.words)
val game = Game(words, LocalDate.of(2021, 6, 19))

// when
@@ -86,8 +86,8 @@ internal class GameTest {
@DisplayName("정답을 못 맞추면 게임은 종료되지 않는다.")
fun gameOverMisMatch() {
// given
val wordsResponse = WordsResponse("words.txt")
val words = Words(wordsResponse.words)
val wordsReader = WordsReader("words.txt")
val words = Words(wordsReader.words)
val game = Game(words, LocalDate.of(2021, 6, 19))

// when
4 changes: 2 additions & 2 deletions src/test/kotlin/wordle/domain/WordsResponseTest.kt
Original file line number Diff line number Diff line change
@@ -9,8 +9,8 @@ internal class WordsResponseTest {
@Test
@DisplayName("/words.txt의 단어를 받아온다.")
fun getWordsResponse() {
val wordsResponse = WordsResponse("words.txt")
val words = wordsResponse.words
val wordsReader = WordsReader("words.txt")
val words = wordsReader.words
assertThat(words.size).isEqualTo(WORDS_SIZE)
}

12 changes: 6 additions & 6 deletions src/test/kotlin/wordle/domain/WordsTest.kt
Original file line number Diff line number Diff line change
@@ -10,8 +10,8 @@ internal class WordsTest {
@Test
@DisplayName("정답단어를 가져와야 한다.")
fun getAnswerWord() {
val wordsResponse = WordsResponse("words.txt")
val words = Words(wordsResponse.words)
val wordsReader = WordsReader("words.txt")
val words = Words(wordsReader.words)
val answerWord = words.findAnswer(LocalDate.of(2021, 6, 19))
assertThat(answerWord).isEqualTo(Word("cigar"))
}
@@ -20,8 +20,8 @@ internal class WordsTest {
@DisplayName("words에 포함된 단어이면 true 여야 한다.")
fun shouldContainsWords() {
// given
val wordsResponse = WordsResponse("words.txt")
val words = Words(wordsResponse.words)
val wordsReader = WordsReader("words.txt")
val words = Words(wordsReader.words)
val value = "rebut"
// when
val hasWord = words.contains(Word(value))
@@ -33,8 +33,8 @@ internal class WordsTest {
@DisplayName("words에 포함된 단어가 아니면 false 여야 한다.")
fun failShouldContainsWords() {
// given
val wordsResponse = WordsResponse("words.txt")
val words = Words(wordsResponse.words)
val wordsReader = WordsReader("words.txt")
val words = Words(wordsReader.words)
val value = "xxxxx"
// when
val hasWord = words.contains(Word(value))