예제
<script>
/*
[문제]
철수는 현재 게임을 플레이 중이며,
캐릭터는 동, 서, 남, 북 네 방향으로 이동할 수 있습니다.
시작 위치는 x = 5, y = 5입니다.
여기서 x는 좌우 방향(동서), y는 상하 방향(남북)을 의미합니다.
[이동 규칙]
1부터 4까지의 랜덤 숫자를 s에 저장합니다.
이 숫자는 이동 방향을 나타냅니다.
값이 1이면 동쪽으로 이동하며, x 좌표가 증가합니다.
값이 2이면 서쪽으로 이동하며, x 좌표가 감소합니다.
값이 3이면 남쪽으로 이동하며, y 좌표가 감소합니다.
값이 4이면 북쪽으로 이동하며, y 좌표가 증가합니다.
1부터 10까지의 랜덤 숫자를 변수 r에 저장합니다.
이 숫자는 이동 거리를 나타냅니다.
위 규칙에 따라 총 5번 이동하며,
매 이동 후 철수의 위치(x, y), 이동 방향(s), 이동 거리(r)를 출력하시오.
*/
/*
[출력예시]
x=5 y=5
x=15 y=5 s=1 r=10
x=15 y=3 s=3 r=2
x=12 y=3 s=2 r=3
x=16 y=3 s=1 r=4
x=17 y=3 s=1 r=1
*/
let x = 5;
let y = 5;
</script>
HTML
복사
정답
<script>
/*
[문제]
철수는 현재 게임을 플레이 중이며,
캐릭터는 동, 서, 남, 북 네 방향으로 이동할 수 있습니다.
시작 위치는 x = 5, y = 5입니다.
여기서 x는 좌우 방향(동서), y는 상하 방향(남북)을 의미합니다.
[이동 규칙]
1부터 4까지의 랜덤 숫자를 s에 저장합니다.
이 숫자는 이동 방향을 나타냅니다.
값이 1이면 동쪽으로 이동하며, x 좌표가 증가합니다.
값이 2이면 서쪽으로 이동하며, x 좌표가 감소합니다.
값이 3이면 남쪽으로 이동하며, y 좌표가 감소합니다.
값이 4이면 북쪽으로 이동하며, y 좌표가 증가합니다.
1부터 10까지의 랜덤 숫자를 변수 r에 저장합니다.
이 숫자는 이동 거리를 나타냅니다.
위 규칙에 따라 총 5번 이동하며,
매 이동 후 철수의 위치(x, y), 이동 방향(s), 이동 거리(r)를 출력하시오.
*/
/*
[출력예시]
x=5 y=5
x=15 y=5 s=1 r=10
x=15 y=3 s=3 r=2
x=12 y=3 s=2 r=3
x=16 y=3 s=1 r=4
x=17 y=3 s=1 r=1
*/
// [for문]
let x = 5;
let y = 5;
document.write("x=", x, " y=", y, "<br>");
for(let i = 0; i < 5; i++) {
let s = Math.floor(Math.random() * 4) + 1;
let r = Math.floor(Math.random() * 10) + 1;
if(s == 1) {
x = x + r;
} else if(s == 2) {
x = x - r;
} else if(s == 3) {
y = y - r;
} else if(s == 4) {
y = y + r;
}
document.write("x=", x, " y=", y, " s=", s, " r=", r, "<br>");
}
document.write("<br>");
// [while문]
let x2 = 5;
let y2 = 5;
document.write("x=", x2, " y=", y2, "<br>");
let i = 0;
while(i < 5) {
let s = Math.floor(Math.random() * 4) + 1;
let r = Math.floor(Math.random() * 10) + 1;
if(s == 1) {
x2 = x2 + r;
} else if(s == 2) {
x2 = x2 - r;
} else if(s == 3) {
y2 = y2 - r;
} else if(s == 4) {
y2 = y2 + r;
}
document.write("x=", x2, " y=", y2, " s=", s, " r=", r, "<br>");
i += 1;
}
</script>
HTML
복사


