ホームページ > ウェブフロントエンド > jsチュートリアル > Nodejsを使った簡単なじゃんけんゲームの実装方法

Nodejsを使った簡単なじゃんけんゲームの実装方法

青灯夜游
リリース: 2021-06-25 09:49:51
転載
3527 人が閲覧しました

この記事では、Node.js を使って簡単なじゃんけんゲームを作る方法を紹介します。一定の参考値があるので、困っている友達が参考になれば幸いです。

Nodejsを使った簡単なじゃんけんゲームの実装方法

Node.js モジュール、非同期、HTTP サービス、その他の知識ポイントを予備的に理解した後、簡単なじゃんけんゲームを作ってみましょう。 ! [推奨学習: "nodejs チュートリアル"]

要件分析

このジャンケン ゲームは、人間とコンピューターの対話形式です。 . じゃんけん (rock)/チョキ (scissor)/パー (paper) をランダムに入力すると、コンピューターもランダムにジャンケン/パーを生成します。そして勝敗を比較して結果を出力します。

ここで 2 つの質問があります。出力はわかっていて、console.log() を通じて出力できるのですが、それを入力するにはどうすればよいでしょうか?では、Node.js はどのようにして入力値を取得するのでしょうか?

入力は次のように直接入力します: nodeindex.jsrocknode が実行を開始した後、index.js、パラメータを直接追加しますrock 以上です。

取得した場合、Node.js にはグローバル変数 process が含まれます。これは、Node.js の操作に関する情報を記録するプロセス オブジェクトであり、属性 argv# を持ちます。 # #、入力値は次の属性を通じて取得できます:

console.log(process.argv)
ログイン後にコピー

Nodejsを使った簡単なじゃんけんゲームの実装方法

初期バージョン

これ以上面倒な作業はせずに、直接進みましょう。コード :

// spr.js
// 石头剪刀布小游戏
// 命令行命令:node spr.js rock
// argv 可以获取到命令行 node 后面输入的行为
// let playerAction = process.argv[process.argv.length - 1]; // 最后面的输入
let playerAction = process.argv[2]; // 也可以通过下标直接获取
console.log('你出了', playerAction)
if (playerAction != 'rock' && playerAction != 'paper' && playerAction != 'scissor') {
  console.log('请输入rock或paper或scissor')
} else {
  // 电脑通过随机数生成石头剪刀布
  let computerAction;
  let random = Math.random() * 3;
  if (random < 1) {
    console.log(&#39;电脑出了石头&#39;)
    computerAction = &#39;rock&#39;
  } else if (random > 2) {
    console.log(&#39;电脑出了剪刀&#39;)
    computerAction = &#39;scissor&#39;
  } else {
    console.log(&#39;电脑出了布&#39;)
    computerAction = &#39;paper&#39;
  }

  // 比较分出输赢
  if (computerAction === playerAction) {
    console.log(&#39;平局&#39;)
  } else if (
    (computerAction == &#39;rock&#39; && playerAction == &#39;scissor&#39;) ||
    (computerAction == &#39;scissor&#39; && playerAction == &#39;paper&#39;) ||
    (computerAction == &#39;paper&#39; && playerAction == &#39;rock&#39;)
  ) {
    console.log(&#39;你输了&#39;)
  } else {
    console.log(&#39;你赢了&#39;)
  }
}
ログイン後にコピー

次に実行して再生します:

node spr.js rock
node spr.js scissor
node spr.js paper
ログイン後にコピー

Nodejsを使った簡単なじゃんけんゲームの実装方法

Module encapsulation

In "

浅い Nodejs のモジュール仕様についての話>> Node.js の CommonJS モジュール仕様について学習したので、このゲームをカプセル化して、新しい要件を実装しましょう: コンピューターにも感情がある。 3回ほど、パソコンの機嫌が悪くなってプレイが止まってしまいました。

ここで新しい

game.js ファイルが作成され、ゲーム モジュールが module.exports を通じてエクスポートされます:

// game.js
module.exports = function (playerAction) {
  if ([&#39;rock&#39;, &#39;scissor&#39;, &#39;paper&#39;].indexOf(playerAction) == -1) {
    throw new Error(&#39;请输入rock或paper或scissor&#39;);
  }
  // 电脑通过随机数生成石头剪刀布
  var computerAction;
  var random = Math.random() * 3
  if (random < 1) {
    computerAction = &#39;rock&#39;
    console.log(&#39;电脑出了石头&#39;)
  } else if (random > 2) {
    computerAction = &#39;scissor&#39;
    console.log(&#39;电脑出了剪刀&#39;)
  } else {
    computerAction = &#39;paper&#39;
    console.log(&#39;电脑出了布&#39;)
  }

  // 比较分出输赢
  if (computerAction === playerAction) {
    console.log(&#39;平局&#39;)
    return 0;
  } else if (
    (computerAction == &#39;rock&#39; && playerAction == &#39;scissor&#39;) ||
    (computerAction == &#39;scissor&#39; && playerAction == &#39;paper&#39;) ||
    (computerAction == &#39;paper&#39; && playerAction == &#39;rock&#39;)
  ) {
    console.log(&#39;你输了&#39;)
    return -1;
  } else {
    console.log(&#39;你赢了&#39;)
    return 1;
  }
}
ログイン後にコピー

New

Index.jsrequire を通じて game.js モジュールをロードします:

// argv 可以获取到命令行 node 后面输入的行为
var playerAction = process.argv[process.argv.length - 1];
console.log(playerAction);

// 通过 require 引入石头剪刀布游戏模块
const game = require(&#39;./game.js&#39;)
const result = game(playerAction);
console.log(result)
ログイン後にコピー

実行して確認してください:

Nodejsを使った簡単なじゃんけんゲームの実装方法#次に、勝利回数を計算する必要があります。入力を続ける方法が必要です:

// 获取进程的标准输入
process.stdin.on(&#39;data&#39;, (buffer) => {
  // 回调的是 buffer,需要处理成 string
  const action = buffer.toString().trim();
  console.log(action)
})
ログイン後にコピー

ターミナルでコマンドを実行します:

nodeindex.js

, youの入力を続けることができることがわかります。

Nodejsを使った簡単なじゃんけんゲームの実装方法勝利数を計算します。3 回以上プレイすると、コンピューターはプレイを望まなくなり、

process.exit()# を通じてプロセスを強制終了します。 ##:

const game = require(&#39;./game.js&#39;)
var winCount = 0;
// 获取进程的标准输入
process.stdin.on(&#39;data&#39;, (buffer) => {
  // 回调的是 buffer,需要处理成 string
  const action = buffer.toString().trim();
  const result = game(action);
  if (result == 1) {
    winCount++
    if (winCount == 3) {
      console.log(&#39;我不玩儿了!哼!&#39;);
      process.exit();
    }
  }
})
ログイン後にコピー

ご覧のとおり、コンピューターをしばらく行ったり来たりしてから、コンピューターを 3 回叩いた後、条件が満たされ、プロセスが終了しました。 。 Nodejsを使った簡単なじゃんけんゲームの実装方法

さて、簡単なじゃんけんゲームが実装されましたので、次の記事ではこのじゃんけんゲームをWeb版にしてみましょう!

コード アドレス: https://github.com/V-vincent/node-introduction

プログラミング関連の知識の詳細については、次を参照してください:

プログラミングビデオ ###! !

以上がNodejsを使った簡単なじゃんけんゲームの実装方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:juejin.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート