雛まつり2~文字列乱数シード変換~

※ウディタリアン向け


■文字列から乱数シードを生成する
--------------------------------------
文字列から乱数シードを抽出すると、
雛型戦略のように、文字列から一意の技パラメータが生成できます。
抽出した乱数シードから、乱数を生成してるだけですが。

ウディタにはそんな機能はついていないため、
自分で実装する必要があります。

与える文字が1~9、a~Z、あ~ンなど「限られた数」で
あれば、1文字ずつ取得して条件分岐して一意の乱数シードを
与えればよいです。

雛型戦略の場合、漢字も含めて乱数生成する必要があった
ため、少し悩みました。

簡単に説明すると、以下の方法です。


1.文字列をコモンセルフ変数5に格納する
2.文字列を不透明度0でピクチャ表示

「\font[1]\E\cself[5]」
※\font[1]はウディタに標準設定されている「Arial Black」です

画像

※わかりやすくするため不透明度は255にしてます

3.上記の通り、漢字は「Arial Black」で表示させると
 「文字化けして横幅の長さが不定になります」
 これを利用して、2.で表示したピクチャの横幅サイズを取得し、
 乱数シードとします

4.あとは処理した文字数とかを3.の乱数シードに乗算したり、
 幅をもたせます。


~完成!~


あえて文字化けさせる、というのがミソですね。
条件分岐を使ってないので処理も高速です。
ただし、横幅のサイズの範囲は限定されるので(1~100の百通りしかないかもしれない)
そこは半角数値があったら乱数シードをいじくったり、文字数で乱数シードをいじくったり、
対象の文字の性質を利用して、できるだけ一意になるよう頑張ります。

+前回紹介した技名のキーワード検索によるパラメータ増減とかも補正されます
http://pokan.at.webry.info/201503/article_2.html



以上、私が雛型戦略で仕込んだ技生成処理のおおまかな説明になります。

ブログ気持玉

クリックして気持ちを伝えよう!

ログインしてクリックすれば、自分のブログへのリンクが付きます。

→ログインへ

なるほど(納得、参考になった、ヘー)
驚いた
面白い
ナイス
ガッツ(がんばれ!)
かわいい

気持玉数 : 5

なるほど(納得、参考になった、ヘー) なるほど(納得、参考になった、ヘー)
驚いた
面白い
ナイス

この記事へのコメント

へべ
2015年03月04日 23:12
おぉ!こんな仕組みになってましたか!
文字のコード取得はできなかったと思ってたので不思議に思ってました!
っK
2015年03月04日 23:20
文字化けさせる、というところに私らしさが入っている
気がして、結構お気に入りの発想ですw

この記事へのトラックバック