Search

이차반복문5_문제08_숫자이동

대분류
STEP07 이차반복문
문제 난이도
LV06
소분류
이차반복문5_문제

영상

문제

<script> /* [문제] 철수는 게임을 개발하고 있다. game배열을 아래와 같이 사각형으로 출력한다. 숫자8 은 현재 플레이어가 있는 자리이다. 숫자0 은 플레이어가 이동할 수 있는 자리이다. 숫자1 은 플레이어가 이동할 수 없는 벽이다. order배열은 플레이어를 움직이기 위한 명령어들이다. 숫자 1~4로 표현하고 북(1)동(2)남(3)서(4)를 뜻한다. order의 내용대로 플레이어가 이동하는 경로를 전부 출력하시오. 벽 때문에 이동할 수 없을 때는 "이동 불가"를 출력하시오. */ let game = [1,1,1,1,1, 1,0,0,0,1, 1,0,8,0,1, 1,0,0,0,1, 1,1,1,1,1]; let order = [1, 2, 3, 3, 3, 1, 4, 1]; </script>
Java
복사

해설

<script> /* [문제] 철수는 게임을 개발하고 있다. game배열을 아래와 같이 사각형으로 출력한다. 숫자8 은 현재 플레이어가 있는 자리이다. 숫자0 은 플레이어가 이동할 수 있는 자리이다. 숫자1 은 플레이어가 이동할 수 없는 벽이다. order배열은 플레이어를 움직이기 위한 명령어들이다. 숫자 1~4로 표현하고 북(1)동(2)남(3)서(4)를 뜻한다. order의 내용대로 플레이어가 이동하는 경로를 전부 출력하시오. 벽 때문에 이동할 수 없을 때는 "이동 불가"를 출력하시오. */ let game = [1,1,1,1,1, 1,0,0,0,1, 1,0,8,0,1, 1,0,0,0,1, 1,1,1,1,1]; let order = [1, 2, 3, 3, 3, 1, 4, 1]; let player = 8; let road = 0; let wall = 1; let curPos = 0; // 플레이어의 현재 위치(= current position) for(let i=0; i<game.length; i++) { if(game[i] == player) { curPos = i; break; } } document.write("현재위치 = " + curPos + "<br>"); for(let i=0; i<order.length; i++) { for(let i=0; i<game.length; i++) { document.write(game[i] + " "); if(i % 5 == 4) { document.write("<br>"); } } document.write("------------<br>"); let temp = curPos; if(order[i] == 1) { temp -= 5; } else if(order[i] == 2) { temp += 1; } else if(order[i] == 3) { temp += 5; } else if(order[i] == 4) { temp -= 1; } if(game[temp] == wall) { document.write("벽을 만나 이동불가<br>"); } else { game[curPos] = 0; curPos = temp; game[curPos] = player; } } for(let i=0; i<game.length; i++) { document.write(game[i] + " "); if(i % 5 == 4) { document.write("<br>"); } } </script>
Java
복사