-
Notifications
You must be signed in to change notification settings - Fork 32
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
[Joy] step-5 수정 #207
Open
he2joojo
wants to merge
44
commits into
codesquad-members-2023:main
Choose a base branch
from
he2joojo:feature2
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
[Joy] step-5 수정 #207
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
스트림을 사용해 이중for문을 제거했다. 또 메서드를 더 작은 단위로 나눴다.
[Joy] step-1 구현
사다리 모양을 '-'에서 "-----"로 변경하고 사다리 가로 줄이 연속적으로 나오지 않게 검사하는 메서드를 추가했다.
Player 클래스를 생성해서 플레이어 이름을 출력하게 했다. 또 PrintLadder 클래스를 생성하여 기존 Ladder 클래스에 있던 출력 메서드를 분리했다.
Player클래스를 만들어서 플레이어 이름을 출력하게 했다. 또 기존의 Ladder클래스의 printLadder메서드를 분리해서 별도의 클래스 PrintLadder클래스에 저장했다.
[Joy] step-3 구현
첫번째 플레이어, 가운데 플레이어(n), 마지막 플레이어 총 3부분으로 나누어 출력메서드를 수정했다.
메서드를 총 세부분으로 나누었다. 첫번째 플레이어, 가운데 플레이어(n명), 마지막 플레이어. 각 부분이 같은 공백으로 출력되게 메서드를 작성했다.
기존의 String[][]배열을 모두 ArrayList<ArrayList<String>>로 교체했습니다.
[Joy] step-3 수정
3월13~ 일주일간의 학습 키워드와 매일 할 일을 정리했다.
전체적인 설계를 변경하고 패키지를 domain과 view로 분리했다. LadderGame클래스를 추가해 Main과 Ladder 사이에서 협력하게 했다. 또 기존 Main클래스에 있던 입력함수를 Input 클래스로 이동시켰다.
Client 클래스를 추가하여 Client에서 LadderGame을 호출하고 LadderGame에서 Ladder를 호출하도록 설계를 변경하였다. 게임 시작 시 Main클래스에서 Client 인스턴스를 생성하여 startGame()을 호출하면 게임이 실행되게 했다.
Line클래스의 makeLine()에서 사다리 한 줄을 생성하게 했다. Line 생성자에서 makeLine을 호출하여 생성시 자동으로 한 줄이 만들어지게 하고 Ladder클래스에서 row만큼 Line객체를 생성하게 했다.
LadderGame에 pkayers의 이름을 간격에 맞춰 출력하는 메서드와 사다리를 출력하는 메서드를 추가했다.
LadderGame의 printPlayers 메서드를 간격에 맞게 출력하도록 수정하고, Line 클래스의 makeLine메서드의 오타를 수정했다.
플레이어의 정보를 따로 관리하는 Players클래스를 추가하여 기존의 설계를 개선하였다.
Players클래스에 사다리 게임의 결과를 걔산하는 getOneResult()메서드를 추가했다. 이 메서드는 매개변수로 받은 한 명의 플레이어의 결과를 계산한다.
getResult(String ladder)를 Players클래스에 추가하여 사다리 게임의 전체 결과를 계산하게 했다. 이 메서드는 Players클래스가 생성될 때 자동으로 호출된다.
Players클래스에 searchResult()메서드를 추가해 전체결과과 개별 결과를 String으로 반환하게 했다. InputLadder클래스에서 입력을 받아 Client가 LadderGame클래스로 넘기고 LadderGame클래스에서 이 메서드를 호출하게 했다.
Line클래스에서 사다리의 가로 줄이 연속으로 나오는지, 열이 맞게 출력되는지 확인하는 테스트 메서드를 작성했다.
Ladder클래스를 테스트 하기 위해 LadderTest에 사다리의 행과 열이 맞게 출력 되는지, 가로줄이 연속으로 나오는지 테스트하는 메서드를 작성했다.
원래 Players에 있던 사다리 결과를 계산하는 메서드를 삭제하고 결과를 받아 Map에 저장하는 sortResult()를 추가했다. 이 메서드는 생성자로 int[]를 받아 Map에 플레이어의 이름과 결과를 저장한다. Players의 생성자 매개변수가 변경되어 LadderGame도 변경하였다.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
LadderGame클래스의 start()에서 Ladder클래스의 메서드 호출 순서를 바꿔서 버그를 수정했다.