Dear!くろうどぃあ!

このブログでは、私、くろうどの趣味に関する事を記述します。
当面は、「RPGツクールMV」をメインにします。

JavaScriptの基礎っぽい物【2のつづき】

2018-11-18 18:22:41 | RPGツクールMV

こんにちは。くろうどです。

前回のじゃんけん関数を実際にRPGツクールMVで使ってみました。

これをそのままプラグインとして登録しました。

(即時関数では囲っていないです)

 

マップイベントは以下のようになっています。

画像だと一部しか表示されていないので、テキストにしたのが以下です。

じゃんけん関数は、真ん中辺りの変数の操作(スクリプト)で、

「◆変数の操作:#0003 [じゃんけん結果] = janken($gameVariables.value(1), $gameVariables.value(2))」

こんな感じで使っています。


◆変数の操作:#0002 [対戦相手の手] = 乱数 0..2
◆条件分岐:[対戦相手の手] = 0
◆名前の変更:対戦相手の手, グー

:分岐終了
◆条件分岐:[対戦相手の手] = 1
◆名前の変更:対戦相手の手, チョキ

:分岐終了
◆条件分岐:[対戦相手の手] = 2
◆名前の変更:対戦相手の手, パー

:分岐終了
◆文章:Package1(0), ウィンドウ, 上
:  :\>僕とじゃんけんをしよう。
:  :\>
:  :\>君の手を選んでね。
◆選択肢の表示:グー, チョキ, パー (ウィンドウ, 中, #1, -)
:グーのとき
◆変数の操作:#0001 [あなたの手] = 0
◆名前の変更:あなたの手, グー

:チョキのとき
◆変数の操作:#0001 [あなたの手] = 1
◆名前の変更:あなたの手, チョキ

:パーのとき
◆変数の操作:#0001 [あなたの手] = 2
◆名前の変更:あなたの手, パー

:分岐終了
◆変数の操作:#0003 [じゃんけん結果] = janken($gameVariables.value(1), $gameVariables.value(2))
◆条件分岐:[じゃんけん結果] > 0
◆文章:Package1(0), ウィンドウ, 上
:  :\>君:\N[1] VS \N[2]:僕
:  :\>
:  :\>君の勝ちだよ。

:分岐終了
◆条件分岐:[じゃんけん結果] = 0
◆文章:Package1(0), ウィンドウ, 上
:  :\>君:\N[1] VS \N[2]:僕
:  :\>
:  :\>あいこだね。

:分岐終了
◆条件分岐:[じゃんけん結果] < 0
◆文章:Package1(0), ウィンドウ, 上
:  :\>君:\N[1] VS \N[2]:僕
:  :\>
:  :\>僕の勝ちだよ。
:  :\>つまり、君の負けって事さ。

:分岐終了


これを実行すると以下のようになります。

 それでは~。


JavaScriptの基礎っぽい物【2】

2018-11-18 08:01:23 | RPGツクールMV

こんにちは。くろうどです。

今回は、RPGツクールMVをやってる人向けに JavaScript の基礎っぽいソースコードをお見せする第2弾を書きたいと思います。

今回紹介する関数は「じゃんけん」です。

 

①まず、このじゃんけん関数の仕様をコメント部分(/* と */ の間)に書いていますが、書ききれていないですね……。

今回は前提として、2人でじゃんけんします。

「あなた」と「対戦相手」の2つのじゃんけんの手を引数として与えます。

「0:グー、1:チョキ、2:パー」としました。

※今回、配列を使うので0からの連番としました。

そして、じゃんけんの対戦結果が戻り値として戻ってきます。

「-1:あなたの負け、0:引き分け、1:あなたの勝ち」としました。

※0を基準に大小比較する方がソースコードが分かりやすくなると思い、こうしました。


②「janken = function(you, opponent)」の部分は、関数の宣言です。

引数を2つ受け取ります。


③「var game =」の部分は、じゃんけんの入力と結果を二次元配列を使用して表現しています。

配列は1列だけではなく、表として使う二次元配列という使い方が出来ます。

(三次元以上の配列は分かりにくいので使わない方がイイかと思います)

今回は、あなたと対戦相手の2人のじゃんけんなので、表で表すことが出来ます。

表を使う事で、if文を使わずにじゃんけんの結果を出す事が出来ます。


④「return game[you][opponent];」の部分でじゃんけん結果を戻します。

配列gameに引数で得た値をそのまま与え、配列gameに設定されている「-1、0、1」の値をもらい、そのまま return で戻します。


⑤この「じゃんけん関数」を使う時は、「あなた」の手を入力してもらい、「相手」の手をランダム等で決定し、その値を関数に与えます。

そして戻り値を判定し「勝ち、負け、あいこ」等のメッセージを出す事になります。

つまり、この関数ではプレイヤーの入力や、メッセージの表示は行わないという事です。


↓↓画像じゃないソースコード


/*
* じゃんけん関数
*
* 引数に0~2の値を入れる。
* 0:グー
* 1:チョキ
* 2:パー
*
* 戻り値
* -1:あなたの負け
* 0:あいこ
* 1:あなたの勝ち
*/
janken = function(you, opponent) {
// ↓you / opp→ rock scissors paper
// rock draw win lose
// scissors lose draw win
// paper win lose draw
var game = [[ 0, 1, -1],
[-1, 0, 1],
[ 1, -1, 0]];

return game[you][opponent];
};

// テスト実行
console.log(janken(0, 0));
console.log(janken(1, 0));
console.log(janken(2, 0));
console.log(janken(0, 1));
console.log(janken(1, 1));
console.log(janken(2, 1));
console.log(janken(0, 2));
console.log(janken(1, 2));
console.log(janken(2, 2));

それでは~。