연습/JS

JS - 조건문 "미로"

hyeon1016 2024. 8. 20. 01:47

JavaScript의 조건문을 활용해서 문제를 풀어보려한다.

 

문제 .1

미로에 들어섰습니다. 당신은 왼쪽 혹은 오른쪽으로 갈 수 있습니다.
오른쪽 길로 갈건지 안내를 하고 "yes" 혹은 "no"의 값을 받습니다.

해당 변수를 생성하세요.

 

 

풀이

    <script>
      let choice = prompt("미로에 들어섰습니다. 당신은 왼쪽 혹은 오른쪽으로 갈 수 있습니다. 오른쪽 길로 가시겠습니까? (yes/no)")
    </script>

 

문제에서 요구하는 텍스트와 해당 값을 받을 수 있게 'prompt()'의 값을 저장하는 변수 'choice'를 선언했다.

 

 

 

문제 .2

만약 선택이 yes라면
상황 설명을 해줍니다.
랜덤값 생성이 Math.random(); (0~1사이의 값)일 때
0.5 미만이면 우연히 고블린을 만나 전투를 시작한다고 안내하고
0.5 이상이면 아름다운 폭포를 발견했다, 체력이 회복됩니다 라고 안내하세요.

 

 

풀이

    <script>
      let choice = prompt("미로에 들어섰습니다. 당신은 왼쪽 혹은 오른쪽으로 갈 수 있습니다. 오른쪽 길로 가시겠습니까? (yes/no)")

      if("yes" == choice) {
        console.log("오른쪽 길로 들어섭니다...");
        let encounter = Math.random();
        if(encounter >= 0.5) {
          document.write("아름다운 폭포를 발견했다. 체력이 회복됩니다.");
        } else {
          document.write("우연히 고블린을 만났습니다. 전투를 시작합니다.");
        }
      }
    </script>

 

if문을 사용해 문자열 "yes"와 'choice'의 값이 같다면 참이므로 내부 코드를 실행한다.

 

'console.log()'로 문서의 console창에 텍스트를 출력한다.

 

랜덤한 값을 생성하는 'Math.random();'을 저장하는 변수 'encounter'를 선언하고

내부 if문으로 변수 'encounter'의 값이 0.5보다 크거나 같을 때 참이 되므로

'document.write()'로 "아름다운 폭포를 발견했다. 체력이 회복됩니다." 문장을 출력한다.

거짓일 시에는 'document.write()'로  "우연히 고블린을 만났습니다. 전투를 시작합니다." 문장을 출력한다.

 

 

 

문제 .3

만약 선택이 no라면
상황 설명을 해줍니다.
만약 랜덤값이 0.5 미만이면 신비로운 마법사를 만났다. 아이템을 받았다는 안내를 하고.
0.5이상이면 어둠 속에서 괴물을 만났습니다. 도망칩니다 안내를 합니다.

 

 

풀이

    <script>
      let choice = prompt("미로에 들어섰습니다. 당신은 왼쪽 혹은 오른쪽으로 갈 수 있습니다. 오른쪽 길로 가시겠습니까? (yes/no)")

      if("yes" == choice) {
        console.log("오른쪽 길로 들어섭니다...");
        let encounter = Math.random();
        if(encounter >= 0.5) {
          document.write("아름다운 폭포를 발견했다. 체력이 회복됩니다.");
        } else {
          document.write("우연히 고블린을 만났습니다. 전투를 시작합니다.");
        }
      } else if("no" == choice) {
        console.log("왼쪽 길로 들어섭니다...");
        let encounter2 = Math.random();
        if(encounter2 >= 0.5) {
          document.write("어둠 속에서 괴물을 만났습니다. 도망칩니다.");
        } else {
          document.write("신비로운 마법사를 만났습니다. 마법사에게 아이탬을 받았습니다.");
        }
      } else {
        document.write("올바른 길을 선택해주세요.");
      }
    </script>

 

선택이 'no'인 경우를 생성하기 위해 'if("yes" == choice)' if문에 'else if'를 생성하여 조건을 문자열 "no"가 'choice'의 값과 같을 때 참으로 한다. 참일시에는 문제 .2와 똑같은 방식으로 작성된다.

거짓일 시에는 'document.write()'로  "올바른 길을 선택해주세요"라는 경고문을 출력한다.

 

 

 

문제 .4

미로를 탈출했다는 안내를 합니다.

 

 

풀이

    <script>
      let choice = prompt("미로에 들어섰습니다. 당신은 왼쪽 혹은 오른쪽으로 갈 수 있습니다. 오른쪽 길로 가시겠습니까? (yes/no)")

      if("yes" == choice) {
        console.log("오른쪽 길로 들어섭니다...");
        let encounter = Math.random();
        if(encounter >= 0.5) {
          document.write("아름다운 폭포를 발견했다. 체력이 회복됩니다.");
        } else {
          document.write("우연히 고블린을 만났습니다. 전투를 시작합니다.");
        }
      } else if("no" == choice) {
        console.log("왼쪽 길로 들어섭니다...");
        let encounter2 = Math.random();
        if(encounter2 >= 0.5) {
          document.write("어둠 속에서 괴물을 만났습니다. 도망칩니다.");
        } else {
          document.write("신비로운 마법사를 만났습니다. 마법사에게 미로의 출구를 안내 받았습니다.");
          console.log("미로를 탈출했습니다.");
        }
      } else {
        document.write("올바른 길을 선택해주세요.");
      }
    </script>

 

선택지 "no"의 랜덤한 경우의 수중 하나에 'console.log("미로를 탈출했습니다.");'를 넣어 미로의 탈출에 성공했다는 것을 문서의 console창에 출력한다.