Node之process.argv实现剪刀石头布游戏

583 阅读1分钟

process.argv

  • 在JS文件中输入 console.log(process)即可打印出Node的进程信息。

  • 在process信息中有一个argv。官方文档解释如下:

    process.argv 属性会返回一个数组,其中包含当 Node.js 进程被启动时传入的命令行参数。 第一个元素是 process.execPath。(属性返回启动 Node.js 进程的可执行文件的绝对路径名。) 如果需要访问 argv[0] 的原始值,则参见 process.argv0。 第二个元素是正被执行的 JavaScript 文件的路径。 其余的元素是任何额外的命令行参数。

使用process.argv实现简易石头剪刀布

// 获取玩家输入的信息(argv第三个参数)
var playerAction = process.argv[process.argv.length - 1]
// console.log(process.argv)
console.log('你的输出:'+playerAction)

var random = Math.random() * 3

// 电脑操作
if (random < 1) {
    // 剪刀
    var computerAction = 'rock'
} else if (random > 2) {
    // 石头
    var computerAction = 'paper'
} else {
    // 布
    var computerAction = 'scissor'
}

console.log('电脑的输出:'+computerAction)

if (playerAction === computerAction) {
    console.log('平局')
} else if (
    playerAction === 'rock' && computerAction == 'paper' ||
    playerAction === 'paper' && computerAction == 'scissor' ||
    playerAction === 'scissor' && computerAction == 'rock'
) {
    console.log('你输了')
} else {
    console.log('你赢了')
}

// if(playerAction===computerAction){
//     console.log('平局')
// }else if(playerAction==='rock'&&computerAction=='paper'){
//     console.log('你输了')
// }else if(playerAction==='rock'&&computerAction=='scissor'){
//     console.log('你赢了')
// }else if(playerAction==='paper'&&computerAction=='scissor'){
//     console.log('你输了')
// }else if(playerAction==='paper'&&computerAction=='rock'){
//     console.log('你赢了')
// }else if(playerAction==='scissor'&&computerAction=='rock'){
//     console.log('你输了')
// }else if(playerAction==='scissor'&&computerAction=='paper'){
//     console.log('你输了')
// }


总结

  • 返回进程启动时的命令行参数。 第一个元素是Node.js 进程的可执行文件的绝对路径名。

  • 第二个元素是当前执行的 JavaScript 文件的路径。

  • 剩余的元素都是额外的命令行参数。

  • 通过process.argv可以获取以上三点的信息