diff --git "a/\354\235\264\355\230\204\355\235\254/.idea/.gitignore" "b/\354\235\264\355\230\204\355\235\254/.idea/.gitignore"
deleted file mode 100644
index 13566b8..0000000
--- "a/\354\235\264\355\230\204\355\235\254/.idea/.gitignore"
+++ /dev/null
@@ -1,8 +0,0 @@
-# Default ignored files
-/shelf/
-/workspace.xml
-# Editor-based HTTP Client requests
-/httpRequests/
-# Datasource local storage ignored files
-/dataSources/
-/dataSources.local.xml
diff --git "a/\354\235\264\355\230\204\355\235\254/.idea/misc.xml" "b/\354\235\264\355\230\204\355\235\254/.idea/misc.xml"
deleted file mode 100644
index 69ace3f..0000000
--- "a/\354\235\264\355\230\204\355\235\254/.idea/misc.xml"
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git "a/\354\235\264\355\230\204\355\235\254/.idea/modules.xml" "b/\354\235\264\355\230\204\355\235\254/.idea/modules.xml"
deleted file mode 100644
index 8a2c0de..0000000
--- "a/\354\235\264\355\230\204\355\235\254/.idea/modules.xml"
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git "a/\354\235\264\355\230\204\355\235\254/.idea/vcs.xml" "b/\354\235\264\355\230\204\355\235\254/.idea/vcs.xml"
deleted file mode 100644
index 6c0b863..0000000
--- "a/\354\235\264\355\230\204\355\235\254/.idea/vcs.xml"
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git "a/\354\235\264\355\230\204\355\235\254/.idea/\354\235\264\355\230\204\355\235\254.iml" "b/\354\235\264\355\230\204\355\235\254/.idea/\354\235\264\355\230\204\355\235\254.iml"
deleted file mode 100644
index b107a2d..0000000
--- "a/\354\235\264\355\230\204\355\235\254/.idea/\354\235\264\355\230\204\355\235\254.iml"
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git "a/\354\235\264\355\230\204\355\235\254/LadderPractice/.idea/workspace.xml" "b/\354\235\264\355\230\204\355\235\254/LadderPractice/.idea/workspace.xml"
deleted file mode 100644
index 355a57d..0000000
--- "a/\354\235\264\355\230\204\355\235\254/LadderPractice/.idea/workspace.xml"
+++ /dev/null
@@ -1,44 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 1726808055522
-
-
- 1726808055522
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git "a/\354\235\264\355\230\204\355\235\254/untitled/src/main/java/org/example/Main.java" "b/\354\235\264\355\230\204\355\235\254/untitled/src/main/java/org/example/Main.java"
index 407f157..b790647 100644
--- "a/\354\235\264\355\230\204\355\235\254/untitled/src/main/java/org/example/Main.java"
+++ "b/\354\235\264\355\230\204\355\235\254/untitled/src/main/java/org/example/Main.java"
@@ -1,7 +1,22 @@
package org.example;
+import org.example.ver2.*;
+
public class Main {
public static void main(String[] args) {
- System.out.println("Hello world!");
+ User user = new User(GameFactory.createBasicLadderGame());
+
+ user.makeLadder(3, 3);
+ user.drawHorizontalLine(1, 1);
+ user.print();
+ System.out.println("startColumn : 1");
+ System.out.println(user.runGame(1));
+ System.out.println();
+
+ user.setGame(GameFactory.createRandomLadderGame());
+ user.makeLadder(5, 5);
+ user.print();
+ System.out.println("startColumn : 1");
+ System.out.println(user.runGame(1));
}
}
\ No newline at end of file
diff --git "a/\354\235\264\355\230\204\355\235\254/untitled/src/main/java/org/example/ladder/LadderDrawer.java" "b/\354\235\264\355\230\204\355\235\254/untitled/src/main/java/org/example/ladder/LadderDrawer.java"
index 7284e36..f600f99 100644
--- "a/\354\235\264\355\230\204\355\235\254/untitled/src/main/java/org/example/ladder/LadderDrawer.java"
+++ "b/\354\235\264\355\230\204\355\235\254/untitled/src/main/java/org/example/ladder/LadderDrawer.java"
@@ -1,6 +1,5 @@
package org.example.ladder;
-import org.example.Drawer;
import org.example.row.Row;
public class LadderDrawer {
diff --git "a/\354\235\264\355\230\204\355\235\254/untitled/src/main/java/org/example/ver2/Game.java" "b/\354\235\264\355\230\204\355\235\254/untitled/src/main/java/org/example/ver2/Game.java"
new file mode 100644
index 0000000..0e0a211
--- /dev/null
+++ "b/\354\235\264\355\230\204\355\235\254/untitled/src/main/java/org/example/ver2/Game.java"
@@ -0,0 +1,21 @@
+package org.example.ver2;
+
+public class Game {
+ private Ladder ladder;
+ private LadderCreator ladderCreator;
+ public Game(LadderCreator ladderCreator) {
+ this.ladderCreator = ladderCreator;
+ }
+ public void makeLadder(int width, int height) {
+ ladder = ladderCreator.makeLadder(width, height);
+ }
+ public boolean drawHorizontalLine(int row, int column) {
+ return ladder.drawHorizontalLine(row, column);
+ }
+ public int runGame(int startColumn) {
+ return ladder.calcResult(startColumn);
+ }
+ public void printLadder(){
+ ladder.print();
+ }
+}
diff --git "a/\354\235\264\355\230\204\355\235\254/untitled/src/main/java/org/example/ver2/GameFactory.java" "b/\354\235\264\355\230\204\355\235\254/untitled/src/main/java/org/example/ver2/GameFactory.java"
new file mode 100644
index 0000000..3be0d30
--- /dev/null
+++ "b/\354\235\264\355\230\204\355\235\254/untitled/src/main/java/org/example/ver2/GameFactory.java"
@@ -0,0 +1,10 @@
+package org.example.ver2;
+
+public class GameFactory {
+ public static Game createRandomLadderGame() {
+ return new Game(new LadderRandomCreator());
+ }
+ public static Game createBasicLadderGame() {
+ return new Game(new LadderBasicCreator());
+ }
+}
diff --git "a/\354\235\264\355\230\204\355\235\254/untitled/src/main/java/org/example/ver2/Ladder.java" "b/\354\235\264\355\230\204\355\235\254/untitled/src/main/java/org/example/ver2/Ladder.java"
new file mode 100644
index 0000000..c5f9974
--- /dev/null
+++ "b/\354\235\264\355\230\204\355\235\254/untitled/src/main/java/org/example/ver2/Ladder.java"
@@ -0,0 +1,25 @@
+package org.example.ver2;
+
+import java.util.Random;
+
+public class Ladder {
+ private Row[] rows;
+ public Ladder(Row[] rows) {
+ this.rows = rows;
+ }
+ public boolean drawHorizontalLine(int row, int column) {
+ return rows[row-1].drawLine(column);
+ }
+ public int calcResult(int startColumn) {
+ int result = startColumn;
+ for (int i = 0; i < rows.length; i++) {
+ result = rows[i].calcResult(result);
+ }
+ return result;
+ }
+ public void print() {
+ for (int i = 0; i < rows.length; i++) {
+ rows[i].print();
+ }
+ }
+}
diff --git "a/\354\235\264\355\230\204\355\235\254/untitled/src/main/java/org/example/ver2/LadderBasicCreator.java" "b/\354\235\264\355\230\204\355\235\254/untitled/src/main/java/org/example/ver2/LadderBasicCreator.java"
new file mode 100644
index 0000000..d6d5fd7
--- /dev/null
+++ "b/\354\235\264\355\230\204\355\235\254/untitled/src/main/java/org/example/ver2/LadderBasicCreator.java"
@@ -0,0 +1,12 @@
+package org.example.ver2;
+
+public class LadderBasicCreator implements LadderCreator{
+ public Ladder makeLadder(int width, int height) {
+ Row[] rows = new Row[height];
+ for (int i = 0; i < height; i++) {
+ rows[i] = new Row(width);
+ }
+
+ return new Ladder(rows);
+ }
+}
diff --git "a/\354\235\264\355\230\204\355\235\254/untitled/src/main/java/org/example/ver2/LadderCreator.java" "b/\354\235\264\355\230\204\355\235\254/untitled/src/main/java/org/example/ver2/LadderCreator.java"
new file mode 100644
index 0000000..7345d56
--- /dev/null
+++ "b/\354\235\264\355\230\204\355\235\254/untitled/src/main/java/org/example/ver2/LadderCreator.java"
@@ -0,0 +1,8 @@
+package org.example.ver2;
+
+import java.util.Random;
+
+public interface LadderCreator {
+
+ Ladder makeLadder(int width, int height);
+}
diff --git "a/\354\235\264\355\230\204\355\235\254/untitled/src/main/java/org/example/ver2/LadderRandomCreator.java" "b/\354\235\264\355\230\204\355\235\254/untitled/src/main/java/org/example/ver2/LadderRandomCreator.java"
new file mode 100644
index 0000000..71ff35a
--- /dev/null
+++ "b/\354\235\264\355\230\204\355\235\254/untitled/src/main/java/org/example/ver2/LadderRandomCreator.java"
@@ -0,0 +1,27 @@
+package org.example.ver2;
+
+import java.util.Random;
+
+public class LadderRandomCreator implements LadderCreator{
+ public Ladder makeLadder(int width, int height) {
+ Row[] rows = new Row[height];
+ for (int i = 0; i < height; i++) {
+ rows[i] = new Row(width);
+ }
+ Random random = new Random();
+ System.out.println(width*height*0.3);
+ for(int i=0;i= 0 && lines[column-2].checkIsLineDrawed())
+ return false;
+ if(column <= lines.length -1 && lines[column].checkIsLineDrawed())
+ return false;
+ return lines[column-1].drawLine();
+ }
+ public int calcResult(int startColumn) {
+ if(startColumn - 2 >= 0 && lines[startColumn-2].checkIsLineDrawed())
+ return startColumn - 1;
+ if(lines[startColumn - 1].checkIsLineDrawed())
+ return startColumn + 1;
+ return startColumn;
+ }
+ public void print() {
+ for (int i = 0; i < 2 * lines.length - 1; i++) {
+ if(i%2==0)
+ System.out.print("|");
+ else
+ lines[(i-1)/2].print();
+ }
+ System.out.println();
+ }
+}
diff --git "a/\354\235\264\355\230\204\355\235\254/untitled/src/main/java/org/example/ver2/User.java" "b/\354\235\264\355\230\204\355\235\254/untitled/src/main/java/org/example/ver2/User.java"
new file mode 100644
index 0000000..dfcc6cf
--- /dev/null
+++ "b/\354\235\264\355\230\204\355\235\254/untitled/src/main/java/org/example/ver2/User.java"
@@ -0,0 +1,23 @@
+package org.example.ver2;
+
+public class User {
+ private Game game;
+ public User(Game game) {
+ this.game = game;
+ }
+ public void setGame(Game game) {
+ this.game = game;
+ }
+ public void makeLadder(int width, int height) {
+ game.makeLadder(width, height);
+ }
+ public boolean drawHorizontalLine(int row, int column) {
+ return game.drawHorizontalLine(row, column);
+ }
+ public int runGame(int startColumn) {
+ return game.runGame(startColumn);
+ }
+ public void print() {
+ game.printLadder();
+ }
+}