Search

배열5_문제05_숫자이동

대분류
STEP04 배열
소분류
배열5_문제

영상

문제

package 배열5_문제; import java.util.Scanner; /* [문제] 1. game배열에 숫자 2는 플레이어이다. 2. 플레이어는 좌(1),우(2)로 이동이 가능하다. 3. 단, 벽(숫자1)을 만나면 이동할 수 없다. 4. 벽을 만나면 숫자9을 입력해 벽을 깰 수 있다. 5. 좌, 우 끝에 벽을 만나면 더 이상 움직일 수 없다. */ public class 배열5_문제05_숫자이동_문제 { public static void main(String[] args) { Scanner scan = new Scanner(System.in); int[] game = {0, 1, 0, 1, 2, 0, 0, 1, 0}; int road = 0; int wall = 1; int player = 2; int index = 4; while(true) { for(int i=0; i<game.length; i++) { if(game[i] == wall) { System.out.print("벽"); } else if(game[i] == road){ System.out.print("__"); } else if(game[i] == player) { System.out.print("옷"); } } System.out.println(); System.out.println("게임종료(0)"); System.out.print("좌(1), 우(2) 입력 : "); int move = scan.nextInt(); if(move == 1) { if(index - 1 >= 0) { if(game[index - 1] == wall) { System.out.println("벽을 부수겠습니까? (숫자9 입력) : "); int punch = scan.nextInt(); if(punch == 9) { game[index] = road; index -= 1; game[index] = player; } } else { game[index] = road; index -= 1; game[index] = player; } } else { System.out.println("더 이상 이동할 수 없습니다."); } } else if(move == 2) { } else if(move == 0) { break; } } scan.close(); } }
Java
복사

해설

package 배열5_문제; import java.util.Scanner; /* [문제] 1. game배열에 숫자 2는 플레이어이다. 2. 플레이어는 좌(1),우(2)로 이동이 가능하다. 3. 단, 벽(숫자1)을 만나면 이동할 수 없다. 4. 벽을 만나면 숫자9을 입력해 벽을 깰 수 있다. 5. 좌, 우 끝에 벽을 만나면 더 이상 움직일 수 없다. */ public class 배열5_문제05_숫자이동_정답 { public static void main(String[] args) { Scanner scan = new Scanner(System.in); int[] game = {0, 1, 0, 1, 2, 0, 0, 1, 0}; int road = 0; int wall = 1; int player = 2; int index = 4; while(true) { for(int i=0; i<game.length; i++) { if(game[i] == wall) { System.out.print("벽"); } else if(game[i] == road){ System.out.print("__"); } else if(game[i] == player) { System.out.print("옷"); } } System.out.println(); System.out.println("게임종료(0)"); System.out.print("좌(1), 우(2) 입력 : "); int move = scan.nextInt(); if(move == 1) { if(index - 1 >= 0) { if(game[index - 1] == wall) { System.out.println("벽을 부수겠습니까? (숫자9 입력) : "); int punch = scan.nextInt(); if(punch == 9) { game[index] = road; index -= 1; game[index] = player; } } else { game[index] = road; index -= 1; game[index] = player; } } else { System.out.println("더 이상 이동할 수 없습니다."); } } else if(move == 2) { if(index + 1 < game.length) { if(game[index + 1] == wall) { System.out.println("벽을 부수겠습니까? (숫자9 입력) : "); int punch = scan.nextInt(); if(punch == 9) { game[index] = road; index += 1; game[index] = player; } } else { game[index] = road; index += 1; game[index] = player; } } else { System.out.println("더 이상 이동할 수 없습니다."); } } else if(move == 0) { break; } } scan.close(); } }
Java
복사