Search

배열5_문제01_몬스터추가어택

대분류
STEP06 일차배열
문제 난이도
LV04
소분류
일차배열5_문제

영상

문제

<script> /* [문제] 철수는 게임을 하고 있다. monster배열은 게임의 적 4마리를 의미하고 몬스터의 체력을 의미한다. 철수의 공격력은 5이다. 랜덤으로 몬스터 중 하나를 선택해서 공격하고, 이를 총 다섯 번 반복한다. 모든 몬스터를 공격한 후 몬스터들의 체력을 출력하시오. 단, 몬스터 체력은 0이 되면 더 이상 내려가지 않으며 공격한 몬스터의 양쪽에게는 1의 대미지를 추가로 가하게 된다. [예시] 0번째 몬스터 공격! : 4,6,8,6 3번째 몬스터 공격! : 4,6,7,1 3번째 몬스터 공격! : 4,6,6,0 3번째 몬스터 공격! : 체력이 0인 몬스터입니다. 다시 선택해주세요. 1번째 몬스터 공격! : 3,1,5,0 0번째 몬스터 공격! : 0,0,5,0 */ let monster = [9,7,8,6]; let power = 5; </script>
Java
복사

해설

<script> /* [문제] 철수는 게임을 하고 있다. monster배열은 게임의 적 4마리를 의미하고 몬스터의 체력을 의미한다. 철수의 공격력은 5이다. 랜덤으로 몬스터 중 하나를 선택해서 공격하고, 이를 총 다섯 번 반복한다. 모든 몬스터를 공격한 후 몬스터들의 체력을 출력하시오. 단, 몬스터 체력은 0이 되면 더 이상 내려가지 않으며 공격한 몬스터의 양쪽에게는 1의 대미지를 추가로 가하게 된다. [예시] 0번째 몬스터 공격! : 4,6,8,6 3번째 몬스터 공격! : 4,6,7,1 3번째 몬스터 공격! : 4,6,6,0 3번째 몬스터 공격! : 체력이 0인 몬스터입니다. 다시 선택해주세요. 1번째 몬스터 공격! : 3,1,5,0 0번째 몬스터 공격! : 0,0,5,0 */ let monster = [9,7,8,6]; let power = 5; let count = 0; while(true) { let index = Math.floor(Math.random() * monster.length); console.log(index + "번째 몬스터 공격!"); document.write(index + "번째 몬스터 공격! : "); if(monster[index] > 0) { if(monster[index] - power <= 0) { monster[index] = 0; } else { monster[index] -= power; } // 왼쪽 공격 if(index > 0 && monster[index - 1] > 0) { monster[index - 1] -= 1; } // 오른쪽 공격 if(index < monster.length - 1 && monster[index + 1] > 0) { monster[index + 1] -= 1; } console.log(monster); document.write(monster + "<br>"); count += 1; } else { console.log("체력이 0인 몬스터입니다. 다시 선택해주세요."); document.write("체력이 0인 몬스터입니다. 다시 선택해주세요.<br>"); } if(count == 5){ break; } } </script>
Java
복사