항해14기 본과정/항해14기 개발일지

[항해 14기] 개발일지4 (JS - 숫자야구 구현)

스쿼트잘함 2023. 4. 23. 05:27

본과정 1주차 과제 - 숫자야구 만들기

 

 

1. 과제 조건

 

 

2. 구상

1) node에서 실행을 위한 리드라인 생성

2) 랜덤함수 제작

3) 입력값에 대한 S,B 판정

4) 시도횟수 카운트

5) 입력값이 난수값과 같을 시 종료

6) 콘솔로그 배분

 

 

3. 구현

1) 리드라인

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

rl.on("line", (line) => {
  let input = [];
  input.push(line.split("").map((a) => parseInt(a)));

  
  console.log(`${count}번째 시도 :`, line);  
  if (line === array.join("")) {
    rl.close();
  } 
});

rl.on("close", () => {  
  process.exit();
});

 

2) 랜덤함수

- Math.random에 정수를 곱하여 범위지정 후 Math.floor로 소수점 제거

- indexOf 메소드를 활용하여 숫자 중복방지

 

3) 실행 관련

- 조건문과 배열 인덱스를 활용

- 리드라인 입력시마다 count횟수 증가

- 입력값과 랜덤난수값이 같을 시 종료

 

 

4. 리뷰

1) 리드라인 문법을 알게되었다

2) 중복값 입력 방지시에 indexOf대신 Set을 써도 유용하다