From 662543f9ec437cff07d0a62fc5c67073291ce627 Mon Sep 17 00:00:00 2001 From: HyowonSin Date: Mon, 6 Mar 2023 17:00:24 +0900 Subject: [PATCH 1/8] =?UTF-8?q?docs(README):=20=ED=95=99=EC=8A=B5=20?= =?UTF-8?q?=EA=B3=84=ED=9A=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 리드미에 학습 계획 작성 --- README.md | 65 ++++++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 60 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index ad6e6861..1dcf468a 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,64 @@ -# Java Lotto +# Java Ladder -- Last Update: 2022-12-28 +- Last Update: 2023-03-06 -## 코드 리뷰 +## 학습 계획 -* [텍스트와 이미지로 살펴보는 코드스쿼드의 온라인 코드 리뷰 과정](https://github.com/code-squad/codesquad-docs/blob/master/codereview/README.md) +- PR 테스트 해보기 -* [동영상으로 살펴보는 코드스쿼드의 온라인 코드 리뷰 과정](https://youtube.com/watch?v=lFinZfu3QO0&si=EnSIkaIECMiOmarE) + +- 1단계 요구사항에 맞춰 무지성 구현하기 +- 학습 자료 공부 후 코드 다시 보기 + + +- 2단계 요구사항에 맞춰 리팩토링하기 +- 학습 자료 공부 후 포인트 집어보며 다시 보기 + + +- 3단계 요구사항에 맞춰 개선해보기 +- 학습 자료 공부 후 포인트 집어보며 다시 보기 + + +- 4단계 요구사항에 맞춰 리팩토링하기 +- 학습 자료 공부 후 포인트 집어보며 다시 보기 + + +## 1단계 + +- 목표 → 자바 개발환경, JDK11 기본 기능 학습, 자바 다루기, 클래스/객체/배열 사용 +- 알아둘 것 → 자바 언어, 타입/조건문/반복문, 2차원 배열, 클래스/객체,메서드 + + +- 기능 요구사항 + - 간단한 사다리 게임 + - n명의 사람, m개의 사다리 개수 입력하기 + - 사다리의 라인은 랜덤 값에 따라 있거나 없음 + - 사다리가 있으면 "-" 표시 + - 없으면 " "(공백문자) 표시 + - 양 옆에는 "|" 표시 + - 사다리 상태를 화면에 출력 + - 출력 시점엔 제약 없음 + + +- Github 브랜치 생성 및 PR 학습 + + +- 구현 요구사항 + - 메서드 크기 최대 10라인 이내 + - 메서드가 한 가지 일만 하도록 작게 만들기 + - 2차원 배열 이용 + + +- 예상결과 및 동작예시 +```markdown +참여할 사람은 몇 명인가요? +3 +최대 사다리 높이는 몇 개인가요? +5 + +|-| | +| |-| +|-|-| +| |-| +|-| | +``` \ No newline at end of file From efb06855b354a5e8bb52b72e6a87ad3f444292f8 Mon Sep 17 00:00:00 2001 From: HyowonSin Date: Thu, 9 Mar 2023 18:25:04 +0900 Subject: [PATCH 2/8] =?UTF-8?q?feat:=20=EC=9E=85=EB=A0=A5=20=EB=A9=94?= =?UTF-8?q?=EC=84=9C=EB=93=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 인원, 사다리 높이 관련 입력 메서드 --- src/main/java/kr/codesquad/Main.java | 29 ++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/src/main/java/kr/codesquad/Main.java b/src/main/java/kr/codesquad/Main.java index b5ec785b..b424556e 100644 --- a/src/main/java/kr/codesquad/Main.java +++ b/src/main/java/kr/codesquad/Main.java @@ -1,7 +1,36 @@ package kr.codesquad; +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; + public class Main { public static void main(String[] args) { System.out.println("Hello world!"); + public static void main(String[] args) throws IOException { + Main main = new Main(); + int n = main.inputPeople(); + int m = main.inputLadder(); + private int inputPeople() throws IOException { + printInputPeople(); + return input(); + } + + private int inputLadder() throws IOException { + printInputLadder(); + return input(); + } + + private int input() throws IOException { + BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); + return Integer.parseInt(br.readLine()); + } + + private void printInputPeople() { + System.out.println("참여할 사람은 몇 명 인가요?"); + } + + private void printInputLadder() { + System.out.println("최대 사다리 높이는 몇 개인가요?"); } } \ No newline at end of file From b9776e6e07b740f6828eb14e4ab259b3918178b4 Mon Sep 17 00:00:00 2001 From: HyowonSin Date: Thu, 9 Mar 2023 18:26:13 +0900 Subject: [PATCH 3/8] =?UTF-8?q?xx:=20=EC=9A=94=EA=B5=AC=EC=82=AC=ED=95=AD?= =?UTF-8?q?=20=EB=86=93=EC=B9=9C=20for=20=EB=AC=B8=20=EB=91=98=EB=91=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 2차원 배열을 쓰지 않아서 폐기 --- src/main/java/kr/codesquad/Ladder.java | 19 +++++++++++++++++++ src/main/java/kr/codesquad/Main.java | 1 + 2 files changed, 20 insertions(+) create mode 100644 src/main/java/kr/codesquad/Ladder.java diff --git a/src/main/java/kr/codesquad/Ladder.java b/src/main/java/kr/codesquad/Ladder.java new file mode 100644 index 00000000..8b9e0e6c --- /dev/null +++ b/src/main/java/kr/codesquad/Ladder.java @@ -0,0 +1,19 @@ +// void printVerticalLine(int people, int Ladder) { +// for (int i = 0; i < Ladder; i++) { +// System.out.print("|"); +// printHorizontalLine(people); +// System.out.println(); +// } +// } +// +// +// private void printHorizontalLine(int people) { +// for (int i = 0; i < people; i++) { +// if (randomBoolean()) { +// System.out.print("-"); +// } else { +// System.out.print(" "); +// } +// System.out.print("|"); +// } +// } diff --git a/src/main/java/kr/codesquad/Main.java b/src/main/java/kr/codesquad/Main.java index b424556e..e5b2212d 100644 --- a/src/main/java/kr/codesquad/Main.java +++ b/src/main/java/kr/codesquad/Main.java @@ -11,6 +11,7 @@ public static void main(String[] args) throws IOException { Main main = new Main(); int n = main.inputPeople(); int m = main.inputLadder(); + //new Ladder().printVerticalLine(n, m); private int inputPeople() throws IOException { printInputPeople(); return input(); From 1209b088e58760afd3d6ea80244603497df5404e Mon Sep 17 00:00:00 2001 From: HyowonSin Date: Thu, 9 Mar 2023 18:27:19 +0900 Subject: [PATCH 4/8] =?UTF-8?q?feat:=20=EB=9E=9C=EB=8D=A4=20=EB=B6=88?= =?UTF-8?q?=EB=A6=AC=EC=96=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 사다리를 생성 할까 말까 하는 것 --- src/main/java/kr/codesquad/Ladder.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/main/java/kr/codesquad/Ladder.java b/src/main/java/kr/codesquad/Ladder.java index 8b9e0e6c..188e1697 100644 --- a/src/main/java/kr/codesquad/Ladder.java +++ b/src/main/java/kr/codesquad/Ladder.java @@ -17,3 +17,7 @@ // System.out.print("|"); // } // } + private boolean randomBoolean() { + Random random = new Random(); + return random.nextBoolean(); + } From 60fd14a567ce1461fceecd5b4af7b9e942b62989 Mon Sep 17 00:00:00 2001 From: HyowonSin Date: Thu, 9 Mar 2023 18:28:16 +0900 Subject: [PATCH 5/8] =?UTF-8?q?feat:=201=EB=8B=A8=EA=B3=84=20=EB=AC=B4?= =?UTF-8?q?=EC=A7=80=EC=84=B1=20=EC=82=AC=EB=8B=A4=EB=A6=AC=20=EA=B2=8C?= =?UTF-8?q?=EC=9E=84=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 요구사항만 보고 무지성으로 구현을 해 본 상태 --- src/main/java/kr/codesquad/Ladder.java | 56 ++++++++++++++++++++++++++ src/main/java/kr/codesquad/Main.java | 8 +++- 2 files changed, 62 insertions(+), 2 deletions(-) diff --git a/src/main/java/kr/codesquad/Ladder.java b/src/main/java/kr/codesquad/Ladder.java index 188e1697..47da9e5c 100644 --- a/src/main/java/kr/codesquad/Ladder.java +++ b/src/main/java/kr/codesquad/Ladder.java @@ -1,3 +1,56 @@ +package kr.codesquad; + +import java.util.Random; + +public class Ladder { + String[][] ladder; + + Ladder(int people, int ladder) { + this.ladder = new String[ladder][]; + for (int i = 0; i < ladder; i++) { + this.ladder[i] = makeLayer(people); + } + } + + + String[] makeLayer(int people) { + String[] Layer = new String[(people*2) - 1]; + for (int i = 0; i < (people*2) - 1; i++) { + Layer[i] = getLayer(i); + } + return Layer; + } + + + String getLayer(int i) { + if (i % 2 == 0) { + return "|"; + } else { + return getLadder(); + } + } + + + String getLadder() { + if (randomBoolean()) { + return "-"; + } else { + return " "; + } + } + + + void printLadder() { + for (String[] strings : ladder) { + for (String string : strings) { + System.out.print(string); + } + System.out.println(); + } + } + + + // void printVerticalLine(int people, int Ladder) { // for (int i = 0; i < Ladder; i++) { // System.out.print("|"); @@ -17,7 +70,10 @@ // System.out.print("|"); // } // } + + private boolean randomBoolean() { Random random = new Random(); return random.nextBoolean(); } +} diff --git a/src/main/java/kr/codesquad/Main.java b/src/main/java/kr/codesquad/Main.java index e5b2212d..81500ad1 100644 --- a/src/main/java/kr/codesquad/Main.java +++ b/src/main/java/kr/codesquad/Main.java @@ -5,13 +5,17 @@ import java.io.InputStreamReader; public class Main { - public static void main(String[] args) { - System.out.println("Hello world!"); public static void main(String[] args) throws IOException { Main main = new Main(); int n = main.inputPeople(); int m = main.inputLadder(); + + Ladder ladder = new Ladder(n, m); + ladder.printLadder(); + //new Ladder().printVerticalLine(n, m); + } + private int inputPeople() throws IOException { printInputPeople(); return input(); From e9356da41fbfacdb871bc3064f80c445679e5109 Mon Sep 17 00:00:00 2001 From: HyowonSin Date: Fri, 10 Mar 2023 15:19:07 +0900 Subject: [PATCH 6/8] =?UTF-8?q?refactor:=20depth=20=EC=A4=84=EC=9D=B4?= =?UTF-8?q?=EA=B8=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit depth 줄이기 --- src/main/java/kr/codesquad/Ladder.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/main/java/kr/codesquad/Ladder.java b/src/main/java/kr/codesquad/Ladder.java index 47da9e5c..1cd654ef 100644 --- a/src/main/java/kr/codesquad/Ladder.java +++ b/src/main/java/kr/codesquad/Ladder.java @@ -42,13 +42,16 @@ String getLadder() { void printLadder() { for (String[] strings : ladder) { - for (String string : strings) { - System.out.print(string); - } + printLayer(strings); System.out.println(); } } + private void printLayer(String[] strings) { + for (String string : strings) { + System.out.print(string); + } + } // void printVerticalLine(int people, int Ladder) { From 5801b1b4713bcb1337c00af640a515d7ab9fd236 Mon Sep 17 00:00:00 2001 From: HyowonSin Date: Fri, 10 Mar 2023 15:19:24 +0900 Subject: [PATCH 7/8] =?UTF-8?q?refactor:=20else=20=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit else 제거 --- src/main/java/kr/codesquad/Ladder.java | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/main/java/kr/codesquad/Ladder.java b/src/main/java/kr/codesquad/Ladder.java index 1cd654ef..e37ac716 100644 --- a/src/main/java/kr/codesquad/Ladder.java +++ b/src/main/java/kr/codesquad/Ladder.java @@ -25,18 +25,16 @@ String[] makeLayer(int people) { String getLayer(int i) { if (i % 2 == 0) { return "|"; - } else { - return getLadder(); } + return getLadder(); } String getLadder() { if (randomBoolean()) { return "-"; - } else { - return " "; } + return " "; } From 57e2d037ea5bf33182d7431e25c4e323c6a0f281 Mon Sep 17 00:00:00 2001 From: HyowonSin Date: Fri, 10 Mar 2023 15:20:12 +0900 Subject: [PATCH 8/8] =?UTF-8?q?refactor:=20naming=20convention=20=EB=A7=9E?= =?UTF-8?q?=EC=B6=94=EA=B8=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 네이밍 조금 더 직관적으로 수정 --- src/main/java/kr/codesquad/Ladder.java | 6 +++--- src/main/java/kr/codesquad/Main.java | 12 ++++++------ 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/main/java/kr/codesquad/Ladder.java b/src/main/java/kr/codesquad/Ladder.java index e37ac716..6496cee8 100644 --- a/src/main/java/kr/codesquad/Ladder.java +++ b/src/main/java/kr/codesquad/Ladder.java @@ -5,9 +5,9 @@ public class Ladder { String[][] ladder; - Ladder(int people, int ladder) { - this.ladder = new String[ladder][]; - for (int i = 0; i < ladder; i++) { + Ladder(int people, int height) { + this.ladder = new String[height][]; + for (int i = 0; i < height; i++) { this.ladder[i] = makeLayer(people); } } diff --git a/src/main/java/kr/codesquad/Main.java b/src/main/java/kr/codesquad/Main.java index 81500ad1..8db215c9 100644 --- a/src/main/java/kr/codesquad/Main.java +++ b/src/main/java/kr/codesquad/Main.java @@ -7,10 +7,10 @@ public class Main { public static void main(String[] args) throws IOException { Main main = new Main(); - int n = main.inputPeople(); - int m = main.inputLadder(); + int people = main.inputPeople(); + int height = main.inputHeight(); - Ladder ladder = new Ladder(n, m); + Ladder ladder = new Ladder(people, height); ladder.printLadder(); //new Ladder().printVerticalLine(n, m); @@ -21,8 +21,8 @@ private int inputPeople() throws IOException { return input(); } - private int inputLadder() throws IOException { - printInputLadder(); + private int inputHeight() throws IOException { + printInputHeight(); return input(); } @@ -35,7 +35,7 @@ private void printInputPeople() { System.out.println("참여할 사람은 몇 명 인가요?"); } - private void printInputLadder() { + private void printInputHeight() { System.out.println("최대 사다리 높이는 몇 개인가요?"); } } \ No newline at end of file