일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- 페이지분석
- 자바
- 자바 오류
- 데이터베이스
- 웹브라우저 수용도
- 크롤링 오류
- DoIt
- 숫자 형식
- HTML역사
- html
- R1C3
- 함수
- 예외
- DoitSQL
- 숫자형식오류
- 예제
- 배열 예제
- dbms
- 배열 3요소
- 함수 선언
- SQL입문
- DoitSQL입문
- SQL
- 자바 예외
- 크롤링
- 우아한테크
- 키-값 데이터베이스
- 생성자
- Doit입문SQL
- 웹 브라우저 전쟁
Archives
- Today
- Total
반응형
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- 페이지분석
- 자바
- 자바 오류
- 데이터베이스
- 웹브라우저 수용도
- 크롤링 오류
- DoIt
- 숫자 형식
- HTML역사
- html
- R1C3
- 함수
- 예외
- DoitSQL
- 숫자형식오류
- 예제
- 배열 예제
- dbms
- 배열 3요소
- 함수 선언
- SQL입문
- DoitSQL입문
- SQL
- 자바 예외
- 크롤링
- 우아한테크
- 키-값 데이터베이스
- 생성자
- Doit입문SQL
- 웹 브라우저 전쟁
Archives
- Today
- Total
프로그래밍
[자바 기초] day05 : 369 게임 프로그램 예제 본문
728x90
반응형
2023.05.09.화
3 6 9 게임
[개요]
랜덤으로 나오는 수에 3 6 9 게임을 하여라
랜덤으로 출력된 수에 사용자가 정답을 입력한다
사용자의 답이 정답이면 "정답입니다!"라고 출력한다
사용자의 답이 오답이면 "오답입니다!"라고 출력한다
사용자가 연속으로 3번 정답을 맞출시 명예의 전당에 이름을 등록할 수 있다
사용자에게 입력받은 이름 명단을 순서대로 게임이 시작될때마다 출력한다
명예의 전당에 5명의 이름이 등록되면 게임이 프로그램이 종료 된다
예시)
1. 홍길동
2. 임꺽정
3. 티모
=================
[19] : 짝
정답입니다!
[19] : 19
오답입니다.....
- 끝 -
[19] : 짝
정답입니다!
[19] : 짝
정답입니다!
[19] : 짝
정답입니다!
이름입력) OOO
OOO님, 축하합니다! :D
코드
package class02;
import java.util.Random;
import java.util.Scanner;
public class Test03 {
/*
명예의 전당
2의 게임을 통과한 사람들의 목록을 출력해주세요!~~
1. 홍길동
2. 임꺽정
3. 티모
4. 아트록스
5. 모르가나
최대 5명
5명 찰때까지 계---속
*/
// [2]의 게임을 시작하기전에,
// for(명예의 전당에 저장된 사람의 수만큼)
// 배열 OK! String[] data=new String[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)
// 최초의 num값을 기억해줄 변수가 필요하구나!
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;
// 연산자는 기본 자료형(원시타입)에게만 적용되는 문법
// 클래스(객체)들은 연산자로 비교불가능
}
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
Random rand=new Random();
String[] data=new String[5];
// //null 대신 "____________" 표시
// for(int i=0;i<data.length;i++) {
// data[i]="_____";
// }
int dataCnt=0; // 명예의 전당에 저장된 사람의 수
//5명이 다 차지 않으면 계속
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]+"님, 축하합니다! :D");
dataCnt++;
}
}
}
}
final
: 분기점
//연산자는 원시타입(기본 자료형)에게만 적용되는 문법
// ex)
// 원래 스트링은 String str = new String("apple"); 봐준거임
// 연산자로 비교 불가
1
10
100 의 자리수 구하기
향변환
string끼리의 비교
순서도
while 문 안에
{
for ---> 명예의 전당 출력
while (종료조건 if 오답일시) ---> 세번 맞췄는지 센다
if ---> 명예의 전당에 이름 입력
}
728x90
반응형
'자바 > 자바 기초' 카테고리의 다른 글
[자바 기초] day06 : 클래스 (0) | 2023.05.10 |
---|---|
[자바 기초] day06 : 객체지향 프로그래밍 (2) | 2023.05.10 |
[자바 기초] day05 : 함수의 인자 (0) | 2023.05.09 |
[자바 기초] day05 : 함수 생성 방식 (1) | 2023.05.09 |
[자바 기초] day04 : 함수 (0) | 2023.05.08 |
Comments