ティラノビルダー交流掲示板 883178


ノベルゲーム制作ツール、「ティラノビルダー」に関する掲示板です
ティラノスクリプトに関する質問等はティラノ交流掲示板でお願いします。

質問を書き込む前に

こんな機能ないかな?と思った時
ティラノスクリプトのタグリファレンス

ティラノWikiも確認
http://tyrano.wiki.fc2.com/

バグ報告や質問、要望などご自由にお使い下さい。


不具合報告スレッド

1:シケモクMK :

2015/02/02 (Mon) 14:04:43

不具合を発見されましたら、こちらにご報告いただけると幸いです。
その際、ご利用のOS、現象が発生する手順などもお知らせいただけると助かります。

このスレでは2015年1月に公開されたティラノビルダーVer1.0 以降のバージョンを前提にご報告願います。
69:おちんぽハリケーン :

2015/12/20 (Sun) 03:10:41

問題 乱数の下限が1以外だと正常に機能しない
対策 下限を1に
修正 f.変数=Math.floor(Math.random()*(上限-下限+1))+下限 ※(上限+1)が出てしまったらもう一度実行

環境 ティラノビルダーv1.4無料版 OSウィンドウズ7
参考にしたサイト http://www.ajaxtower.jp/js/math_class/index8.html

コンポーネント システム 変数設定 オペランド乱数 を使用したさいに起こる問題


乱数の下限をa 上限をb とすると画面上に表示される式は

f.変数=Math.floor(Math.random()*b)+a

参考サイトによるとMath.randomで0.0~1.0の値を出しMath.floorで小数点以下を切捨てするらしいので
a=0の時とりうる値は 0~b で下限から上限の値を出す
全く問題無い様に見えるが参考サイトを見た限りでは小数点以下の桁数が多すぎるため、
Math.randomが1.0の値を出す事はほぼ無いと見てもいいと思われる。つまり

a=0の時とりうる値は 0~(b-1) ※ごく稀にbが出る
a=1の時とりうる値は 1~b ※ごく稀にb+1が出る
aの値が何にせよ a~(b+a-1) ※ごく稀にb+aが出る となるのでかなり問題がある
a>bでも問題なく実行できるため注意が必要

ティラノビルダー公式サイト、変数管理の項目 http://b.tyrano.jp/tech/page/variable のように
下限3 上限10 と入力すると 3~12 ※ごく稀に13が出る となり正常に機能しない


内部的な修正について
公式サイトの例の用に 3~10 の値を出したい時は (0~7)+3 となるように式を組み立てれば良いため
f.変数=Math.floor(Math.random()*7)+3
ただしこの状態では10の値がほぼ出ないため
f.変数=Math.floor(Math.random()*7+1)+3 ※11が出てしまった時にもう一度実行できるとより理想的

aとbを使ってあらわすと

f.変数=Math.floor(Math.random()*(b-a+1))+a ※(b+1)が出てしまったらもう一度実行


全く知識が無い状態で書いたので間違っていたらすみません

  • 名前: E-mail(省略可):
  • 画像:

Copyright © 1999- FC2, inc All Rights Reserved.