영상
문제
<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
복사