ホーム

知っておくと便利なスクリプト

ここでは、改造の際に知っておくと便利なスクリプトを解説します。
(主にヘルプには詳しく載っていないもの)

変数に代入する値の範囲を制限する

[...].min
[...].max
これは「配列から最も小さい(大きい)値を抜き出す」機能です。
例えば、[6, 4, 7, 2]という配列に対して使用した場合、
[6, 4, 7, 2].min #=> 2
[6, 4, 7, 2].max #=> 7
という結果になります。

そこで、これを利用して値の変域を設定してみます。
def x=(value)
  @x = [[value, 32].max, 64].min
end
def update
  x = rand(128)
end
↑のスクリプトは、updateメソッドを呼び出すごとにxに対して0〜127の乱数を代入する処理を行っています。
ここでxに処理が移るわけですが、xに渡された値はまず、
[value, 32].max
により、[value, 32]という配列に対して例の[...].maxが適用されます。
よって、value32より小さい場合は32が返り、32より大きい場合はそのままvalueが返ります。

次はここで得た値(仮にyとする)に対して、
[y, 64].min
が適用されます。
これにより、y64より大きい場合は6464より小さい場合はそのままyが返されます。

以上から、
@x = [[value, 32].max, 64].min
は「@x32〜64の範囲内におさめる」という動作をすることになります。
デフォルトのスクリプトもこれを使用している箇所は多いので、そちらも参考にしてください。