콘텐츠로 건너뛰기

매일 생각을 키우는 재밌는 글쓰기3

매일 생각을 키우는 재밌는 글쓰기3

FrontendJAVASCRIPT프로젝트,강의 기본적으로 1부터 9까지 서로 다른 수로 이루어진 3자리의 수를 맞추는 게임입니다. 같은 수가 같은 자리에 있으면 스트라이크, 다른 자리에 있으면 볼, 같은 수가 전혀 없으면 낫싱이란 힌트를 얻고, 그 힌트를 사용해 먼저 상대방컴퓨터의 수를 맞추면 승리합니다. 예 상대방컴퓨터의 수가 425일 때123을 제시한 경우 1스트라이크456을 제시한 경우 1볼 1스트라이크789를 제시한 경우 낫싱위 숫자 야구 게임에서 상대방의 역할을 컴퓨터가 합니다.

컴퓨터는 1에서 9까지 서로 다른 임의의 수 3개를 선택합니다. 게임 플레이어는 컴퓨터가 생각하고 있는 서로 다른 3개의 숫자를 입력하고, 컴퓨터는 입력한 숫자에 대한 결과를 출력합니다.


imgCaption0
mockQuestions 함수

mockQuestions 함수

readLine 함수를 jest.fn으로 대체해서 모의함수로 대체합니다. 전달받은 answer 배열을 reduce를 통해 각 요소에 관해 초기값을MissionUtils.Console.readLine으로 설정하고 초기값에 관해 mockImplementationOnce를 통해 readLine에 대한 모의함수를 실행시킨다. input은 answers 배열을 순회하면서 전달받는 answers의 각 요소입니다.

간단하게 설명하면 mockQuestions함수는 MissionUtils.Console.readLine 메소드에 관해 모의 함수를 사용해 테스트를 진행되는 함수입니다.

App.js파일

게임 시작 메세지를 변수로 선언해줍니다. App클래스에 게임 시작 메세지를 프린트하는 printGameStartMessage 메소드를 정의합니다. MissionUtils의 Console.print메소드를 사용합니다. Console.print 메소드는 주어진 문자열을 콘솔에 출력하는 기능을 합니다. 그리고 play메소드에 printGameStartMessage를 실행시킨다.

영상 값 접근

영상 값을 읽어 오는 방법에 관해 알아보겠습니다. 컬러 영상일 경우 index로 0, 1 픽셀의 bgr 값을 읽어오거나 직접 channel을 지정해서 하나의 값으로 읽어올 수도 있습니다. gray 영상일 경우도 마찬가지겠죠? 이렇게 읽어 오면 됩니다. 그럼 그 관련하여 값을 적어보겠습니다. 이번에는 레나 영상을 color로 그대로 읽어 보도록 하겠습니다. IMREADUNCHANGED 옵션을 사용하였습니다. 그리고 for in 문을 사용하여 1299까지 관련하여 적색의 색을 칠해보도록 하겠습니다.

이렇게 수행하게 되면, 아래와 같이 화소에 접근해서 직접 색을 칠할 수 있습니다.

라이브러리

에서 제공되는 Random 및 Console API를 사용하여 구현해야 합니다. Random 값 추출은 의 Random.pickNumberInRange를 활용합니다. 사용자의 값을 입력 받고 출력하기 위해서는 에서 제공되는 Console.readLine, Console.print를 활용합니다. const computer while computer.length 아직은 어떻게 진행해야할지 감이 안잡혀서 처음 참가자들의 코드를 분석해보기로 했다.

완전한 코드를 보고 분석하려니 어디서부터 손을 대야할지 막막했다. 그래서 commit을 보면서 어떤 절차로 코드를 작성했는지 보고 분석해보려 합니다.

getUserInput메소드

미션유틸에서 Console.readLine을 통해 INPUTMESSAGE를 출력하고 숫자를 입력받는다.

MissionUtils.Console.readLine

readLine(query,callback) query를 출력하고 사용자가 답변을 입력하면 입력받은 답변에 대한 콜백함수를 실행시킨다. getUserInput 메소드에는 getUserInput을 또 호출하도록 되어 있습니다. 이렇게 되면 끝없이 루프되는게 아닌가 싶은데 뒷부분에 수정됐을 수 있으니 처음 넘어갑니다.

rintGameStartMessage메소드에 this.getUserInput을 추가시켰다. 게임 스타트 메세지를 표시한 다음 사용자에게 값을 입력받는다.

4 딕셔너리dictionary

딕셔너리는 키key와 값value으로 구성된 자료형입니다. 중괄호와 콜론으로 선언을 하며, 리스트와 개성이 유사하지만 순서가 없고 대신 mapping이 가능하다는 혜택이 있습니다. 즉 순서를 고려하지 않고 키를 통해 값을 불러오는 형태입니다.

자주 묻는 질문

mockQuestions

readLine 함수를 jest. 더 알고싶으시면 본문을 클릭해주세요.

Appjs파일

게임 시작 메세지를 변수로 선언해줍니다. 더 알고싶으시면 본문을 클릭해주세요.

영상 값 접근

영상 값을 읽어 오는 방법에 관해 알아보겠습니다. 자세한 내용은 본문을 참고하시기 바랍니다.