728x90
369게임
1. 난이도 ★
package class07;
import java.util.Random;
import java.util.Scanner;
public class Test01 {
/* ★
* 1. 369
* 1~1000 중에서 랜덤으로 정수 1개 생성
* 9 짝 33 짝짝 939 짝짝짝
* [19] : 짝
* 정답입니다!
* [19] : 19
* 오답입니다.....
* [22] : 22 정답입니다!
*/
public static boolean check(int num, String user) {
final int NUM = num;
// final : 상수화
int cnt = 0; // 박수 횟수 카운트 할 변수
// 1. 진짜 정답을 만들기 String ans
int n = num / 1000; // 1000인 경우, 1을 의미함
if (n == 3 || n == 6 || n == 9) {
cnt++;
}
num = num % 1000; // 1312인 경우, 13을 의미하게 되므로 전처리가 필수!
n = num / 100; // 1312 -> 312, 3을 의미함
if (n == 3 || n == 6 || n == 9) {
cnt++;
}
num = num % 100;
n = num / 10;
if (n == 3 || n == 6 || n == 9) {
cnt++;
}
num = num % 10;
n = num / 1;
if (n == 3 || n == 6 || n == 9) {
cnt++;
}
////////////////////////////////////////
String ans = "";
for (int i = 0; i < cnt; i++) {
ans += "짝";
}
if(cnt == 0) {
// 형변환(casting)
ans = Integer.toString(NUM);
}
System.out.println("ans : " + ans);
// 2. ans와 user를 비교
System.out.println("ans : " + ans);
System.out.println("user : " + user);
if (ans.equals(user)) {
return true;
}
return false;
// 연산자는 기본 자료형(원시타입)에게만 적용되는 문법
// ex) int, double, char, float
// 클래스(객체)들은 연산자로 비교 불가능
}
public static void main(String[] args) {
Random rand = new Random();
Scanner sc = new Scanner(System.in);
// 1 ~ 1000 중에서 랜덤으로 정수 1개 생성
// int ranNum
// [randNum] : 출력
// 사용자가 정답을 입력 : 짝, 19, 22
// String userAns = sc.next();
// if(정답)
// sysout("정답!");
// else
// sysout("오답...");
int randNum = rand.nextInt(1000) + 1;
System.out.print("[" + randNum + "] : ");
String userAns = sc.next();
if (check(randNum, userAns)) {
System.out.println("정답입니다.");
} else {
System.out.println("오답입니다.");
}
}
}
2. 난이도 ★★
package class07;
import java.util.Random;
import java.util.Scanner;
public class Test02 {
/*
★★
1의 게임을 3번 할건데,
3번 다 정답이면 이름을 입력받아서
ㅁㅁㅁ님 축하합니다!~~ 상품드리겠습니다!~~~
[19] : 짝
정답입니다!
[19] : 19
오답입니다.....
- 끝 -
[19] : 짝
정답입니다!
[19] : 짝
정답입니다!
[19] : 짝
정답입니다!
이름입력) 박준현
박준현님 축하합니다!~~~ 상품드리겠습니다!~~~
*/
public static boolean check(int num, String user) {
final int NUM = num;
// final : 상수화
int cnt = 0; // 박수 횟수 카운트 할 변수
// 1. 진짜 정답을 만들기 String ans
int n = num / 1000; // 1000인 경우, 1을 의미함
if (n == 3 || n == 6 || n == 9) {
cnt++;
}
num = num % 1000; // 1312인 경우, 13을 의미하게 되므로 전처리가 필수!
n = num / 100; // 1312 -> 312, 3을 의미함
if (n == 3 || n == 6 || n == 9) {
cnt++;
}
num = num % 100;
n = num / 10;
if (n == 3 || n == 6 || n == 9) {
cnt++;
}
num = num % 10;
n = num / 1;
if (n == 3 || n == 6 || n == 9) {
cnt++;
}
////////////////////////////////////////
String ans = "";
for (int i = 0; i < cnt; i++) {
ans += "짝";
}
if(cnt == 0) {
// 형변환(casting)
ans = Integer.toString(NUM);
}
System.out.println("ans : " + ans);
// 2. ans와 user를 비교
System.out.println("ans : " + ans);
System.out.println("user : " + user);
if (ans.equals(user)) {
return true;
}
return false;
// 연산자는 기본 자료형(원시타입)에게만 적용되는 문법
// ex) int, double, char, float
// 클래스(객체)들은 연산자로 비교 불가능
}
public static void main(String[] args) {
Random rand = new Random();
Scanner sc = new Scanner(System.in);
// 1 ~ 1000 중에서 랜덤으로 정수 1개 생성
// int ranNum
// [randNum] : 출력
// 사용자가 정답을 입력 : 짝, 19, 22
// String userAns = sc.next();
// if(정답)
// sysout("정답!");
// else
// sysout("오답...");
int i = 0;
while(i < 3) {
int randNum = rand.nextInt(1000) + 1;
System.out.print("[" + randNum + "] : ");
String userAns = sc.next();
if (!check(randNum, userAns)) {
System.out.println("오답입니다.");
break;
}
System.out.println("정답입니다.");
i++;
}
}
}
3. 난이도 ★★★
package class08;
import java.util.Random;
import java.util.Scanner;
public class Test01 {
/*
★★★
명예의 전당
2의 게임을 통과한 사람들의 목록을 출력해주세요!~~
1. 박준현
2. 홍길동
3. 홍길순
4. 임꺽정
5. 아무개
최대 5명
5명 찰때까지 계속
*/
public static boolean check(int num, String user) {
final int NUM = num;
// final : 상수화
int cnt = 0; // 박수 횟수 카운트 할 변수
// 1. 진짜 정답을 만들기 String ans
/////////////////////////////////////////
int x = 1000;
while (x > 0) {
int n = num / x; // 1000인 경우, 1을 의미함
if (n == 3 || n == 6 || n == 9) {
cnt++;
}
num %= x; // 1312인 경우, 13을 의미하게 되므로 전처리가 필수!
x /= 10;
}
////////////////////////////////////////
String ans = "";
for (int i = 0; i < cnt; i++) {
ans += "짝";
}
if(cnt == 0) {
// 형변환(casting)
ans = Integer.toString(NUM);
}
// 2. ans와 user를 비교
System.out.println("ans : " + ans);
System.out.println("user : " + user);
if (ans.equals(user)) {
return true;
}
return false;
// 연산자는 기본 자료형(원시타입)에게만 적용되는 문법
// ex) int, double, char, float
// 클래스(객체)들은 연산자로 비교 불가능
}
public static void main(String[] args) {
Random rand = new Random();
Scanner sc = new Scanner(System.in);
String[] data = new String[5];
for (int i = 0; i < data.length; i++) {
data[i] = "_____";
}
int dataCnt = 0; // 명예의 전당에 저장된 사람의 수
while (dataCnt < data.length) {
for (int i = 0; i < dataCnt; i++) {
System.out.println((i + 1) + ". " + data[i]);
}
System.out.println("--------------------------");
int i = 0;
while (i < 3) {
int randNum = rand.nextInt(1000) + 1;
System.out.print("[" + randNum + "] : ");
String userAns = sc.next();
if (!check(randNum, userAns)) {
System.out.println("오답입니다.");
break;
}
System.out.println("정답입니다.");
i++;
}
if (i == 3) {
System.out.print("명예의 전당에 올릴 이름을 입력) ");
data[dataCnt] = sc.next();
System.out.println(data[dataCnt] + "님 축하드립니다.");
dataCnt++;
}
}
}
}
GitHub
https://github.com/Qkrwnsgus0522/Java
728x90