{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":281871308,"defaultBranch":"main","name":"kotlin-minesweeper","ownerLogin":"next-step","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2020-07-23T06:36:50.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/25274995?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1702025627.0","currentOid":""},"activityList":{"items":[{"before":"39614fced4f2db5ff94bdf844492214353304559","after":"ef0f80cddc482f7f9cb74792f9c160711f3af88d","ref":"refs/heads/jdalma","pushedAt":"2024-01-04T07:47:31.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"MyStoryG","name":"James","path":"/MyStoryG","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24286167?s=80&v=4"},"commit":{"message":"4단계 - 지뢰 찾기(리팩터링) (#419)\n\n* feat: 높이와 너비, 지뢰의 개수를 입력받는다.\r\n\r\n* feat: 게임판 생성 전략을 통해 게임판을 만든다.\r\n\r\n* refactor: 높이,너비,지뢰의 수는 양수만 입력할 수 있다.\r\n\r\n* refactor: 게임판 생성을 책임지는 클래스 추가\r\n\r\n* feat: 입력받은 지뢰 개수만큼 지뢰를 생성한다.\r\n\r\n* feat: 일반 게임판과 지뢰찾기 게임판을 생성한다.\r\n\r\n1. Cell클래스를 추가하여 Position과 CellType 그리고 값을 가지도록 했다.\r\n2. GameBoard 추상 클래스로 추상화하여 Board라는 2차원 리스트 필드를 강제하도록 하였다.\r\n\r\n* feat: 사용자가 오픈할 셀 위치를 반복적으로 입력한다.\r\n\r\n* feat: 사용자가 오픈할 셀의 위치를 입력받는다.\r\n\r\n* refactor: 게임 렌더링 셀 기본 값 캡슐화\r\n\r\n* refactor: Game에서의 게임 실행 책임을 MinesweeperGame에 위임\r\n\r\n* refactor: PlayingGameBoard 클래스 추가\r\n\r\n게임 진행 중인 기본 게임판과 지뢰찾기 게임판을 관리하고 셀 탐색에 대한 책임을 가진 PlayingGameBoard 클래스 추가\r\n\r\n* refactor: ViewStrategy 추가\r\n\r\nMinesweeperGame이 직접 의존하던 정적 클래스 Input, Output에 대한 정보를 분리함\r\n\r\n* refactor: MinesweeperBoard.visit이 호출되면 UOE 발생","shortMessageHtmlLink":"4단계 - 지뢰 찾기(리팩터링) (#419)"}},{"before":"2088c8fad7b68fa302a44d3d584ee5d641bcd27c","after":"fc54850c1076298167a6f79e88d429424479769e","ref":"refs/heads/gongwho","pushedAt":"2023-12-18T11:05:12.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"wlsdnjs829","name":"이진원","path":"/wlsdnjs829","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/77874587?s=80&v=4"},"commit":{"message":"Step3 (#418)\n\n* refactor: Cell.isOpen, Cell.isClose CellState 로 위임\r\n\r\n* refactor: MinePositions 생성 및 생성로직 위임\r\n\r\n* refactor: MinePositions 불필요한 메소드 제거\r\n\r\n* refactor: MinePositions 파라미터 mineSet 로 이름 변경\r\n\r\n* feat: step3 기능 구현\r\n\r\n* refactor: GameMap 로직 정리\r\n\r\n* refactor: MineSweeper 코드 정리\r\n\r\n* refactor: MapSizeParams 생성\r\n\r\n* refactor: GameState 위치 변경\r\n\r\n---------\r\n\r\nCo-authored-by: silvio.oivlis ","shortMessageHtmlLink":"Step3 (#418)"}},{"before":"815e4b2bea1eb2e1f1e3f6a89b3663ad7f29f26c","after":"a41896733c137f39c57f962822481baa58cee5d7","ref":"refs/heads/oyj7677","pushedAt":"2023-12-18T09:05:45.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"sah3122","name":"dongchul","path":"/sah3122","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24941604?s=80&v=4"},"commit":{"message":"Step2 - 지뢰 찾기(지뢰 개수) (#413)\n\n* Refactor: 맵 정보 유효성 검사 역할 변경(Board -> MapInfo)\r\n\r\n* Chore: board 필드 프로퍼티 명칭 변경 board -> mineBoard\r\n\r\n* Chore: 1차원 수를 행렬로 변경해주는 함수명 변경\r\n\r\n* Feat: 열림 셀 추가 및 주변 지뢰 개수 탐색 로직 구현\r\n\r\n* Refactor: 오픈 셀 output 구현\r\n\r\n* Chore: 컨벤션 정리\r\n\r\n* Refactor: 지뢰 및 오픈 셀 구성로직 SettingBoard 함수로 통합\r\n\r\n* Refactor: Cell 주변 포인트 값 변경 (상수 -> enum)\r\n\r\n* Refactor:\r\n- Board생성자 프로퍼티 직접 참조\r\n- class Open 삭제 -> class None 생성자 프로퍼티 추가(mineCnt: Int)\r\n- outputView drawCell() 수정 (Open 삭제, None.mineCnt 추가)\r\n\r\n* Refactor: 지뢰 설치 로직 설정 정적 팩토리 메서드 방식으로 변경","shortMessageHtmlLink":"Step2 - 지뢰 찾기(지뢰 개수) (#413)"}},{"before":"8d7215021f7b0f85eb1c9201db46ddcb5ec0758f","after":"8f02043729efde127acaa18000389c41e19f97a3","ref":"refs/heads/wjdtlr0920","pushedAt":"2023-12-17T09:39:01.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"Rok93","name":"Gyeonglok Kim","path":"/Rok93","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/47850258?s=80&v=4"},"commit":{"message":"Step1 (#411)\n\n* Feat: README\r\n\r\n* feat: minesweeper","shortMessageHtmlLink":"Step1 (#411)"}},{"before":"e65989f8a011933ea86d578637d7fe8bac96fe06","after":"3d4b01523492436d14e927586ca96f739ced61d5","ref":"refs/heads/jaeyeonme","pushedAt":"2023-12-16T14:25:51.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"Flamme1004K","name":"플람","path":"/Flamme1004K","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/50702723?s=80&v=4"},"commit":{"message":"[step4] 🚀 4단계 - 지뢰 찾기(리팩터링) (#412)\n\n* [step3] (refactor) GameBoard를 GameState 사용으로 리팩토링\r\n\r\n* [step4] (refactor) firstMove의 네이밍 수정\r\n\r\n* [step4] (refactor) tailrec을 사용하여 Board 클래스 리팩토링\r\n\r\n* [step4] (refactor) tailrec을 사용하여 Board 클래스 리팩토링\r\n\r\n* [step4] (refactor) findCell 메서드에서 예외 처리로 변경\r\n\r\n* [step4] (refactor) findCell이 Null을 반환하는 대신 예외를 던지도록 수정\r\n\r\n* [step4] (refactor) 테스트코드에서만 사용되던 함수를 프로덕션에도 사용하도록 리팩토링\r\n\r\n* [step4] (feature) step3 와 step4의 README.md 작성\r\n\r\n* [step4] (feature) TestCode 리팩토링\r\n\r\n* [step4] (feature) startGame 메소드에서 break 을 사용하지 않도록 리팩토링","shortMessageHtmlLink":"[step4] 🚀 4단계 - 지뢰 찾기(리팩터링) (#412)"}},{"before":"3135420f65236703b184340d50d0de8182e5f8aa","after":"2088c8fad7b68fa302a44d3d584ee5d641bcd27c","ref":"refs/heads/gongwho","pushedAt":"2023-12-13T12:13:12.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"wlsdnjs829","name":"이진원","path":"/wlsdnjs829","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/77874587?s=80&v=4"},"commit":{"message":"Step2 (#416)\n\n* refactor: CLOSE_DISPLAY_CHARACTER view 로 이동\r\n\r\n* refactor: displayValue view 로 이동\r\n\r\n* refactor: _gameMap > gameMap\r\n\r\n* refactor: mineCount 한 번만 계산하도록 수정\r\n\r\n* refactor: cell state private 로 변경\r\n\r\n* refactor: GameMapCreator 에서 Pair 제거 및 생성로직 간소화\r\n\r\n* feat: step2 기능 구현\r\n\r\n* refactor: Cell constructor internal 로 변경\r\n\r\n* refactor: MinePosition private 로 제한\r\n\r\n---------\r\n\r\nCo-authored-by: silvio.oivlis ","shortMessageHtmlLink":"Step2 (#416)"}},{"before":"8d7215021f7b0f85eb1c9201db46ddcb5ec0758f","after":"3135420f65236703b184340d50d0de8182e5f8aa","ref":"refs/heads/gongwho","pushedAt":"2023-12-12T13:18:19.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"wlsdnjs829","name":"이진원","path":"/wlsdnjs829","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/77874587?s=80&v=4"},"commit":{"message":"Step1 (#415)\n\n* doc: Cell Test doc written\r\n\r\n* test: implemented Cell Test\r\n\r\n* doc: wrote GameMap requirements\r\n\r\n* test: implemented GameMapTest\r\n\r\n* test: implemented GameMapCreatorTest\r\n\r\n* test: added tests to GameMapCreatorTest\r\n\r\n* refactor: 일부 클래스들 main 패키지로 이동\r\n\r\n* bug: adjacentMineCount 잘못 계산되던 문제 수정\r\n\r\n* feat: step1 기능 구현\r\n\r\n---------\r\n\r\nCo-authored-by: silvio.oivlis ","shortMessageHtmlLink":"Step1 (#415)"}},{"before":"9e7d9ff6565a14dae335da7fadbc05bd549051c6","after":"501235e95674c96573ce3c77466f92604539c47b","ref":"refs/heads/bong6981","pushedAt":"2023-12-11T11:05:02.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"Rok93","name":"Gyeonglok Kim","path":"/Rok93","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/47850258?s=80&v=4"},"commit":{"message":"[step2] 지뢰 찾기(지뢰 개수) (#410)\n\n* [step1] refactor: field생성시 lateinit 키워드 사용\r\n\r\n* [step1] feat: MineCount를 value class로 선언\r\n\r\n* [step1] feat: Position의 행과 열은 0이상\r\n\r\n* [step1] fix: field view 로 변경시 열에 대해 오름 차순 정렬\r\n\r\n* [step1] chore: 지뢰찾기 시작과 진행을 진행하는 클래스 이름 Minesweeper -> MinesweeperController\r\n\r\n* [step1] refactor: DSL 가독성을 위해 size를 builder 함수로 생성\r\n\r\n* [step1] docs: 리팩터링과 일치하는 문서 수정\r\n\r\n* [step2] chore: 지뢰 생성 메서드 이름 변경\r\n\r\n* [step1] chore: Field -> Board 이름 변경\r\n\r\n* [step2] refactor: 지뢰 생성 책임 분리 (MineBoardBuilder)\r\n\r\n* [step2] refactor: MineBoard -> 위치만 저장하는 Positions로 변경\r\n\r\n* [step2] feat: 인접 지뢰수 계산\r\n\r\n* [step2] refactor: Positions에서 지뢰 위치 뽑는 부분 메서드로 분리\r\n\r\n* [step2] build: kotlin version up\r\n\r\n* [step2] feat: 보드 결과 출력\r\n\r\n* [step2] chore: 사용하지 않는 클래스 제거 및 클래스 이름 정리\r\n\r\n* [step2] docs: 기능 목록 업데이트","shortMessageHtmlLink":"[step2] 지뢰 찾기(지뢰 개수) (#410)"}},{"before":"99641565d9ecb6e38a54ecc171d46d8266dec339","after":"802a2924012e8421eac82e5b7fe6c4ab2113ba06","ref":"refs/heads/10000001a","pushedAt":"2023-12-11T10:42:36.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"ddaaac","name":"BEOMJUN KIM","path":"/ddaaac","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/43440195?s=80&v=4"},"commit":{"message":"[step3] 지뢰 찾기(게임 실행) (#409)\n\n* refac: 이전 미션 피드백 반영\r\n\r\n* feat: Cell에 isClosed 인스턴스 변수 추가\r\n\r\n* feat: 지뢰찾기 게임 실행 기능 구현\r\n\r\n* refac: get 메서드를 인스턴스 변수로 변경\r\n\r\n* refac: 변수면 개선 및 Position.around 추가\r\n\r\n* fix: 로직 수정 및 테스트 추가","shortMessageHtmlLink":"[step3] 지뢰 찾기(게임 실행) (#409)"}},{"before":"c66928991e2136fc2fabdce92f68b62519231936","after":"39614fced4f2db5ff94bdf844492214353304559","ref":"refs/heads/jdalma","pushedAt":"2023-12-10T09:02:06.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"MyStoryG","name":"James","path":"/MyStoryG","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24286167?s=80&v=4"},"commit":{"message":"3단계 - 지뢰 찾기(게임 실행) (#396)\n\n* docs: 구현 내용 정리\r\n\r\n* feat: 사용자는 반복적으로 셀의 위치를 입력할 수 있다.\r\n\r\n* refactor: 렌더링된 게임판 클래스 추가 및\r\n\r\n1. GameBoard는 RenderedGameBoard를 만들어낸다.\r\n2. MinesweeperBoard는 관리자의 렌더링된 게임판과 사용자의 렌더링된 게임판을 상태로 가진다\r\n3. 게임판은 편의상 Char 타입으로 변경하였다\r\n4. 사용자가 입력받은 정보를 Position 객체로 생성할 때 검증을 거치며 Result 타입을 반환하도록 했다\r\n\r\n* refactor: Position 객체 생성 시 검증 수정\r\n\r\n* feat: 사용자가 입력한 셀과 주변 셀까지 확인한다\r\n\r\n1. MinesweeperBoard는 사용자 보드와 관리자 보드를 소유하며 각 상태는 게임의 시작과 끝까지 생명주기를 같이한다\r\n2. 선택한 셀의 주변 셀들을 계산하여 반환하는 책임은 BoardDimensions에게 전가했다\r\n3. CellOpenStatus를 추가하여 선택한 셀의 상태를 반환하도록 하였다\r\n\r\n* refactor: 들여쓰기 단계 및 축약된 이름 수정\r\n\r\n* refactor: 클래스 패키지 구조 수정\r\n\r\n* refactor: 선택한 셀 주변 셀들을 반환하는 책임을 Position에게 전가\r\n\r\n* refactor: Player와 Admin 추가 및 책임 분리\r\n\r\n1. Player와 Admin을 추가하여 게임판을 관리하는 책임을 가지게 하였음\r\n\r\n* feat: 플레이어 우승 기능 추가 및 셀 위치 잘못 입력 시 재시도 기능 추가\r\n\r\n1. Height, Widht, MineCount 모두 Number 클래스로 래핑\r\n2. Player cellCount 가변 필드 추가\r\n3. 게임 실행 및 셀 위치 입력 꼬리 재귀로 수정\r\n\r\n---------\r\n\r\nCo-authored-by: hjjeong ","shortMessageHtmlLink":"3단계 - 지뢰 찾기(게임 실행) (#396)"}},{"before":null,"after":"8d7215021f7b0f85eb1c9201db46ddcb5ec0758f","ref":"refs/heads/gongwho","pushedAt":"2023-12-08T08:53:47.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"javajigi","name":"박 재성","path":"/javajigi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/520500?s=80&v=4"},"commit":{"message":"build: upgrade to Kotlin 1.8.10 and Gradle 7.6","shortMessageHtmlLink":"build: upgrade to Kotlin 1.8.10 and Gradle 7.6"}},{"before":"38f9d0ab625da34af33aff066876796ff014bb78","after":"e65989f8a011933ea86d578637d7fe8bac96fe06","ref":"refs/heads/jaeyeonme","pushedAt":"2023-12-07T15:15:45.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"Flamme1004K","name":"플람","path":"/Flamme1004K","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/50702723?s=80&v=4"},"commit":{"message":"[step3] 🚀 3단계 - 지뢰 찾기(게임 실행) (#403)\n\n* [step3] (refactor) 보드 생성 시 마인을 초기화하고 셀을 생성하는 리팩토링\r\n\r\n* [step3] (refactor) 보드 생성 시 셀 생성 및 마인 심기 관련 리팩토링\r\n\r\n* [step3] (refactor) forEachCell 함수 네이밍 변경\r\n\r\n* [step3] (refactor) 도메인 클래스에 대한 테스트 코드 추가\r\n\r\n* [step3] (refactor) 테스트코드 수정\r\n\r\n* [step3] (test) 지뢰 선택 셀에 대한 테스트 코드 작성\r\n\r\n* [step3] (test) 지뢰 선택 셀에 대한 프로덕션 코드 작성\r\n\r\n* [step3] (refector) 지회 찾기 게임의 view 로직 작성 및 리팩토링\r\n\r\n* [step3] (refector) 지뢰 찾기 게임의 프로덕션 리팩토링으로 인한 테스트 코드 리팩토링\r\n\r\n* [step3] (refactor) 모든 셀의 상태에 대한 네이밍 수정\r\n\r\n* [step3] (refactor) GameBoard에서 상태 관리를 명확하게 하기 위해 isGameOver를 열거형으로 리팩토링\r\n\r\n* [step3] (refactor) 셀 위치에 대한 예외 처리 추가\r\n\r\n* [step3] (refactor) GameBoard에서 width와 height 제거하여 캡슐화 개선\r\n\r\n* [step3] (refactor) GameBoardTest의 테스트코드 리팩토링\r\n\r\n* [step3] (refactor) 게임 로직 수정","shortMessageHtmlLink":"[step3] 🚀 3단계 - 지뢰 찾기(게임 실행) (#403)"}},{"before":"9b125e0ea1e1fb089e303bcf604c85c52d197a90","after":"a0537a8a7d9dc27f9beafc11f9e56496624a5c95","ref":"refs/heads/parker1609","pushedAt":"2023-12-07T11:07:25.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"ddaaac","name":"BEOMJUN KIM","path":"/ddaaac","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/43440195?s=80&v=4"},"commit":{"message":"[Step4] 지뢰 찾기(리팩터링) (#406)\n\n* feat: Cell에서 자신이 Open되었는지 판단한다\r\n\r\n* refactor: 적절한 변수 및 메서드 이름으로 변경\r\n\r\n* refactor: 변수로 추출\r\n\r\n* refactor: open은 반환이 아닌 내부 필드에 open된 좌표를 채운다\r\n\r\n* refactor: when 절 사용\r\n\r\n* refactor: filterIsInstance 사용","shortMessageHtmlLink":"[Step4] 지뢰 찾기(리팩터링) (#406)"}},{"before":"8d7215021f7b0f85eb1c9201db46ddcb5ec0758f","after":"815e4b2bea1eb2e1f1e3f6a89b3663ad7f29f26c","ref":"refs/heads/oyj7677","pushedAt":"2023-12-06T13:34:15.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"sah3122","name":"dongchul","path":"/sah3122","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24941604?s=80&v=4"},"commit":{"message":"Step1 - 지뢰 찾기(그리기) (#397)\n\n* Feat: 마인 맵 생성 팩토리 구현\r\nFeat: 마인 맵 파라미터 유효성 검사 기능 구현\r\n\r\nDocs: 기능 요구 사항 및 기능 목록 작성\r\n\r\n* Feat: 지뢰 세팅 기능 구현\r\n\r\n* Refactor: 클래스명 변경 MineMap -> Board\r\n\r\n* Feat:\r\n- 랜덤 인터페이스 생성,\r\n- Input View 생성(최소값 1)\r\n- Output View 생성\r\n- Validate 오브젝트 생성 (맵 < 지뢰 예외 검사)\r\n\r\nRefactor:\r\n- 패키지 구성 변경\r\n\r\n* Refactor: 매직 넘버, 매직 스트링 상수로 변경\r\n\r\n* Fix:\r\n- getSelectRowIndex()의 OutofIndex에러 수정\r\n- 지뢰 생성 개수 input값으로 변경\r\n\r\n* Refactor: 지뢰 개수 검증 로직 역할 변경 object validate -> MineSearch\r\n\r\n* Fix: fix bug in Board (getSelectColumIndex(), getSelectRowIndex())\r\n\r\nRefactor: rebuilding property class Board, create MapInfo","shortMessageHtmlLink":"Step1 - 지뢰 찾기(그리기) (#397)"}},{"before":"cc9668ab39cd2f0284b9506f1f54b169031f2657","after":"fe8d4b382949f6d87e5cec2d3879b9760982e0b7","ref":"refs/heads/ho-ya-ho","pushedAt":"2023-12-05T16:52:39.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"kyucumber","name":"KyuNam","path":"/kyucumber","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/34656258?s=80&v=4"},"commit":{"message":"🚀 3단계 - 지뢰 찾기(게임 실행) (#398)\n\n* (update) step2 코드리뷰 반영\r\n\r\n* (update) step2 코드리뷰 반영\r\n\r\n* (create) Point 입력 받는 기능 추가\r\n\r\n* (create) ResultStatus 추가\r\n\r\n* (create) 화면 출력 기능 추가\r\n\r\n* (create) cell open 기능 추가\r\n\r\n* (update) step3 코드 리뷰 반영 - RandomPointFactory() 기본값으로 변경\r\n\r\n* (update) step3 코드 리뷰 반영 - board Setting 하는 함수들 companion object -> 내부 함수로 변경\r\n\r\n* (update) step3 코드 리뷰 반영 - 함수 네이밍 변경 및 프로퍼티 삭제\r\n\r\n* (update) step3 코드 리뷰 반영 - 함수 네이밍 변경 및 프로퍼티 삭제\r\n\r\n* (update) step3 코드 리뷰 반영 - 확장 함수 사용, 메서드 분리\r\n\r\n* (update) step3 코드 리뷰 반영 - 가변 프로퍼티인 gameStatus 불변으로 변경","shortMessageHtmlLink":"🚀 3단계 - 지뢰 찾기(게임 실행) (#398)"}},{"before":"8d7215021f7b0f85eb1c9201db46ddcb5ec0758f","after":"fb72d5889956cef4a22845c137f8f74369fd5e6b","ref":"refs/heads/dlwnsgus777","pushedAt":"2023-12-05T02:42:11.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"namjackson","name":null,"path":"/namjackson","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/23446196?s=80&v=4"},"commit":{"message":"[Step1] 🚀 1단계 - 지뢰 찾기(그리기) (#385)\n\n* doc: 요구사항 분석\r\n\r\n* doc: 발판 클래스들 생성\r\n\r\n* feat: 입력 기능 개발\r\n\r\n* feat: position 클래스 개발\r\n\r\n* feat: 지뢰찾기 맵을 담당하는 Field 클래스 개발\r\n\r\n* feat: 마인 위치 생성 팩토리 개발\r\n\r\n* feat: 마인 게임 컨트롤러 개발\r\n\r\n* lint: ktlint 맞추기\r\n\r\n* doc: 요구사항 정리 업데이트\r\n\r\n* feat: Size 클래스 생성\r\n\r\n* feat: 랜덤하게 마인을 생성하는 방식을 인터페이스로 분리\r\n\r\n* ktlint: ktlint 맞추기\r\n\r\n* feat: List을 컬렉션으로 감싼 Pedals 클래스 생성\r\n\r\n* refactor: 사용하지 않는 코드 삭제\r\n\r\n* refactor: 컨트롤러 로직 새로 작성\r\n\r\n* refactor: 한칸의 들여쓰기만 사용하도록 수정\r\n\r\n---------\r\n\r\nCo-authored-by: Ted1_Lee ","shortMessageHtmlLink":"[Step1] 🚀 1단계 - 지뢰 찾기(그리기) (#385)"}},{"before":"c2182355bf362924f7c84fbdee99896bbfe4ffa9","after":"5efd2d5195eb91ccaa14bb88f59be5fe2c61fbfe","ref":"refs/heads/yeongunheo","pushedAt":"2023-12-05T02:13:33.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"namjackson","name":null,"path":"/namjackson","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/23446196?s=80&v=4"},"commit":{"message":"[지뢰 찾기] step2 (#404)\n\n* refactor: Mine 이름을 Cell로 변경\r\n\r\n* refactor: Cell을 불변 객체로 변경\r\n\r\n* refactor: 불필요한 팩토리 함수 제거\r\n\r\n* refactor: InputView 내 중복 코드 제거\r\n\r\n* refactor: PositionGenerator.init() 함수명을 generateInit()으로 변경\r\n\r\n* refactor: 포지션을 만들어내는 역할을 CellFinder에게 위임\r\n\r\n* refactor: Position 내 x,y 좌표를 Size가 아닌 Point로 변경\r\n\r\n* feat: 자신을 제외한 주변 8개 사각형에 포함된 지뢰의 개수를 계산하는 기능 구현","shortMessageHtmlLink":"[지뢰 찾기] step2 (#404)"}},{"before":"8d7215021f7b0f85eb1c9201db46ddcb5ec0758f","after":"2c50ccf3bf7d01326aa697c6c15222e37557aeb0","ref":"refs/heads/david-sang","pushedAt":"2023-12-05T00:50:45.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"pci2676","name":"박찬인","path":"/pci2676","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/13347548?s=80&v=4"},"commit":{"message":"feat(step1): 지뢰 찾기(그리기) (#405)\n\n* docs(step1): 요구사항 정리\r\n\r\n* docs(step1): 요구사항 정리\r\n\r\n* docs(step1): 요구사항 정리\r\n\r\n* feat(step1): 요구사항 구현\r\n\r\n- 높이는 500 이하인 양의 정수이다\r\n- 너비는 500 이하인 양의 정수이다\r\n\r\n* feat(step1): 요구사항 구현\r\n\r\n- 지뢰 개수는 양의 정수이다\r\n\r\n* feat(step1): 요구사항 구현\r\n\r\n- 지뢰 개수는 높이와 너비를 곱한 수 이하이다\r\n\r\n* feat(step1): 요구사항 구현\r\n\r\n- 지뢰 개수는 높이와 너비를 곱한 수 이하이다\r\n\r\n* feat(step1): 요구사항 구현\r\n\r\n- 지뢰의 행은 높이보다 작다\r\n- 지뢰의 열은 너비보다 작다\r\n\r\n* feat(step1): controller, view 구현\r\n\r\n* fix(step1): 출력 시 누락된 문구 추가","shortMessageHtmlLink":"feat(step1): 지뢰 찾기(그리기) (#405)"}},{"before":"88906bca02dfc1e3667dbd838c076e6f82d487b4","after":"fcfd92e0e380920ebefc6766f207c58cb4b88fbc","ref":"refs/heads/yunho-park","pushedAt":"2023-12-05T00:31:27.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"Hyeon9mak","name":null,"path":"/Hyeon9mak","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/37354145?s=80&v=4"},"commit":{"message":"피드백 반영 (#407)\n\nCo-authored-by: chacha.roni ","shortMessageHtmlLink":"피드백 반영 (#407)"}},{"before":"767767aa0a1069e21de4a4d2f55ffb2389afedae","after":"99641565d9ecb6e38a54ecc171d46d8266dec339","ref":"refs/heads/10000001a","pushedAt":"2023-12-04T11:21:45.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"ddaaac","name":"BEOMJUN KIM","path":"/ddaaac","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/43440195?s=80&v=4"},"commit":{"message":"[step2] 지뢰 찾기(지뢰 개수) (#402)\n\n* refac: MineSweeper의 타입을 Map으로 변경\r\n\r\n* deps: kotest 버전 수정\r\n\r\n* refac: 가변 객체 제거\r\n\r\n* feat: SafeCell의 주변 지뢰 개수 찾기","shortMessageHtmlLink":"[step2] 지뢰 찾기(지뢰 개수) (#402)"}},{"before":"5fdc12af5634e6ba86a64a49286d1552471a4852","after":"9b125e0ea1e1fb089e303bcf604c85c52d197a90","ref":"refs/heads/parker1609","pushedAt":"2023-12-04T11:07:10.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"ddaaac","name":"BEOMJUN KIM","path":"/ddaaac","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/43440195?s=80&v=4"},"commit":{"message":"[Step3] 지뢰 찾기(게임 실행) (#400)\n\n* refactor: 사용하지 않은 CellType 삭제\r\n\r\n* 3단계 기능 구현\r\n\r\nSquashed commit of the following:\r\n\r\ncommit 420f6e1521612cea339d6b01db82c15115489384\r\nAuthor: parker1609 \r\nDate: Sat Dec 2 19:58:36 2023 +0900\r\n\r\n feat: 지뢰 칸수를 제외하고 모두 열였으면 win\r\n\r\ncommit 8dab46619b763dd69e623fa836aca5db5914bea5\r\nAuthor: parker1609 \r\nDate: Sat Dec 2 19:58:23 2023 +0900\r\n\r\n feat: Board는 지뢰를 제외하고 모두 열였는지 판단할 수 있다.\r\n\r\ncommit 47274769f7cb58051bac885b90b55f3a7c27d445\r\nAuthor: parker1609 \r\nDate: Sat Dec 2 16:34:01 2023 +0900\r\n\r\n feat: 사용자가 입력한 좌표를 보고 이 좌표를 열 수 있는지 보고, 열 수 없으면 lose\r\n\r\ncommit 0575ad80c30b652902c8cfef9fc20f9151185594\r\nAuthor: parker1609 \r\nDate: Sat Dec 2 16:15:29 2023 +0900\r\n\r\n feat: Board에 특정 좌표를 입력하여 해당 좌표를 열 수 있는지 판단한다.\r\n\r\ncommit c067b6a52b00706f5363d5bb1580d3f506cd7d31\r\nAuthor: parker1609 \r\nDate: Sat Dec 2 16:10:57 2023 +0900\r\n\r\n feat: Board에 특정 좌표를 입력하여 해당 좌표를 연다.\r\n\r\ncommit ee60c9d38b060f06c65e6e55500e93d1d3fd9c72\r\nAuthor: parker1609 \r\nDate: Sat Dec 2 09:55:59 2023 +0900\r\n\r\n refactor: associateWith 사용\r\n\r\ncommit 81b0e3221ef4bbe793948491a7acf6ba290894fe\r\nAuthor: parker1609 \r\nDate: Sat Dec 2 09:37:38 2023 +0900\r\n\r\n feat: 게임 결과 출력 시, 지뢰가 아닌 Cell은 주변 지뢰 개수를 출력한다.\r\n\r\ncommit f35c842fbd327e2bf8e194851cd395c50e2b3fa1\r\nAuthor: parker1609 \r\nDate: Sat Dec 2 09:36:14 2023 +0900\r\n\r\n feat: Board 생성시, 지뢰를 만들고 난 다음 주변 지뢰 개수를 계산하여 Cell에 저장한다.\r\n\r\ncommit 894f92d1b150713bd170b670d708585bee65cae7\r\nAuthor: parker1609 \r\nDate: Sat Dec 2 08:52:47 2023 +0900\r\n\r\n feat: Cell 데이터 클래스로 변경\r\n\r\ncommit b160f3754da258ea16226921dc082f839957a2ef\r\nAuthor: parker1609 \r\nDate: Sat Dec 2 08:47:07 2023 +0900\r\n\r\n docs: 기능요구사항 및 TODO 작성\r\n\r\n* refactor: 주변 지뢰 개수를 구하는 로직 CountingBoard 객체로 분리\r\n\r\n* docs: README.md 충돌 해결","shortMessageHtmlLink":"[Step3] 지뢰 찾기(게임 실행) (#400)"}},{"before":"50ddb9d464112ac343fb2514514b446aa1e30cd1","after":"88906bca02dfc1e3667dbd838c076e6f82d487b4","ref":"refs/heads/yunho-park","pushedAt":"2023-12-04T10:20:59.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"Hyeon9mak","name":null,"path":"/Hyeon9mak","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/37354145?s=80&v=4"},"commit":{"message":"Step3 - 게임 실행 (#391)\n\n* 피드백 반영 - 주석제거\r\n\r\n* step3 - 기능명세 업데이트\r\n\r\n* step3 - 오픈할 좌표 입력\r\n\r\n* step3 - README 업데이트\r\n\r\n* step3 - 닫힌 셀 정보 은폐\r\n\r\n* step3 - 셀 오픈 구현\r\n\r\n* step3 - 게임 종료조건 구현\r\n\r\n* step3 - 게임 결과 출력\r\n\r\n* 피드백 반영 - not 연산자 제거, 가독성 향샹\r\n\r\n---------\r\n\r\nCo-authored-by: chacha.roni ","shortMessageHtmlLink":"Step3 - 게임 실행 (#391)"}},{"before":null,"after":"8d7215021f7b0f85eb1c9201db46ddcb5ec0758f","ref":"refs/heads/wjdtlr0920","pushedAt":"2023-12-04T09:27:58.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"javajigi","name":"박 재성","path":"/javajigi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/520500?s=80&v=4"},"commit":{"message":"build: upgrade to Kotlin 1.8.10 and Gradle 7.6","shortMessageHtmlLink":"build: upgrade to Kotlin 1.8.10 and Gradle 7.6"}},{"before":"656925395073c5cf563fbfc0ff0fbd1302b5a873","after":"a543a11f0a99f0184ba5eba5737d6a0cb44758c1","ref":"refs/heads/ahn-seokjoo","pushedAt":"2023-12-04T09:08:16.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"wisemuji","name":"Suhyeon Kim","path":"/wisemuji","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/32327475?s=80&v=4"},"commit":{"message":"[step2] 2단계 지뢰 개수 수행입니다. (#401)\n\n* [refactoring] step2: 리뷰 반영 가짜 생성자 사용\r\n\r\n* [refactoring] step2: 리뷰 반영 정상 케이스 추가 및 테스트 명 수정\r\n\r\n* [refactoring] step2: Mine 뷰로직 도메인에서 분리 및 테스트 실패 수정\r\n\r\n* [refactoring] step2: Mine 로직 수정 및 변수 추가\r\n\r\n* [refactoring] step2: Mine 생성 테스트 추가\r\n\r\n* [refactoring] step2: MineSweeperWidth Test 추가\r\n\r\n* [refactoring] step2: MineSweeper 클래스 다이어트\r\n\r\n* [refactoring] step2: BoardTest 추가\r\n\r\n* [refactoring] step2: MineSweeperWidthTest 케이스 추가\r\n\r\n* [refactoring] step2: 먼저 기본 값을 0으로 변경\r\n\r\n* [refactoring] step2: 외부에서 생성하여 주입\r\n\r\n* [feature] step2: SweeperBoard에게 값 변경 메시지 전달\r\n\r\n* [refactoring] step2: readme 업데이트\r\n\r\n* [reafactoring] step2: 코드 리팩토링 중복코드 제거\r\n\r\n* [refactoring] step2: readme 업데이트","shortMessageHtmlLink":"[step2] 2단계 지뢰 개수 수행입니다. (#401)"}},{"before":"cdaa9e88d5ca342aa38985a947c2d88ee298a418","after":"57e91eb719e4c202bfcec6a0e759107214ffb354","ref":"refs/heads/loren-hyuni","pushedAt":"2023-12-04T08:31:53.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"wisemuji","name":"Suhyeon Kim","path":"/wisemuji","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/32327475?s=80&v=4"},"commit":{"message":"Step4: 지뢰 찾기 (리팩토링) (#383)\n\n* mission: step4 지뢰찾기 (리펙토링)\r\nTDD로 구현하기 위해 초기화 및 spot 초기 상태 구현\r\n\r\n* mission: step4 지뢰찾기 (리펙토링)\r\nspot을 열면 열린 상태가 된다\r\n\r\n* mission: step4 지뢰찾기 (리펙토링)\r\nspot에 지뢰 유무를 포함한다\r\n\r\n* mission: step4 지뢰찾기 (리펙토링)\r\nspot이 열릴때 주위 지뢰 숫자를 반환한다\r\n\r\n* mission: step4 지뢰찾기 (리펙토링)\r\n지뢰가 있는 상태에서 열리면 지뢰가 반환된다\r\n\r\n* mission: step4 지뢰찾기 (리펙토링)\r\nMineMap은 높이와 너비가 있다\r\n\r\n* mission: step4 지뢰찾기 (리펙토링)\r\nmineMap에 지뢰가 있고 접근이 가능하다\r\n\r\n* mission: step4 지뢰찾기 (리펙토링)\r\nmineMap에 지뢰가 있는 곳도, 없는 곳도 있다\r\n\r\n* mission: step4 지뢰찾기 (리펙토링)\r\n랜덤한 지뢰 맵이 생성된다\r\n\r\n* mission: step4 지뢰찾기 (리펙토링)\r\n맵에서 좌표를 이용해 한 지점을 오픈할 수 있다\r\n\r\n* mission: step4 지뢰찾기 (리펙토링)\r\n인접한 지뢰가 없는 좌표가 다 열린다\r\n\r\n* mission: step4 지뢰찾기 (리펙토링)\r\n지뢰 게임을 승리하거나 패배하는 조건 추가\r\n\r\n* mission: step4 지뢰찾기 (리펙토링)\r\n맵을 출력할 수 있다\r\n\r\n* mission: step4 지뢰찾기 (리펙토링)\r\n맵의 가독성을 높이기 위한 row와 column 분리\r\n\r\n* mission: step4 지뢰찾기 (리펙토링)\r\n맵 정보를 분리\r\n\r\n* mission: step4 지뢰찾기 (리펙토링)\r\n사용하지 않는 함수 정리 및 MineMap 초기화 코드 정리\r\n\r\n* mission: step4 지뢰찾기 (리펙토링)\r\n열수 있는 지점이 남았는지 확인하는 로직 개선\r\n\r\n* mission: step4 지뢰찾기 (리펙토링)\r\nstatus 개선 및 view 데이터 책임 이관\r\n\r\n* mission: step4 지뢰찾기 (리펙토링)\r\nklint 깨짐 수정\r\n\r\n* mission: step4 지뢰찾기 (리펙토링)\r\nClosed class도 object 변환\r\n\r\n* mission: step4 지뢰찾기 (리펙토링)\r\nrun 함수를 의미있는 단위로 분할\r\n\r\n* mission: step4 지뢰찾기 (리펙토링)\r\npoint의 부 생성자를 명확하게 정리\r\n\r\n* mission: step4 지뢰찾기 (리펙토링)\r\nOpened class interface로 변경\r\n\r\n* mission: step4 지뢰찾기 (리펙토링)\r\nMineMapInfo 테스트 수정\r\n\r\n* mission: step4 지뢰찾기 (리펙토링)\r\nMineMapTest에서 쓸모 없는 테스트 제거","shortMessageHtmlLink":"Step4: 지뢰 찾기 (리팩토링) (#383)"}},{"before":"8d7215021f7b0f85eb1c9201db46ddcb5ec0758f","after":"656925395073c5cf563fbfc0ff0fbd1302b5a873","ref":"refs/heads/ahn-seokjoo","pushedAt":"2023-12-03T14:47:29.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"wisemuji","name":"Suhyeon Kim","path":"/wisemuji","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/32327475?s=80&v=4"},"commit":{"message":"[step1] 지뢰찾기 그리기 수행입니다. (#388)\n\n* [step1] feature: readme 추가\r\n\r\n* [step1] feature: 테스트 케이스 추가\r\n\r\n* [step1] feature: test case 추가\r\n\r\n* [step1] feature: 게임 수행\r\n\r\n* [step1] refactoring: 로직 수정\r\n\r\n* [step1] 패키지 분리\r\n\r\n* [step1] refacotirng: MineSweeperBoard 분리\r\n\r\n* [step1] refactoring: 테스트 케이스 수정\r\n\r\n* [step1] refactoring: 네이밍 수정\r\n\r\n* [step1] refacotirng: mine width 추가\r\n\r\n* [step1] refacotirng: minesweeper board 추가\r\n\r\n* [step1] refactoring: clean check 및 미적용 코드 수정","shortMessageHtmlLink":"[step1] 지뢰찾기 그리기 수행입니다. (#388)"}},{"before":"e7a56ae91433c297b0e40b26664a1223b4a91e06","after":"5fdc12af5634e6ba86a64a49286d1552471a4852","ref":"refs/heads/parker1609","pushedAt":"2023-12-03T13:06:00.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"ddaaac","name":"BEOMJUN KIM","path":"/ddaaac","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/43440195?s=80&v=4"},"commit":{"message":"[Step2] 지뢰 찾기(지뢰 개수) (#390)\n\n* docs: 기능요구사항 및 TODO 작성\r\n\r\n* feat: Cell 데이터 클래스로 변경\r\n\r\n* feat: Board 생성시, 지뢰를 만들고 난 다음 주변 지뢰 개수를 계산하여 Cell에 저장한다.\r\n\r\n* feat: 게임 결과 출력 시, 지뢰가 아닌 Cell은 주변 지뢰 개수를 출력한다.\r\n\r\n* refactor: associateWith 사용\r\n\r\n* refactor: 주변 지뢰 개수를 계산하는 로직은 생성자가 아닌 public method로 분리\r\n\r\n* refactor: sealed class 사용\r\n\r\n* refactor: rows를 사용하여 카운트 계산\r\n\r\n* feat: 최소 height & width 조건 추가","shortMessageHtmlLink":"[Step2] 지뢰 찾기(지뢰 개수) (#390)"}},{"before":"e58cc6ced2d93e54d16d2815f18a492683370006","after":"6dde009f48dd9a979e8aaf9a3697cdf5641db99f","ref":"refs/heads/jaylene-shin","pushedAt":"2023-12-03T09:33:00.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"malibinYun","name":"Yun Hyeok, Mome","path":"/malibinYun","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/44341119?s=80&v=4"},"commit":{"message":"Step2 지뢰 찾기(지뢰 개수) (#389)\n\n* 방어적 복사 정상화\r\n\r\n* Cell을 sealed interface로 변경, Mine/Empty 하위 클래스 생성\r\n\r\n* Position Selector, Generator 변경 - 재귀 제거\r\n\r\n* MineMap 생성 방식 변경\r\n\r\n* 검증문 보강\r\n\r\n* delegate 로직 제거\r\n\r\n* assertJ 검증문으로 수정\r\n\r\n* 상대 좌표 구하도록 position 데이터 클래스 역할 확장\r\n\r\n* 상대 좌표 구하도록 position 데이터 클래스 역할 확장\r\n\r\n* map generator 생성, 맵 생성 방식 변경\r\n\r\n* 컨트롤러 변경, 뷰 변경\r\n\r\n* 추상화를 통한 정보 은닉\r\n\r\n* assertAll 모두 제거","shortMessageHtmlLink":"Step2 지뢰 찾기(지뢰 개수) (#389)"}},{"before":"31fad883448ed3f8db764cd2bd97a4573d05967e","after":"cc9668ab39cd2f0284b9506f1f54b169031f2657","ref":"refs/heads/ho-ya-ho","pushedAt":"2023-12-03T07:26:45.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"kyucumber","name":"KyuNam","path":"/kyucumber","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/34656258?s=80&v=4"},"commit":{"message":"🚀 2단계 - 지뢰 찾기(지뢰 개수) (#387)\n\n* step1 코드리뷰 반영\r\n\r\n* 폴더 구조 변경\r\n\r\n* (create, update) step2 구현 - 미완성\r\n\r\n* (create, update) 주변 지뢰 갯수 찾아내는 로직 추가\r\n\r\n* (create, update) 주변 지뢰 갯수 찾아내는 로직 추가에 따른 test code 추가\r\n\r\n* (create, update) DTO 생성 및 화면 코드 수정\r\n\r\n* (update) formating 변경\r\n\r\n* (update) 코드 리뷰 반영 - createMinePoints 메소드 List 반환하도록 변경\r\n\r\n* (update) 코드 리뷰 반영 - calculateNeighborMineCount 메소드 CellInfo class 로 이동\r\n\r\n* (update) 코드 리뷰 반영 - neighborMineCount 가변으로 변경\r\n\r\n* (update) 코드 리뷰 반영 - companion object 제거하고 일관성 있도록 수정\r\n\r\n* (update) 코드 리뷰 반영 - ktlint 적용\r\n\r\n* (update) NeighborMineCount class -> value class 적용","shortMessageHtmlLink":"🚀 2단계 - 지뢰 찾기(지뢰 개수) (#387)"}},{"before":"8d7215021f7b0f85eb1c9201db46ddcb5ec0758f","after":"9e7d9ff6565a14dae335da7fadbc05bd549051c6","ref":"refs/heads/bong6981","pushedAt":"2023-12-03T06:56:44.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"Rok93","name":"Gyeonglok Kim","path":"/Rok93","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/47850258?s=80&v=4"},"commit":{"message":"[steo1] 지뢰 찾기(그리기) (#392)\n\n* docs: 기능 목록 작성\r\n\r\n* feat: 높이 입력\r\n\r\n* build: kotest 버전 업\r\n\r\n* feat: 높이 입력값 검증\r\n\r\n* feat: 너비 입력 및 생성\r\n\r\n* feat: 높이와 너비로 지뢰 필드 생성\r\n\r\n* feat: 지뢰 개수 입력\r\n\r\n* feat: 필드의 셀 구성\r\n\r\n* feat: 셀 생성시 디폴트는 지뢰 없음\r\n\r\n* refactor: 패키지 정리 및 메서드 분리\r\n\r\n* refactor: 사이즈에 대한 정보는 FieldSize에서, 위치에 대한 정보는 Postion에서 관리\r\n\r\n* refactor: Field 생성시 Builder를 사용하도록 수정\r\n\r\n* feat: 지뢰 생성\r\n\r\n* feat: 지뢰 필드 출력","shortMessageHtmlLink":"[steo1] 지뢰 찾기(그리기) (#392)"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAD13cdSQA","startCursor":null,"endCursor":null}},"title":"Activity · next-step/kotlin-minesweeper"}