目录结构
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;
}
}