阅读 316

第一个 NodeJS 程序

这是我参与更文挑战的第 4 天,活动详情查看: 更文挑战

上一节我们简单介绍了 NodeJS 的特性,今天我们就上手开发,用 NodeJS 写一个「石头、剪刀、布」的小游戏。

游戏过程

这个游戏大家肯定都玩过了,简单描述一下游戏过程:

  • 玩家输入一个手势,如 rock ✊
  • 电脑反馈一个手势,如 scissor ✂️
  • 玩家赢则加一分,反之不加分
  • 玩家累计三分则获胜,电脑自动退出程序,放弃比赛

代码实现

这个游戏只包含常规的 JS 逻辑,代码如下:

// index.js

const game = require('./game'); // 游戏逻辑
let count = 0; // 玩家得分

// 启动进程,获取玩家输入
process.stdin.on('data', e => {
    const playerAction = e.toString().trim();
    // 获得电脑输出
    const result = game(playerAction);
    // 玩家赢则得一分
    if (result.point === -1) {
            count++;
    }
    // 玩家获胜三次,电脑退出程序
    if (count >= 3) {
            console.log('你太强了,我不玩了!');
            process.exit();
    }
});
复制代码
// game.js

module.exports = function (playerAction) {
    // 通过 random 来随机产生电脑行为,比较结果并返回。
    const random = Math.random() * 3;
    const getComputerAction = () => {
        if (random < 1) {
                return 'rock';
        } else if (random > 2) {
                return 'scissor';
        } else {
                return 'paper';
        }
    };
    const computerAction = getComputerAction();

    // 电脑失败为 -1,获胜为 1
    let point; 

    // 平局
    if (computerAction === playerAction) {
        point = 0;
    } else if (
    // 电脑获胜
        (computerAction === 'rock' && playerAction === 'scissor') ||
        (computerAction === 'scissor' && playerAction == 'paper') ||
        (computerAction === 'paper' && playerAction == 'rock')
    ) {
        point = 1;
    } else {
    // 电脑失败
        point = -1;
    }

    // 电脑获胜情况,电脑的行为
    return { point, computerAction };
};
复制代码

运行程序

node index.js
rock # 输入你的手势
复制代码

总结

以上就是一个简单的 Node 程序,建议大家动手试一试,一起探索 Node 的世界!

下一节,我们将用 express/koa 来改造我们的程序。

文章分类
前端
文章标签