Nodejsを使った簡単なじゃんけんゲームの実装方法
この記事では、Node.js を使って簡単なじゃんけんゲームを作る方法を紹介します。一定の参考値があるので、困っている友達が参考になれば幸いです。
Node.js モジュール、非同期、HTTP サービス、その他の知識ポイントを予備的に理解した後、簡単なじゃんけんゲームを作ってみましょう。 ! [推奨学習: "nodejs チュートリアル"]
要件分析
このジャンケン ゲームは、人間とコンピューターの対話形式です。 . じゃんけん (rock
)/チョキ (scissor
)/パー (paper
) をランダムに入力すると、コンピューターもランダムにジャンケン/パーを生成します。そして勝敗を比較して結果を出力します。
ここで 2 つの質問があります。出力はわかっていて、console.log()
を通じて出力できるのですが、それを入力するにはどうすればよいでしょうか?では、Node.js はどのようにして入力値を取得するのでしょうか?
入力は次のように直接入力します: nodeindex.jsrock
、node
が実行を開始した後、index.js
、パラメータを直接追加しますrock
以上です。
取得した場合、Node.js にはグローバル変数 process
が含まれます。これは、Node.js の操作に関する情報を記録するプロセス オブジェクトであり、属性 argv# を持ちます。 # #、入力値は次の属性を通じて取得できます:
console.log(process.argv)
初期バージョン
これ以上面倒な作業はせずに、直接進みましょう。コード :// 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('电脑出了石头') computerAction = 'rock' } else if (random > 2) { console.log('电脑出了剪刀') computerAction = 'scissor' } else { console.log('电脑出了布') computerAction = 'paper' } // 比较分出输赢 if (computerAction === playerAction) { console.log('平局') } else if ( (computerAction == 'rock' && playerAction == 'scissor') || (computerAction == 'scissor' && playerAction == 'paper') || (computerAction == 'paper' && playerAction == 'rock') ) { console.log('你输了') } else { console.log('你赢了') } }
node spr.js rock node spr.js scissor node spr.js paper
Module encapsulation
In "浅い Nodejs のモジュール仕様についての話>> Node.js の CommonJS モジュール仕様について学習したので、このゲームをカプセル化して、新しい要件を実装しましょう: コンピューターにも感情がある。 3回ほど、パソコンの機嫌が悪くなってプレイが止まってしまいました。
ここで新しいgame.js ファイルが作成され、ゲーム モジュールが
module.exports を通じてエクスポートされます:
// game.js module.exports = function (playerAction) { if (['rock', 'scissor', 'paper'].indexOf(playerAction) == -1) { throw new Error('请输入rock或paper或scissor'); } // 电脑通过随机数生成石头剪刀布 var computerAction; var random = Math.random() * 3 if (random < 1) { computerAction = 'rock' console.log('电脑出了石头') } else if (random > 2) { computerAction = 'scissor' console.log('电脑出了剪刀') } else { computerAction = 'paper' console.log('电脑出了布') } // 比较分出输赢 if (computerAction === playerAction) { console.log('平局') return 0; } else if ( (computerAction == 'rock' && playerAction == 'scissor') || (computerAction == 'scissor' && playerAction == 'paper') || (computerAction == 'paper' && playerAction == 'rock') ) { console.log('你输了') return -1; } else { console.log('你赢了') return 1; } }
Index.js、
require を通じて
game.js モジュールをロードします:
// argv 可以获取到命令行 node 后面输入的行为 var playerAction = process.argv[process.argv.length - 1]; console.log(playerAction); // 通过 require 引入石头剪刀布游戏模块 const game = require('./game.js') const result = game(playerAction); console.log(result)
#次に、勝利回数を計算する必要があります。入力を続ける方法が必要です:
// 获取进程的标准输入 process.stdin.on('data', (buffer) => { // 回调的是 buffer,需要处理成 string const action = buffer.toString().trim(); console.log(action) })
ターミナルでコマンドを実行します:
nodeindex.js, youの入力を続けることができることがわかります。
勝利数を計算します。3 回以上プレイすると、コンピューターはプレイを望まなくなり、
const game = require('./game.js') var winCount = 0; // 获取进程的标准输入 process.stdin.on('data', (buffer) => { // 回调的是 buffer,需要处理成 string const action = buffer.toString().trim(); const result = game(action); if (result == 1) { winCount++ if (winCount == 3) { console.log('我不玩儿了!哼!'); process.exit(); } } })
ご覧のとおり、コンピューターをしばらく行ったり来たりしてから、コンピューターを 3 回叩いた後、条件が満たされ、プロセスが終了しました。 。
コード アドレス: https://github.com/V-vincent/node-introduction
プログラミング関連の知識の詳細については、次を参照してください:
プログラミングビデオ ###! !
以上がNodejsを使った簡単なじゃんけんゲームの実装方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











Node.js と Tomcat の主な違いは次のとおりです。 ランタイム: Node.js は JavaScript ランタイムに基づいていますが、Tomcat は Java サーブレット コンテナです。 I/O モデル: Node.js は非同期ノンブロッキング モデルを使用しますが、Tomcat は同期ブロッキング モデルです。同時実行処理: Node.js はイベント ループを通じて同時実行を処理しますが、Tomcat はスレッド プールを使用します。アプリケーション シナリオ: Node.js はリアルタイム、データ集約型、同時実行性の高いアプリケーションに適しており、Tomcat は従来の Java Web アプリケーションに適しています。

Node.js はサーバー側の JavaScript ランタイムであり、Vue.js は対話型ユーザー インターフェイスを作成するためのクライアント側の JavaScript フレームワークです。 Node.js はバックエンド サービス API 開発やデータ処理などのサーバー側開発に使用され、Vue.js はシングルページ アプリケーションや応答性の高いユーザー インターフェイスなどのクライアント側開発に使用されます。

Node.js は、高いパフォーマンス、スケーラビリティ、クロスプラットフォーム サポート、豊富なエコシステム、開発の容易さなどの機能を備えているため、バックエンド フレームワークとして使用できます。

Node.js インストール ディレクトリには、npm と npm.cmd という 2 つの npm 関連ファイルがあります。違いは次のとおりです。拡張子が異なります。npm は実行可能ファイルで、npm.cmd はコマンド ウィンドウのショートカットです。 Windows ユーザー: npm.cmd はコマンド プロンプトから使用できますが、npm はコマンド ラインからのみ実行できます。互換性: npm.cmd は Windows システムに固有ですが、npm はクロスプラットフォームで使用できます。使用上の推奨事項: Windows ユーザーは npm.cmd を使用し、他のオペレーティング システムは npm を使用します。

はい、Node.js はバックエンド開発言語です。これは、サーバー側のビジネス ロジックの処理、データベース接続の管理、API の提供などのバックエンド開発に使用されます。

Node.js には次のグローバル変数が存在します。 グローバル オブジェクト: グローバル コア モジュール: プロセス、コンソール、require ランタイム環境変数: __dirname、__filename、__line、__column 定数: unknown、null、NaN、Infinity、-Infinity

Node.js と Java の主な違いは、設計と機能です。 イベント駆動型とスレッド駆動型: Node.js はイベント駆動型で、Java はスレッド駆動型です。シングルスレッドとマルチスレッド: Node.js はシングルスレッドのイベント ループを使用し、Java はマルチスレッド アーキテクチャを使用します。ランタイム環境: Node.js は V8 JavaScript エンジン上で実行され、Java は JVM 上で実行されます。構文: Node.js は JavaScript 構文を使用し、Java は Java 構文を使用します。目的: Node.js は I/O 集中型のタスクに適しており、Java は大規模なエンタープライズ アプリケーションに適しています。

Web 開発において Node.js と Java にはそれぞれ長所と短所があり、どちらを選択するかはプロジェクトの要件によって異なります。 Node.js はリアルタイム アプリケーション、迅速な開発、マイクロサービス アーキテクチャに優れており、Java はエンタープライズ グレードのサポート、パフォーマンス、セキュリティに優れています。
