秀丸エディタ用の乱数作成マクロ

| | コメント(0) | トラックバック(0)

 秀丸エディタで動作するマクロ「乱数マクロ」です。浮動小数点数バージョンの秀丸エディタであれば"Random"で乱数を作成できるようですが、ふつうの秀丸エディタではできないっぽいのでマクロをつくりました。

 乱数とはいってもしょせん擬似乱数です。Windowsが起動してからの経過時間から数値をひっぱってきているだけですから……。でも、それっぽくなっているはず。

 この「乱数マクロ」単体では使い道がないので、ほかのマクロから呼びだして使用します。適当な名前(random.mac等)で保存して使用してください。ほかのマクロから呼びだす場合は、あたりまえですが、不要な箇所を削除してからお使いください。

 ちなみに、秀丸エディタVer7.02で作成とテストをしています。ほかのバージョンでの動作がどうなるかは不明。Ver6.14以降の秀丸エディタなら「まあ大丈夫」だとは思いますが……。

 以下、乱数マクロでございます。


//■秀丸エディタの乱数マクロ

// 設定項目。希望する乱数の最小値と最大値へ変更してください
#min = 1; //乱数の最小値。1桁のみ対応
#max = 6; //乱数の最大値。1桁のみ対応


// 変数の定義。変更不可
#number = 0; //乱数マクロ実行結果
#rammax = #max - #min; //判定に使用する乱数の最大値
#tickcount = 0; //Windowsが起動してからの経過時間
#tc1 = #max + 1; //Windows経過時間の下一桁
#start = 0; //カウント開始時のWindows経過時間
#delay = 0; //遅延時間
#count = 0; //計算回数
#temp = 0;


// Windows経過時間が変化するまでの計算回数をカウントする処理
// ばらつきがかなりでるのでちょうどいい
#start = tickcount;
#tickcount = tickcount;

while (#start == #tickcount) {
#tickcount = tickcount;
#count = #count + 1;
}

#delay = #count * 9;


// 経過時間から数値を取得する(0~#rammax)
while (#tc1 > #rammax) {

//経過時間をすすませる
while (#temp < #delay) {
#temp = #temp + 1;
}

//経過時間の下一桁を取得
$tickcount = str(tickcount);
$tc1 = rightstr($tickcount,1);
#tc1 = val($tc1);

}

// 取得した数値が0~#rammaxのため#minをたして帳尻をあわせる
#number = #tc1 + #min;


//確認用
message "乱数マクロの結果は " + str(#number) + " です。";


endmacro;

 正直いいまして一部手抜きをしています^_^; #min と #max の値をチェックすべきなんですが、はしょっています。必ず1桁にして #min よりも #max がおおきくなるようにしてください。

カテゴリ

トラックバック(0)

このブログ記事を参照しているブログ一覧: 秀丸エディタ用の乱数作成マクロ

このブログ記事に対するトラックバックURL: http://asakawa.sakura.ne.jp/cgi-bin/mt/mt-tb.cgi/142

コメントする


画像の中に見える文字を入力してください。

このブログを購読

購読する

このブログ記事について

このページは、浅川こうすけが2007年10月 2日 23:33に書いたブログ記事です。

ひとつ前のブログ記事は「FPS酔いの秘密に迫る!? これがFPS酔い克服方法だ!」です。

次のブログ記事は「円天の仕組みをわかりやすく説明」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

最近のコメント

Powered by Movable Type 4.01