【無駄づくり】標準ライブラリのみでRGB値(0~255)をランダムに作成するシナリオ
コラム初投稿です。※シナリオアップロードは行っていません※
取得した時間のコンマ数秒の値からRGB値をランダムに作成するシナリオ作成してみました。
スクリプトやExcelなど使えば一発かもしれませんが、なぜかWinActorの標準ライブラリのみで作りたいとおもって作成しました。
無駄なことを全力で。
★RGB値とは
色を決める値です。詳しくはこちらから
以下、シナリオです。
★フローチャート
★内容
①RGB値3桁目(100の位)作成
日時取得で時間を取得後、最後尾1文字を切り出し、0~2なら、3から5なら1、6~8なら2、9ならもう一回時間取得
とし、3桁目を作成します(RGB値最大値は255のため)
②RGB値2桁目(10の位)作成
日時取得で時間を取得後、最後尾1文字を切り出します。
数値にランダム性を出すため、時間取得の前にIEにてWinActor.comを開いて読み取り完了するようにしています。
③RGB値1桁目(1の位)作成
日時取得で時間を取得後、最後尾1文字を切り出します。
数値にランダム性を出すため、時間取得の前にIEにて開いていたWinActor.comをユーザフォーラムに遷移するようにしています。
④①~③で取得した数値を連結します。3桁目が0の場合は3桁目を削除します。
⑤連結結果が255を超えている場合、②~④を再度繰り返します。
255以下の場合は繰り返しを抜けます
⑥RGB値は3つ必要なので、あと2回①~⑤を繰り返します。(上図はサブルーチンを用いて返り値にそれぞれ格納しています。
★結果
20回実行して、ランダム性があるかを確認しました。
見た感じ寒色系が多い気がしました。
255の中間が127.5で平均が131なのでもう少し試行回数増やせば127.5に近づくんじゃないでしょうか。(平均の期待値あってるかなあ。)
★感想
説明文書いてて思ったんですけどこの方法だと25Xがほとんど出ないですね。。。
複雑になりそうなんで今回はこれ以上手を加えませんが。
WinActorは機械的に処理をするので時間もなかなかランダムにならず、難しかったです。
IEの処理(WinActor.comを開く等)挟まないと時間が一切進んでいなかったり、0.01秒しか前の時間取得から進んでいなかったりと頭を悩まされました。
もっといい方法あるのではないか、とか思ってもいるのでアイデアください。それか時間ある方作ってみてください(なげやり)