この記事では、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
浅い 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 回以上プレイすると、コンピューターはプレイを望まなくなり、
process.exit()# を通じてプロセスを強制終了します。 ##:
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 回叩いた後、条件が満たされ、プロセスが終了しました。 。
さて、簡単なじゃんけんゲームが実装されましたので、次の記事ではこのじゃんけんゲームをWeb版にしてみましょう!コード アドレス: https://github.com/V-vincent/node-introduction
プログラミング関連の知識の詳細については、次を参照してください:
プログラミングビデオ ###! !
以上がNodejsを使った簡単なじゃんけんゲームの実装方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。