Node 入门 - (三)Commonjs规范改造第一个小程序

160 阅读1分钟

目录结构

game
   └─index.js
   └─lib.js

index

index中首先还是获取用户行为,在使用require导入lib,通过监听用户输入统计用户结果,如果赢了三次则关闭进程

const playerAction = process.argv[process.argv.length - 1];

const game = require('./lib')

let count = 0; //统计次数

//监听进程输入
process.stdin.on('data', e => {
    const playerAction = e.toString().trim();
    const result = game(playerAction);
    if(result == -1) {
        count++;
    }
    if(count === 3) {
        console.log('你太厉害了,我不玩了');
        process.exit();
    }
})

lib

lib中使用commonjs规范将游戏逻辑分离成独立模块并接收playerAction参数并在每一局中返回相应结果

module.exports = function(playerAction) {
    var random = Math.random() * 3;
    
    if(random < 1) {
        var computerAction = 'rock';
    } else if (random > 2) {
        var computerAction = 'scissor';
    } else {
        var computerAction = 'paper'
    }

    console.log('电脑: 我出了' + computerAction)
    
    if (computerAction === playerAction) {
        console.log('平局');
        return 0;
    } else if (
        (computerAction === 'rock' && playerAction === 'paper') ||
        (computerAction === 'scissor' && playerAction === 'rock') ||
        (computerAction === 'paper' && playerAction === 'scissor')
    ) {
        console.log('你赢了')
        return -1;
    } else {
        console.log('你输了')
        return 1;
    }
}