Java

Java, 컴퓨터 게임(덧셈 계산 게임) / Math.random(), for문 , while문, 다중 for문

greenyellow-s 2024. 7. 8. 19:28
[문제] 덧셈 계산 (for, while, 다중 for)

 

- 10 ~ 99 사이의 난수를 2개 발생하여 합을 구하는 프로그램
- 5문제를 제공한다.
- 1문제당 점수 20점씩 처리한다.
- 틀리면 1번 더 기회를 주고, 2번 다 틀리면 답을 알려준다.
- n/y는 대소문자 상관 없다.
- y 또는 n이 입력이 안되면 계속 반복한다

 

 

사용자 입 출력 명령어

 

Scanner scan = new Scanner(System.in);

int user = scan.nextInt();

 

난수 랜덤 출력

 

Math.random(); 함수는 기본으로 0보다 크고 1보다 작은 값을 출력한다.

따라서 10부터 99 사이의 값 중에서 난수를 구하려면

 

Math.random()*99+10 으로 난수의 최대 최소값을 설정해준다.

 

a = (int)(Math.random()*99 + 10);

 

무한루프, 원하는 답이 나올 때까지 질문 반복 실행

 

for( ; ; ) {

        if(조건) {

              참일때

        } else if( ) {

        } else continue;

 }

 

 

package for_;

import java.util.Scanner;

public class AddGame {

	public static void main(String[] args) {
		int a, b;
		int dab=0;
		int sum;
		int count=0;
		String yn;
		
		
		Scanner scan = new Scanner(System.in);
		
		loop:while(true) {
			count = 0;
			dab = 0;
			for(int i=1; i<6; i++) {
				
				a= (int)(Math.random()*99 + 10);
				b= (int)(Math.random()*99 + 10);
				
				System.out.print("["+i+"]"+a + " + " + b + " = ");
				int user = scan.nextInt();
				sum = a+b;
				
				if(user == sum) {
					System.out.println("딩동뎅");
					System.out.println();
					dab+=20;
					count++;
				} else if(user != sum) {
					System.out.println("틀렸다");
					System.out.print("["+i+"]"+a + " + " + b + " = ");
					user = scan.nextInt();
					
					if(user == sum) {
						System.out.println("딩동뎅");
						System.out.println();
						count+=20;
						count++;
					} else {
						System.out.println("틀렸다 정답은 " + sum);
						System.out.println();
					}
				}
			}

			System.out.println("당신은 총 "+count+"문제를 맞추어서 점수 "+dab+"점 입니다.");
			System.out.println();
			/*한 게임 end*/
			
			for(;;) {
				System.out.print("또 할래(Y/N) : ");
				yn = scan.next();
				
				if(yn.equals("Y") || yn.equals("y")) {
					break;
				} else if(yn.equals("N") || yn.equals("n")) {
					break loop;
				} else {
					continue;
				}
			}
		}
		
		System.out.println("프로그램을 종료합니다.");
		
	}

}
/*
[실행결과]
[1] 25 + 36 = 50
틀렸다
[1] 25 + 36 = 59
틀렸다 정답은 xx

[2] 10 + 25 = 35
딩동뎅

[5] 78 + 95 = 89
틀렸다
[5] 78 + 95 = 173
딩동뎅

당신은 총 x 문제를 맞추어서 점수 xx점 입니다.

또 할래(Y/N) : A
또 할래(Y/N) : w
또 할래(Y/N) : n


프로그램을 종료합니다.

*/