์ปดํจํฐ๊ฐ ๋ชฐ๋ ๊ณ ๋ฅธ ์ซ์(1~99)๋ฅผ ๋ง์ถ๋ ๊ฒ์์ ๋ง๋ค์ด๋ณด์. ์ ๋ ฅ๋ ์ซ์์ ๊ณ ๋ฅธ ์ซ์๋ฅผ ๋น๊ตํด ํฐ์ง ์์์ง๋ ์๋ ค์ฃผ๊ณ , ๊ฒ์์ด ๋๋๋ฉด ๊ฒ์์ ๋ฐ๋ณตํ ๊ฒ์ธ์ง ๋ฌผ์ด๋ณธ๋ค.
1. ์ฐ์ ์ปดํจํฐ๊ฐ ์ซ์๋ฅผ ๊ณจ๋ผ์ผํ๋ค.
1-1. ๋๋ค ์ซ์๋ฅผ ๊ณ ๋ฅด๊ฒ ํ๋ ๋ฐฉ๋ฒ์ ๋ ๊ฐ์ง๊ฐ ์๋ค.
- Math.random() ํจ์: 0~1๊น์ง์ ๋ฌด์์ ์ค์๊ฐ์ด ํ๋ ๋ฆฌํด๋๋ค. ์ ์ํ์ผ๋ก ํ์ฉํ๊ณ ์ถ์ ๋๋ ์ ์๋ฅผ ๊ณฑํด์ฃผ๋ฉด ๋๋ค.
- Random ํด๋์ค: import java.util.Random ์ ํ ํ, new๋ก ๊ฐ์ฒด๋ฅผ ์์ฑํด์ค์ผ ํ๋ค.
int number = (int) (Math.random()*99) + 1;
2. ์ด์ ๋ด๊ฐ ์ซ์๋ฅผ ๋ง์ถฐ์ผํ๋ฏ๋ก number๊ณผ ๋ด ์ซ์๊ฐ ๊ฐ์ ๋๊น์ง ๋ด ์ซ์๋ฅผ ์ ๋ ฅ๋ฐ๋๋ค.
2-1. ๊ฐ์'๋๊น์ง' ๋ฐ๋ณต๋์ด์ผํ๋ฏ๋ก while(true)๋ฌธ์ ์ฌ์ฉํ๋ค.
2-2. ๋ด ์ซ์๋ฅผ ์
๋ ฅ๋ฐ์ ๋ณ์์ Scanner ํจ์๋ฅผ ์
๋ ฅํ๋ค.
int guess = scanner.nextInt();
2-3. '๊ฐ์์ง'๋ฅผ ํ๋ณํด์ผํ๋ฏ๋ก if๋ฌธ์ ์ฌ์ฉํด ๋ ํฐ์ง, ์์์ง, ๊ฐ์์ง๋ฅผ ํ๋ณํ๋ค. ๊ฐ์ผ๋ฉด while๋ฌธ ํ์ถํ๋ค.
if (number > guess) {
System.out.println("UP");
i++;
continue;
}
else if (number < guess) {
System.out.println("DOWN");
i++;
continue;
}
else {
System.out.println("์ ๋ต!");
break;
}
3. ์ ๋ต์ธ ๊ฒฝ์ฐ, ๋ค์ ๋ฐ๋ณตํ ์ง ๋ฌผ์ด๋ณธ๋ค.
3-1. ๋ฐ๋ณตํด์ผํ๋ฏ๋ก ์ด์ ์ฝ๋๋ฅผ ์ ์ฒด while(true)์ ์ ์ฉํด y๋ฉด continue, n๋ฉด break๋ก while ๋ฌธ์ ํ์ถํ๋ค.
3-2. Stringํ์
์ a.equals(" ") ๋ฅผ ์ฌ์ฉํ๋ค.
System.out.println("๋ค์ ํ์๊ฒ ์ต๋๊น? (y/n)");
String answer = scanner.next();
if (answer.equals("y")) {
continue;
}
else if (answer.equals("n")) {
System.out.print("์ซ์๋ง์ถ๊ธฐ ๊ฒ์์ ์ข
๋ฃํฉ๋๋ค");
break;
}
์ ์ฒด ์ฝ๋
package Chapter03;
import java.util.Scanner;
public class OpenChallenge3 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while (true) {
int number = (int) (Math.random()*99) + 1;
int i = 1;
System.out.println("์๋ฅผ ๊ฒฐ์ ํ์์ต๋๋ค. ๋ง์ถ์ด ๋ณด์ธ์! \n0~99");
while (true) {
System.out.print(i + "๋ฒ์งธ ์๋>>");
int guess = scanner.nextInt();
if (number > guess) {
System.out.println("UP");
i++;
continue;
}
else if (number < guess) {
System.out.println("DOWN");
i++;
continue;
}
else {
System.out.println("์ ๋ต!");
break;
}
}
System.out.println("๋ค์ ํ์๊ฒ ์ต๋๊น? (y/n)");
String answer = scanner.next();
if (answer.equals("y")) {
continue;
}
else if (answer.equals("n")) {
System.out.print("์ซ์๋ง์ถ๊ธฐ ๊ฒ์์ ์ข
๋ฃํฉ๋๋ค");
break;
}
}//game ๊ดํธ
scanner.close();
}
}
Console
์๋ฅผ ๊ฒฐ์ ํ์์ต๋๋ค. ๋ง์ถ์ด ๋ณด์ธ์!
0~99
1๋ฒ์งธ ์๋>>45
DOWN
2๋ฒ์งธ ์๋>>23
DOWN
3๋ฒ์งธ ์๋>>10
DOWN
4๋ฒ์งธ ์๋>>5
UP
5๋ฒ์งธ ์๋>>7
UP
6๋ฒ์งธ ์๋>>9
DOWN
7๋ฒ์งธ ์๋>>8
์ ๋ต!
๋ค์ ํ์๊ฒ ์ต๋๊น? (y/n)
y
์๋ฅผ ๊ฒฐ์ ํ์์ต๋๋ค. ๋ง์ถ์ด ๋ณด์ธ์!
0~99
1๋ฒ์งธ ์๋>>56
UP
2๋ฒ์งธ ์๋>>87
UP
3๋ฒ์งธ ์๋>>97
DOWN
4๋ฒ์งธ ์๋>>93
DOWN
5๋ฒ์งธ ์๋>>90
DOWN
6๋ฒ์งธ ์๋>>88
UP
7๋ฒ์งธ ์๋>>89
์ ๋ต!
๋ค์ ํ์๊ฒ ์ต๋๊น? (y/n)
n
์ซ์๋ง์ถ๊ธฐ ๊ฒ์์ ์ข
๋ฃํฉ๋๋ค
'๐ฅ๏ธ > Java' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Java] ํ์ ์ ๋ณด๋ฅผ ๋ฐ๋ ๊ธฐ๋ณธ ์ฝ๋ (0) | 2023.03.20 |
---|---|
[Java] ๋ฐฐ์ด: ์์ ์ฝ๋๋ก ๋ฐฐ์ด ์์ฑ, ๋ฐฐ์ด ์์ ๊ฐ์ฒด ์์ฑ, ๋ฐฐ์ด ์ถ๋ ฅํ๋ ๋ฒ ๋ฐฐ์ฐ๊ธฐ (0) | 2023.03.19 |
[Java] ์์ฑ์(Constructor)์ ํน์ง (0) | 2023.03.19 |
[Java] this(): ์ฝ๋๋ก this() ๋ฉ์๋ ์ดํดํ๊ธฐ (0) | 2023.03.19 |
[Java] Chapter02: ๊ฐ์๋ฐ์๋ณด ๊ฒ์ (0) | 2023.03.18 |