Programming

[TIL] 숫자야구게임

jay-dev 2023. 6. 26. 18:57

Problem

  1. 랜덤으로 생성된 수의 중복을 없애는 로직에 대한 고민
  2. VS Code 프로그램 터미널을 통해서만 확인할 수 있도록 개발시간을 줄이는 방법에 대한 고민

Try & Solution

  1. Math.random() 메서드를 사용하여 랜덤한 수를 생성했지만 중복을 제거하기 위해 indexOf를 사용
let arr = []

 while (arr.length < 3) {
     let ran = Math.floor(Math.random()*10)
     if(arr.indexOf(ran) < 0) {
         arr.push(ran)
     }
 }
  1. VS Code에서 작성한 코드를 웹사이트를 열고, 개발자 도구를 열어가며 디버깅하는 중에
    페어분이 터미널에 입력값을 받아가며 코딩하는 것을 참고함


    require 함수를 통해 readline 모듈을 불러온다.
const readline = require("readline");

const rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout,
});

rl.on('line', (line) => {
  // 입력 받은 값을 처리하는 코드 //
  rl. close();
});
  
rl.on('close', () => {
  // 입력이 끝나고 실행하는 코드 //
  process.exit();
});
  • on() 메서드를 활용하여 이벤트와 콜백함수를 전달
  • 'line' 입력 받은 값을 한 줄씩 읽어 문자열 타입으로 전달하는 역할을 하는 이벤트
  • rl.close() 인터페이스를 종료 무한히 입력 받는 것을 방지
    그 후, 다시 이벤트로 close를 작성하여 입력이 끝난 후 실행되어야 할 함수를 작성