본문 바로가기
language/Java

[응용 예제] Bingo

by abstract.jiin 2022. 6. 21.

- 이중for / do-while / break; / 배열 / Math.random 이 모두 적용된 만능 응용예제! 

- BINGO 

import java.util.Scanner;

public class ArrEx16_Bingo {

	public static void main(String[] args) {
		
		final int SIZE=5;
		int x=0, y=0;
		int num=0;
		
		int[][] bingo=new int[SIZE][SIZE]; //5*5 행열구조인 2차원 배열 
		//빙고 생성
		Scanner scan = new Scanner(System.in);
		
		//1~25까지 배열 원소값을 초기화 
		for(int i=0;i<SIZE;i++) {
			for(int j=0;j<SIZE;j++) {
				bingo[i][j]=i*SIZE+j+1;
			}
		}//outer for
		
		//배열 원소값을 섞는다. 
		for(int i=0;i<SIZE;i++) {
			for(int j=0;j<SIZE;j++) {
				x=(int)(Math.random()*SIZE);
				//random()매서드
				y=(int)(Math.random()*SIZE);
				
				int tmp=bingo[i][j];
				bingo[i][j]=bingo[x][y];
				bingo[x][y]=tmp;
			}//inner for
		}//outer for

		do {
			//1~25숫자가 랜덤으로 출력 
			for(int i=0; i<SIZE; i++) {
				for(int j=0;j<SIZE;j++) {
				System.out.printf("%2d ",bingo[i][j]);
			}//inner for
				System.out.println();
		} //outer for
			System.out.println();
			
			System.out.printf("1~%d사이의 숫자 입력.(종료:0)>>",SIZE*SIZE);
			num=Integer.parseInt(scan.nextLine());
				
		outer://이중 for반복문 중단을 위한 레이블 명 
				
		for (int i = 0; i<SIZE; i++) {
			for (int j = 0; j < SIZE; j++) {
				if(bingo[i][j] ==num) {
					bingo[i][j]=0;
					break outer;
				}//if
				
			}//inner for
		}//outer for
				
	}while(num !=0);

		scan.close();
}
}

실행 결과 

더보기

25 14 17  3  1 
19  6 12 16  9 
13 20 21  4 11 
18  7  5 22  8 
23 24 10 15  2 

1~25사이의 숫자 입력.(종료:0)>>

'language > Java' 카테고리의 다른 글

[실습] interface, static method, default method  (0) 2022.06.26
ArrayList_List Collection  (0) 2022.06.23
2차원 배열(Array)  (0) 2022.06.21
배열(Array)  (0) 2022.05.30
do ~ while  (0) 2022.05.29