暗証番号

キー入力と数値処理

l5_1

l5_2

左右キーで桁移動、上下キーで数値上下。そんな処理を作ってみましょう。

処理例1 – 数値にプラス

【起動条件:呼び出し】

l5_3

カーソルの位置(桁)に合わせて、数値(1,10,100,1000)を加減する方法。
しかし、この方法では【0123】ではなく【123】と表示されてしまいます。
数値を表示の度に【÷1000、%100】などを使って分解すれば正しく表示できますが、数値の上下の際に9+1が10になったりします。(暗証番号なので、9+1=0になってほしい)
別の方法を考えてみましょう。

処理例2 – 分解してプラス

【起動条件:呼び出し】

さっきと違い、最初から桁ごとに分解して計算。
上下キーが押された時、カーソルの位置に応じた桁を加減しています。
しかし分岐が多いですね。見やすい処理とは言いがたいです。

処理例3 – 少ない行数で

【起動条件:呼び出し】

行数が少なくなるように、【~】(2行)と変数呼び出し値を多用して作ってみました。コメントを抜けば42行です。
変数操作の【~】は処理が若干重いですが、こういうキー入力待ちのものでは全く問題ないと思います。初期化に使いやすいです。

このあたりが若干難しいですね。ウディタ基本システムのカーソル移動にも使われているのですが、【+= 10】の後に【%= 10】をすると0-9に数値が収まります。0の下が9、9の上が0になるので、カーソル移動にもってこいのテクニックです。

じゃんけんでも使ったように、%(余りを求める)処理は色々な場面で使えます。 この場合は、数値を9から増やそうとしたら0になったり、カーソルが右に行き過ぎると左から出てきますね。最後の文章表示の行で数値が一致しているか判断すれば、暗証番号コモンの出来上がり。

こういう処理を書く時は、しっかりコメントを入れないと後で見直した時に自分が混乱するので注意しましょう。昨日の自分は他人です。

また、行数を減らすためにXYの初期位置を変数から定数に変更しているので汎用性は下がっていますね。使いやすいように作りましょう。

NOTE:【変数呼び出し値】

項目が多いので別ページにまとめました。  変数呼び出し値ページヘ

はじめにお読みください

ここはWOLF RPGエディター(通称ウディタ)のイベント作成において、 ひとつのお題に対していくつかの考え方を示すページです。正解や不正解ではなく、色々な考え方を示していけたらいいなと思っています。詳しくは以下をお読みください。

続きを読む