Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
18 commits
Select commit Hold shift + click to select a range
d22bde8
feat: ์ž…๋ ฅ ๋ทฐ ํด๋ž˜์Šค ๊ตฌํ˜„
yechan-kim Apr 17, 2024
56f20d2
feat: ์ถœ๋ ฅ ๋ทฐ ํด๋ž˜์Šค ๊ตฌํ˜„
yechan-kim Apr 17, 2024
e1ed0d3
feat: ์ •๋‹ต ์„ค์ • ๊ธฐ๋Šฅ ๊ตฌํ˜„
yechan-kim Apr 17, 2024
b2c0e75
feat: ๋„๋ฉ”์ธ ์ธํ„ฐํŽ˜์ด์Šค ๊ตฌํ˜„
yechan-kim Apr 17, 2024
f9eb4b7
feat: ์ˆซ์ž ๊ฒŒ์ž„ ๋„๋ฉ”์ธ ๊ตฌํ˜„
yechan-kim Apr 17, 2024
3b86651
feat: ์˜์–ด ๊ฒŒ์ž„ ๋„๋ฉ”์ธ ๊ตฌํ˜„
yechan-kim Apr 17, 2024
1165812
feat: ๊ฒŒ์ž„ ์ธํ„ฐํŽ˜์ด์Šค ๊ตฌํ˜„
yechan-kim Apr 17, 2024
2a5f58e
feat: ์ˆซ์ž ๊ฒŒ์ž„ ๊ตฌํ˜„
yechan-kim Apr 17, 2024
a079b0d
feat: ์˜์–ด ๊ฒŒ์ž„ ๊ตฌํ˜„
yechan-kim Apr 17, 2024
99f261b
feat: ๊ฒŒ์ž„ ์‚ฐํƒ ํ˜ธ์ถœ ๊ธฐ๋Šฅ ๊ตฌํ˜„
yechan-kim Apr 17, 2024
ca9a4e4
feat: ์‹คํ–‰ ํ•จ์ˆ˜ ๊ตฌํ˜„
yechan-kim Apr 17, 2024
971ecff
test(Version): ๊ฒŒ์ž„ ๋ฒ„์ „ ์„ ํƒ ํ…Œ์ŠคํŠธ ๊ตฌํ˜„
yechan-kim Apr 18, 2024
60b2632
test(AlphabetUpDown): ์•ŒํŒŒ๋ฒณ ์ž…๋ ฅ ๋ฒ”์œ„ ํ…Œ์ŠคํŠธ ๊ตฌํ˜„
yechan-kim Apr 18, 2024
b14321e
test(NumberUpDown): ์ˆซ์ž ์ž…๋ ฅ ๋ฒ”์œ„ ํ…Œ์ŠคํŠธ ๊ตฌํ˜„
yechan-kim Apr 18, 2024
529d4e6
refactor(AlphabetGame): ์ •๋‹ต ๋ฉ”์‹œ์ง€ ์ถœ๋ ฅ ๊ธฐ๋Šฅ ์ถ”๊ฐ€ ๋ฐ ์ •๋‹ต ํ˜ธ์ถœ ๋กœ์ง ๊ฐœ์„ 
yechan-kim Apr 18, 2024
55e2562
refactor(NumberGame): ์ •๋‹ต ๋ฉ”์‹œ์ง€ ์ถœ๋ ฅ ๊ธฐ๋Šฅ ์ถ”๊ฐ€ ๋ฐ ์ •๋‹ต ํ˜ธ์ถœ ๋กœ์ง ๊ฐœ์„ 
yechan-kim Apr 18, 2024
9fb093b
fix(Answer): ์˜์–ด ๊ฒŒ์ž„์˜ ์ •๋‹ต์ด ํŠน์ˆ˜๋ฌธ์ž๊ฐ€ ๋˜๋Š” ๋ฒ„๊ทธ ์ˆ˜์ •
yechan-kim Apr 18, 2024
df2c358
fix(Answer): ์˜์–ด ๊ฒŒ์ž„์˜ ์ •๋‹ต์ด ํŠน์ˆ˜๋ฌธ์ž๊ฐ€ ๋˜๋Š” ๋ฒ„๊ทธ ์ˆ˜์ •
yechan-kim Apr 18, 2024
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
12 changes: 7 additions & 5 deletions src/main/java/leets/land/UpdownApplication.java
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
package leets.land;

public class UpdownApplication {
import leets.land.controller.GameLoader;

public static void main(String[] args) {
System.out.print("hihi :D");
}
}
public class UpdownApplication {
public static void main(String[] args) {
GameLoader gameLoader = new GameLoader();
gameLoader.load();
}
}
47 changes: 47 additions & 0 deletions src/main/java/leets/land/controller/AlphabetGame.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
package leets.land.controller;

import leets.land.domain.AlphabetUpDown;
import leets.land.domain.UpDown;
import leets.land.view.InputView;
import leets.land.view.OutputView;

public class AlphabetGame implements Game {
final InputView inputView = new InputView();
final OutputView outputView = new OutputView();

@Override
public void run() {
UpDown updown = new AlphabetUpDown();
play(updown);
}

@Override
public void play(UpDown updown) {
char answer = updown.getAnswerAsChar();

while (true) {
char alphabet = inputView.inputAlphabetInRange(updown.getStartAsChar(), updown.getEndAsChar());

try {
updown.validator(alphabet);
} catch (IllegalArgumentException e) {
System.out.println(e.getMessage());
continue;
}

updown.increaseCount();

if (alphabet == answer) {
System.out.println("Correct!");
outputView.printCount(updown.getCount());
break;
} else if (alphabet < answer) {
System.out.println("UP");
updown.setStart(alphabet + 1);
} else {
System.out.println("DOWN");
updown.setEnd(alphabet - 1);
}
}
}
}
8 changes: 8 additions & 0 deletions src/main/java/leets/land/controller/Game.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package leets.land.controller;

import leets.land.domain.UpDown;

public interface Game {
void run();
void play(UpDown upDown);
}
18 changes: 18 additions & 0 deletions src/main/java/leets/land/controller/GameLoader.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package leets.land.controller;

import leets.land.domain.Version;
import leets.land.view.InputView;

public class GameLoader {
final InputView inputView = new InputView();

public void load() {
Version version = inputVersion();
version.run();
}

private Version inputVersion() {
int gameVersion = inputView.inputVersion();
return Version.versionValidator(gameVersion);
}
}
47 changes: 47 additions & 0 deletions src/main/java/leets/land/controller/NumberGame.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
package leets.land.controller;

import leets.land.domain.NumberUpDown;
import leets.land.domain.UpDown;
import leets.land.view.InputView;
import leets.land.view.OutputView;

public class NumberGame implements Game {
final InputView inputView = new InputView();
final OutputView outputView = new OutputView();

@Override
public void run() {
UpDown updown = new NumberUpDown();
play(updown);
}

@Override
public void play(UpDown updown) {
int answer = updown.getAnswerAsInt();

while (true) {
int number = inputView.inputNumberInRange(updown.getStartAsInt(), updown.getEndAsInt());

try {
updown.validator(number);
} catch (IllegalArgumentException e) {
System.out.println(e.getMessage());
continue;
}

updown.increaseCount();

if (number == answer) {
System.out.println("Correct!");
outputView.printCount(updown.getCount());
break;
} else if (number < answer) {
System.out.println("UP");
updown.setStart(number + 1);
} else {
System.out.println("DOWN");
updown.setEnd(number - 1);
}
}
}
}
77 changes: 77 additions & 0 deletions src/main/java/leets/land/domain/AlphabetUpDown.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
package leets.land.domain;

public class AlphabetUpDown implements UpDown {
private final char answerAlphabet = Answer.setAlphabet();
private char startAlphabet = 'A', endAlphabet = 'z';
private int count = 0;

@Override
public int getAnswerAsInt() {
return 0;
}

@Override
public char getAnswerAsChar() {
return answerAlphabet;
}

@Override
public int getStartAsInt() {
return 0;
}

@Override
public char getStartAsChar() {
return startAlphabet;
}

@Override
public int getEndAsInt() {
return 0;
}

@Override
public char getEndAsChar() {
return endAlphabet;
}

@Override
public int getCount() {
return count;
}

@Override
public void setStart(int start) {
if (start - 1 == 'Z') {
startAlphabet = 'a';
} else {
startAlphabet = (char) start;
}
}

@Override
public void setEnd(int end) {
if (end + 1 == 'a') {
endAlphabet = 'Z';
} else {
endAlphabet = (char) end;
}
}

@Override
public void increaseCount() {
count++;
}

@Override
public void validator(char alphabet) {
if (alphabet < startAlphabet || alphabet > endAlphabet) {
throw new IllegalArgumentException("[ERROR] ๋ฒ”์œ„ ๋‚ด์˜ ์•ŒํŒŒ๋ฒณ์„ ์ž…๋ ฅํ•˜์„ธ์š”.");
}
}

@Override
public void validator(int number) {

}
}
17 changes: 17 additions & 0 deletions src/main/java/leets/land/domain/Answer.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package leets.land.domain;

public class Answer {
public static int setNumber() {
return (int) (Math.random() * 100) + 1;
}

public static char setAlphabet() {
char answer = (char) ((int) (Math.random() * ('z'-'A')) + 'A');

if (answer > 'Z' && answer < 'a') {
return setAlphabet();
}

return answer;
}
}
69 changes: 69 additions & 0 deletions src/main/java/leets/land/domain/NumberUpDown.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
package leets.land.domain;

public class NumberUpDown implements UpDown {
private final int answerNumber = Answer.setNumber();
private int startNumber = 1, endNumber = 100;
private int count = 0;

@Override
public int getAnswerAsInt() {
return answerNumber;
}

@Override
public char getAnswerAsChar() {
return 0;
}

@Override
public int getStartAsInt() {
return startNumber;
}

@Override
public char getStartAsChar() {
return 0;
}

@Override
public int getEndAsInt() {
return endNumber;
}

@Override
public char getEndAsChar() {
return 0;
}

@Override
public int getCount() {
return count;
}

@Override
public void setStart(int start) {
startNumber = start;
}

@Override
public void setEnd(int end) {
endNumber = end;
}

@Override
public void increaseCount() {
count++;
}

@Override
public void validator(char alphabet) {
return;
}

@Override
public void validator(int number) {
if (number < startNumber || number > endNumber) {
throw new IllegalArgumentException("[ERROR] ๋ฒ”์œ„ ๋‚ด์˜ ์ˆซ์ž๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”.");
}
}
}
27 changes: 27 additions & 0 deletions src/main/java/leets/land/domain/UpDown.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package leets.land.domain;

public interface UpDown {
int getAnswerAsInt();

char getAnswerAsChar();

int getStartAsInt();

char getStartAsChar();

int getEndAsInt();

char getEndAsChar();

int getCount();

void setStart(int start);

void setEnd(int end);

void increaseCount();

void validator(char alphabet);

void validator(int number);
}
32 changes: 32 additions & 0 deletions src/main/java/leets/land/domain/Version.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package leets.land.domain;

import leets.land.controller.AlphabetGame;
import leets.land.controller.Game;
import leets.land.controller.NumberGame;

public enum Version {

NUMBER(1, new NumberGame()),
ALPHABET(2, new AlphabetGame());

private final int version;
private final Game game;

Version(int version, Game game) {
this.version = version;
this.game = game;
}

public static Version versionValidator(int version) {
for (Version gameVersion : Version.values()) {
if (gameVersion.version == version) {
return gameVersion;
}
}
throw new IllegalArgumentException("[ERROR] ์กด์žฌํ•˜์ง€ ์•Š๋Š” ๋ฒ„์ „์ž…๋‹ˆ๋‹ค.");
}

public void run() {
game.run();
}
}
Loading