'뭘 검색해야 하는지' 조차 모르는 상태라 2시간..3시간 보고있어도 아무 진전이 없었는데,
조원(팀장)이 툭 툭 던져주는 힌트와 구글링으로 여기까지 온 나 자신 너무 기특하다.
(일화로, 중간에 팀과제의 조건을 챗 GPT에 쳐보라는 조언을 들었다.
이때까지만 해도 난 GPT를 이용해본 적이 없어서 긴가 민가 하고 쳐봤는데,
왠걸 코드까지 다 짜주더라.
처음엔 너~무 신기했지만 바로 들었던 생각은 .. 내가 이거 보고 하면 내 머릿속에 남는건 없겠다 였다.
다행히 조원 분도 GPT의존 없이 최대한 스스로 알아가자는 주의셔서 서로 서로 의논하며 한걸음 한걸음 발전할 수 있었던 것 같다. 하지만 지금 코드를 다 완성하고 보니 ..GPT에서 짜줬던 코드를 봤더라도 내가 이해할 수 있었을까 싶다 ㅋㅋ 또 GPT에서 짜준 코드가 완벽하지 않아서, 필요한 것을 검색하여 보완 수정해야한다는 점. )
코드 내용보다 주석이 더 많은거 보이시나요..?
개발을 공부하다 보니 우선 코드를 짤 때 큰 틀을 만들어 놓고, 그 안에서도 단계별로 어떻게 진행할 것인지,
그렇게 진행해서 어떤 값을 받을 것인지, 그 값을 또 어떻게 이용할 것인지 계획을 짜는게 정말 중요한 것 같다.
그것들을 표기하다보니 주석이 얼마나 중요한지 알겠다!
이 프로젝트의 핵심.
1. 랜덤한 세개의 숫자를 뽑아 중복되지 않는 숫자를 만든다.
2. 추출된 세자리 숫자와 비교할 세자리 숫자를 입력할 수 있게 한다.
3. 세자리 숫자의 값(즉 index의 값)을 각 각 비교하여 S(strike),B(ball)로 표현한다.
여기서 중요한 포인트가 있는데,
우리가 CHECKING 하여 값을 메길 수 있는 조건은 S,B 단 두개이니,
요소를 비교할때 나오는 경우의 수를 생각해보자.
a. 요소(숫자)&위치 다 정확히 맞는 경우 즉 완전일치 : STRIKE
b. 요소만 맞는 경우 즉 부분일치 : BALL
c. 같은 위치나 요소가 다 없는 경우 : 값을 주지 않음
따라서 아래와 같은 for 문으로 S,B의 값을 도출할 수 있다!
for (leti = 0; i < 3; i++) {
//i는 index임!!!!!!!!!!!!!!숫자가 아님을 인지. 즉 위치라는 뜻;
//여기서는 S,B가 몇개인지 알려주는 단계.
if (input[i] === threeNums[i]) {
//input과 threeNums의 위치가 정확히 일치할 시.
strike += 1; //STRIKE가 몇개인지 알려주는 개념, 즉 S가 3개 나와야 끝남.
} elseif (threeNums.includes(input[i])) {
ball += 1;
}
} //여기까지는 strike 가 3개가 될때까지 for 루프를 사용하여 s,b 개수를 계산하라는 명령.
4. s<3 일때 for문을 돌리고, 아닐 시 종료함.
// //2023.04.05
// //
constprompt = require("prompt-sync")();
letnumbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
letresult = []; //ranResult는 배열, 즉 1개 각각의 배열을 3개 합쳐서 문자화 시킬것.