From 9dd16afe12a032fbf22888b26a7d47952ece9407 Mon Sep 17 00:00:00 2001 From: OHHAKO Date: Sat, 21 Dec 2019 22:16:09 +0900 Subject: [PATCH 1/2] mission compelete --- src/main/java/Classifier.java | 89 +++++++++++++++++++++++++++++++++ src/main/java/Main.java | 11 ++++ src/main/java/RandomNumber.java | 16 ++++++ 3 files changed, 116 insertions(+) create mode 100644 src/main/java/Classifier.java create mode 100644 src/main/java/Main.java create mode 100644 src/main/java/RandomNumber.java diff --git a/src/main/java/Classifier.java b/src/main/java/Classifier.java new file mode 100644 index 0000000..cc4dd21 --- /dev/null +++ b/src/main/java/Classifier.java @@ -0,0 +1,89 @@ +import java.util.Scanner; + +public class Classifier { + + private int number, userNumber; + private Scanner sc; + Classifier(){ + setNumber(); /* ·£´ý¼ýÀÚ ÁöÁ¤ */ + sc = new Scanner(System.in); + } + + void setNumber() { + this.number = ((int)(Math.random()*9)+1)*100 + +((int)(Math.random()*9)+1)*10 + +((int)(Math.random()*9)+1); + } + + void setUserNumber(int userNumber) { + this.userNumber = userNumber; + } + + boolean judge() { + int i=0,j=0,n,un; //i´Â ½ºÆ®¶óÀÌÅ©, j´Â º¼ + String stringNumber = number+""; + + //ù¹øÂ° ÀÚ¸® + n = number/100; + un = userNumber/100; + if(stringNumber.contains(un+"")) + j++; + if(n==un) { + j--; + i++; + } + //µÎ¹øÂ°ÀÚ¸® + n = (number%100)/10; + un = (userNumber%100)/10; + if(stringNumber.contains(un+"")) + j++; + if(n==un) { + j--; + i++; + } + //¼Â°ÀÚ¸® + n = number%10; + un = userNumber%10; + if(stringNumber.contains(un+"")) + j++; + if(n==un) { + j--; + i++; + } + + if(i>0) + System.out.print(i+"½ºÆ®¶óÀÌÅ© "); + if(j>0) + System.out.print(j+"º¼"); + if(number==userNumber) { + System.out.println("\n3°³ÀÇ ¼ýÀÚ¸¦ ¸ðµÎ ¸ÂÈ÷¼Ì½À´Ï´Ù! °ÔÀÓÁ¾·á"); + return true; + } + return false; + } + void newGame() { + System.out.println("°ÔÀÓÀ» »õ·Î ½ÃÀÛÇÏ·Á¸é 1, " + + "Á¾·áÇÏ·Á¸é 2¸¦ ÀÔ·ÂÇϼ¼¿ä"); + } + void game() { + while(true) { + System.out.print("\n¼ýÀÚ¸¦ ÀÔ·ÂÇØ ÁÖ¼¼¿ä :"); + setUserNumber(sc.nextInt()); /* »ç¿ëÀÚ ÀԷ¹ޱâ */ + if(judge()) { + break; + } + } + } + + void board() { + while(true) { + game(); + System.out.println("°ÔÀÓÀ» »õ·Î ½ÃÀÛÇÏ·Á¸é 1," + + " Á¾·áÇÏ·Á¸é 2¸¦ ÀÔ·ÂÇϼ¼¿ä ."); + if(sc.nextInt()==2) { + break; + } + } + } + +} diff --git a/src/main/java/Main.java b/src/main/java/Main.java new file mode 100644 index 0000000..e412886 --- /dev/null +++ b/src/main/java/Main.java @@ -0,0 +1,11 @@ + +public class Main { + + public static void main(String[] args) { + + //·£´ý¼ýÀÚ, »ç¿ëÀÚ¼ýÀÚ ÀԷ¹ޱâ, ÆÇ´ÜÇϱâ + Classifier classifier = new Classifier(); /* Ãʱ⠷£´ý¼ö */ + classifier.board(); + } + +} diff --git a/src/main/java/RandomNumber.java b/src/main/java/RandomNumber.java new file mode 100644 index 0000000..13cea84 --- /dev/null +++ b/src/main/java/RandomNumber.java @@ -0,0 +1,16 @@ + +public class RandomNumber { + private int number; + + RandomNumber(){ + this.number = ((int)(Math.random()*9)+1)*100 + +((int)(Math.random()*9)+1)*10 + +((int)(Math.random()*9)+1); +// System.out.println("»ÌÀº ¼ýÀÚ ="+number); + } + + int getNumber() { + return this.number; + } + +} From b42af57a713a7e0e707db5988028e09e8de382ad Mon Sep 17 00:00:00 2001 From: OHHAKO Date: Sun, 29 Dec 2019 16:53:43 +0900 Subject: [PATCH 2/2] [refactor]feedback is applyed --- src/main/java/Classifier.java | 101 +++++++++++++++++----------------- 1 file changed, 52 insertions(+), 49 deletions(-) diff --git a/src/main/java/Classifier.java b/src/main/java/Classifier.java index cc4dd21..837579c 100644 --- a/src/main/java/Classifier.java +++ b/src/main/java/Classifier.java @@ -10,9 +10,18 @@ public class Classifier { } void setNumber() { - this.number = ((int)(Math.random()*9)+1)*100 - +((int)(Math.random()*9)+1)*10 - +((int)(Math.random()*9)+1); + int first,middle=0,last=0; + first = ((int)(Math.random()*9)+1); + middle = ((int)(Math.random()*9)+1); + last = ((int)(Math.random()*9)+1); + while(middle==first) { + middle = ((int)(Math.random()*9)+1); + } + while(last==first || last==middle) { + last = ((int)(Math.random()*9)+1); + } + this.number = (first*100)+(middle*10)+last; + System.out.println(":"+this.number); } void setUserNumber(int userNumber) { @@ -20,70 +29,64 @@ void setUserNumber(int userNumber) { } boolean judge() { - int i=0,j=0,n,un; //i´Â ½ºÆ®¶óÀÌÅ©, j´Â º¼ - String stringNumber = number+""; + int strike=0,ball=0,computerNumber,userNumber; //i´Â ½ºÆ®¶óÀÌÅ©, j´Â º¼ + String stringNumber = this.number+""; //ù¹øÂ° ÀÚ¸® - n = number/100; - un = userNumber/100; - if(stringNumber.contains(un+"")) - j++; - if(n==un) { - j--; - i++; + computerNumber = this.number/100; + userNumber = this.userNumber/100; + if(stringNumber.contains(userNumber+"")) { + ball++; + } + if(computerNumber==userNumber) { + ball--; + strike++; } //µÎ¹øÂ°ÀÚ¸® - n = (number%100)/10; - un = (userNumber%100)/10; - if(stringNumber.contains(un+"")) - j++; - if(n==un) { - j--; - i++; + computerNumber = (this.number%100)/10; + userNumber = (this.userNumber%100)/10; + if(stringNumber.contains(userNumber+"")) { + ball++; + } + if(computerNumber==userNumber) { + ball--; + strike++; } //¼Â°ÀÚ¸® - n = number%10; - un = userNumber%10; - if(stringNumber.contains(un+"")) - j++; - if(n==un) { - j--; - i++; + computerNumber = number%10; + userNumber = this.userNumber%10; + if(stringNumber.contains(userNumber+"")) { + ball++; + } + if(computerNumber==userNumber) { + ball--; + strike++; } - if(i>0) - System.out.print(i+"½ºÆ®¶óÀÌÅ© "); - if(j>0) - System.out.print(j+"º¼"); - if(number==userNumber) { + if(strike>0) { + System.out.print(strike+"½ºÆ®¶óÀÌÅ© "); + } + if(ball>0) { + System.out.print(ball+"º¼"); + } + if(number==this.userNumber) { System.out.println("\n3°³ÀÇ ¼ýÀÚ¸¦ ¸ðµÎ ¸ÂÈ÷¼Ì½À´Ï´Ù! °ÔÀÓÁ¾·á"); return true; } return false; } - void newGame() { - System.out.println("°ÔÀÓÀ» »õ·Î ½ÃÀÛÇÏ·Á¸é 1, " - + "Á¾·áÇÏ·Á¸é 2¸¦ ÀÔ·ÂÇϼ¼¿ä"); - } + void game() { - while(true) { + do { System.out.print("\n¼ýÀÚ¸¦ ÀÔ·ÂÇØ ÁÖ¼¼¿ä :"); setUserNumber(sc.nextInt()); /* »ç¿ëÀÚ ÀԷ¹ޱâ */ - if(judge()) { - break; - } - } + }while(!judge()); } void board() { - while(true) { + do { game(); - System.out.println("°ÔÀÓÀ» »õ·Î ½ÃÀÛÇÏ·Á¸é 1," - + " Á¾·áÇÏ·Á¸é 2¸¦ ÀÔ·ÂÇϼ¼¿ä ."); - if(sc.nextInt()==2) { - break; - } - } - } - + System.out.println("°ÔÀÓÀ» »õ·Î ½ÃÀÛÇÏ·Á¸é 1, Á¾·áÇÏ·Á¸é 2¸¦ ÀÔ·ÂÇϼ¼¿ä ."); + }while(sc.nextInt()==1); + } }