2019년 4월 18일 목요일

재밌는 Node.js (가위바위보 구현)

var scanf = require('scanf');
let check = 1;

while(check) {
    console.log('도전자1 :');
    let challenger1 = scanf('%s');
    console.log('도전자2 :');
    let challenger2 = scanf('%s');
    if(challenger1 === challenger2) {
        console.log('무승부');
        console.log('다시 할거면 1, 안할거면 0');
        check = scanf('%d');
        continue;
    }
    else if(challenger1 === '가위') {
        if(challenger2 === '바위') {
            console.log('도전자2 승');
            console.log('다시 할거면 1, 안할거면 0');
            check = scanf('%d');
            continue;
        }
        else if(challenger2 === '보자기') {
            console.log('도전자1 승');
            console.log('다시 할거면 1, 안할거면 0');
            check = scanf('%d');
            continue;
        }
    }
    else if(challenger1 === '바위') {
        if(challenger2 === '가위') {
            console.log('도전자1 승');
            console.log('다시 할거면 1, 안할거면 0');
            check = scanf('%d');
            continue;
        }
        else if(challenger2 === '보자기') {
            console.log('도전자2 승');
            console.log('다시 할거면 1, 안할거면 0');
            check = scanf('%d');
            continue;
        }
    }
    else if(challenger1 === '보자기') {
        if(challenger2 === '가위') {
            console.log('도전자2 승');
            console.log('다시 할거면 1, 안할거면 0');
            check = scanf('%d');
            continue;
        }
        else if(challenger2 === '바위') {
            console.log('도전자1 승');
            console.log('다시 할거면 1, 안할거면 0');
            check = scanf('%d');
            continue;
        }
    }
}
 오늘은 자바스크립트를 웹이 아닌 환경에서 사용할 수 있게 해주는 Node.js에 대해서 올릴 것이다. 코드를 대충 보면
원래 하던 C언어랑 비슷해 보이는데 다른 점은 먼저 변수의 자료형을 개발자가 지정해주는 것이 아니라는 점이고 자바
스크립트는 printf대신에 console.log를 사용해서 콘솔에 출력을 한다. 그리고 코드를 보면 scanf라는 익숙한 친구가 
보이는데 scanf는 원래 자바스크립트에는 없는 것인데 Node.js에만 있는 npm(Node Package Manager)이라는 프로그램을
통해서 scanf를 불러온 것이다. scanf를 불러온 부분이 제일 처음에 나오는 var scanf = require('scanf');부분이다.
아직 한지 얼마 안되서 잘 모르기는 한데 npm을 많이 사용할 것 같다. 그리고 ===이라는 건 C언어에는 없는 것이다.
===은 ==이랑 비슷한데 양 옆의 두 값이 같으면 참을 보낸다. ==은 두 값의 타입은 안보고 값만 비교하는 것이고 
===은 두 값의 타입과 값을 둘 다 보는 것이다. 자세히 말하자면 ==은 두 값을 강제 형변환을 통해서 서로 같은 형으로
변환을 한 다음에 값을 비교한다.
 위에 설명한 것들을 제외하고 나머지 코드들은 C언어와 비슷하다. 가위바위보를 하려면 두 사람이 있어야 하니까 
도전자1과 도전자2를 선언하는 동시에 scanf를 통해서 가위, 바위, 보자기 중에서 무엇을 낼 것인지 입력을 받는다.
입력을 받으면 가위바위보의 모든 경우의 수를 if else문들을 써서 도전자1과 도전자2의 가위바위보 결과를 내놓는다.
그리고 처음에 선언해둔 check변수에 1 또는 0을 입력 받아서 반복문을 계속 반복할 것인지 멈출 것인지를 결정한다.
 오늘 처음 Node.js로 제대로 된 걸 만들어 봤는데 새로운 부분도 많고 C언어와 비슷한 부분도 많아서 재미가 있었다.

댓글 없음:

댓글 쓰기