1. 지뢰찾기, 지뢰 주변 숫자 출력하기
< 소스 >
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 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 | import static java.lang.System.in; public class MineSweeper { public static void main(String[] args) { boolean[][] board = new boolean[10][10]; String[][] boardc = new String[10][10]; int[][] boardi = new int[10][10]; int i, j; for(i = 0; i < 10; i++) { for(j = 0; j < 10; j++) { if (Math.random() < 0.3) { board[i][j] = true; } } } for(i = 0; i < 10; i++) { for(j = 0; j < 10; j++) { if (board[i][j]) { boardc[i][j] = "#"; //boardc에 문자 #을 저장 System.out.print("# "); } else { System.out.print(". "); } } System.out.println(); } for(i = 0; i < 10; i++) // 내 위치 { for(j = 0; j < 10; j++) { if(boardc[i][j] == "#") // 현재 내 위치가 #(지뢰)일경우 { continue; } int count =0; // 지뢰의 개수를 파악하기 위해 초기화 for(int k = i-1; k <= i+1; k++) // 주변위치 { for(int h = j-1; h <= j+1; h++) { if(i==k && j==h) //주변 위치로 탐색하여 내 위치를 알 때 { continue; } if(k==-1 || k==10 || h==-1 || h==10) // 주변위치에서 범위 값이 넘어갔을 경우 { continue; } if(boardc[k][h] == "#") // 내 주변 위치에 #(지뢰)가 있을 경우 { count++; // 지뢰 증가 } } } boardi[i][j] = count; } } System.out.println(); for(i = 0; i < 10; i++) { for(j = 0; j < 10; j++) { if (board[i][j]) { System.out.print(boardc[i][j] + " "); } else { System.out.print(boardi[i][j] + " "); } } System.out.println(); } } } | cs |
< 실행 결과 >
boolean을 통해 참이면 boardc에 문자 #을 저장하게 했습니다.
그리고 출력을 하고 4중 for문을 이용해 현재 위치 주변을 탐색하고 주변 위치에 #이 있으면 count를 높여 정수형 배열 boardi에 저장을
했습니다.
그리고 다시 출력을 통해 참이면 문자#을 출력하고 false면 정수형 배열 boardi를 통해 올라간 count를 출력했습니다.
'대학교 > 2.객체지향프로그래밍_JAVA' 카테고리의 다른 글
[JAVA] 이벤트 그래픽 (0) | 2017.06.03 |
---|---|
문자열을 이용해 정수인지 실수인지 판별 (0) | 2017.04.21 |
Tic_Tac_Toe(틱택토) 게임 (0) | 2017.04.21 |
극장 예매 시스템 (0) | 2017.04.21 |
난수발생을 이용해 숫자 찾기 (0) | 2017.04.21 |