今日のツクールMZスクリプト【16】・変数の定義と配列をソートする。

今回は、スクリプトでわかりやすく変数を定義してそれを利用します。

 

ポーカーで数字の順を配列として格納するために

変数31-35をそれぞれ1枚目-5枚目のカードのナンバーとして

 

let pok = [$gameVariables.value(31),…,$gameVariables.valu(35)]

と添字0-4に変数31‐35を格納します。

 

pokはpokerの略で、配列なので[]を使う点に注意。

 

この配列を扱いやすくするために小さい順にソートします。

 

参考場所はここ。

【JavaScript】sort()で配列の値が大きい(小さい)順にソートする | ヨウスケのなるほどブログ。 (repop.jp)

 

pok.sort(function(a, b){return a - b});

 

で処理できますが、正直関数が全く分かっていません。

コピペで特に考えずにやりました。

 

これを実行すると

pok[0]<=pok[1]<=…<=pok[4]

となります。

 

コンソール上で確認すれば問題ないですが、ツクール上でも確認したいので

変数41-45にpok[0]-pok[4]を代入します

f:id:werewolftan:20211111205936p:plain

(何故か最後に5が入ってますが関係ありません)

これを文章の表示で確認すると

f:id:werewolftan:20211111210051p:plain

このように小さい順で表示されます。

 

また、スクリプトを分けて

f:id:werewolftan:20211111210129p:plain

スクリプトを分けて記載

この場合pok変数のスコープが切れてしまい、後半のスクリプトのpokが定義されてない状態となりエラーを吐きます。

f:id:werewolftan:20211111210350p:plain

グローバル変数はどこでもその変数として呼び出せますが、このように定義した変数は、同じスクリプト内でしか機能しないので短い中で扱うか

プラグインを利用して長いスクリプトでも問題ないようにします。

 

今現在プラグインの作成まではわかっていないのでいったん放置。

要参考場所

プラグインの作り方入門その8:MZプラグインコマンドの作り方(JSONデータ) #RPGツクールMZ - RPGツクールMZ・MV初心者的備忘録 - FGMG (Fun Game Make Group)

公式プラグインを読み解く | プラグインを作ってみる | プラグイン講座 | RPGツクールMZ (tkool.jp)

 

今回ソートして作った変数を条件分岐等で利用してポーカーの役の判定をしていきます。

 

具体的には

V[41]+4=V[42]+3=…=V[45]

の時にはストレート判定。

(V[41]=V[42]=V[43]=V[44]) || (V[42]=…=V[45])

の時にはフォーカード判定等。

 

条件式に書くときは

V[41]=V[42]=V[43] などとは使えず

V[41]=V[42] && V[42]=V[43] 

と(論理)演算子?を使う必要があります。(多分)

 

今回は&&や||を多用して、条件分岐させました。

ちなみにスイッチの操作は、

$gameSwitches.setValue(スイッチのID, (true )or (false))

で行うことができます。