G-chan Square

じーちゃん/へたっぴの綴る、日々のつれづれとか。
twitterのまとめとゲームネタが中心。2015年からロードバイク/ミニベロ始めました。

Flexでいこう!~関東1都6県大決戦~

じーちゃんです。こんばんわ。

さて、じーちゃんなんですが……Flexを使ってFlashアプリ作ってみました。

ニコニコ動画に下のような動画があるんですよ。

初期配置が各地図上の配置になっていて、そこから各県のドットがライフゲームのようにごちゃごちゃ動いて他の県を侵食していくというものです。

んで、これぐらいなら、「じーちゃんでも作れるじゃろ~」ということで作ってみました♪

 

はい! というわけで、作ってみたものが下のものです。
flexでできているので、flash player ver9 以上が必要です。入れてない方は、入れてみてください。

遊び方は、「再生」のボタンを押すだけ! あとは見てるだけ!w


上のは、200x200のピクセルデータを各ドット2x2の四角形で描画しています。
じーちゃんの買ったばかりのCore2Duoのマシンでは、だいたい20フレーム/秒くらい出るんですが、PCによっては激重かも知れません……(--;

で、ルールなんですが、200x200の色のついたドットは、毎フレーム生死判定をしています。
(最初、flash playerで、200x200の4万ドット分をループ回すだけでエラい重かった……)
んで、自分と隣接するまわりのドット(上下左右+斜め)で白以外のドットの数を数えます。このとき、自分は除きます。
それから、そのドットの中で自分と同じ色のドットの数も数えます。

最終的には、「自分と同じ色のドットの数÷白以外のドットの数」の確率で生き残ります。

例を挙げると……

赤赤赤
赤赤青
赤青青

となっていた場合には、真ん中の赤は、自分と同じ色のドットの数(=5)÷白以外のドットの数(=8)なので、62.5%の確率で生き残ります。

白白白
赤赤青
赤青青

となっていた場合には、真ん中の赤は、自分と同じ色のドットの数(=2)÷白以外のドットの数(=5)なので、40%の確率で生き残る……というわけです。

これを全部のドットに処理していきます。

ただし、ルールに例外があって、生存確率80%以上の場合には必ず生き残ります。
これをやらないと、ドットがちりぢりになってしまってかなりカオスなことになっちゃいますw

んで、まだ調整が足りないので、単にぼーっと見ていても延々決着がつきません。
なので、カウントが2000を超えると、100カウントごとに強制不死モードが一定時間発動します。
不死モードとは、ランダムに選ばれた色のドットが一定時間死ななくなるモードです。死なないので、その時間内は増殖する一方です。ぼーっと見てたら、急にぶわーっと増えたらそれが発動していると思っていただければOKですw

あと、逆に、強制死亡モードというのもあり、適当なタイミングでランダムで選ばれた色が、一定数に達するまで必ず死亡します。ぼーっと見てたら、急にシュッとしぼんだらそれが発動していると思っていただければOKですw

あと、色と名前と初期ドット配置は変更可能です。色と名前は見ての通りですが、ドットの配置はテキストエリアに数字の羅列として書かれているので、200x200のドット配置テキストデータを用意して、テキストエリアに貼り付けて「適用」ボタンを押すとオリジナルのドット配置でできまする♪

ニコニコのを見てると、結構動きが激しい(=ドットの塊が縦横無尽に移動する)んですが、この動きを再現することができません。
どういう法則性なんだろうか……謎です。

あと、ニコニコでは「死亡回避補正」なるものがあるようですが、これにはそれはありません。
なので……東京都は開始30秒で消滅することがありますw

見てみてちょっと楽しかったらコメント求むw
もしくは、じーちゃんのMyMiniCityでも踏んでくださいw

コメント(3)

てぶくろ 返信

ん~なんかダラダラ見ちゃうね。
ちなみに埼玉が結構強いw

みちる 返信

東京結構持ちこたえました。
最後は栃木と埼玉が残って、栃木一色になりましたねぇ。

じーちゃん 返信

どうもありがとう~ (´∀`)
動きがより派手になってるダイナミック版もよろしく♪

>てぶくろ
そうなんよね。なんか埼玉強いんよね~
HP(=広さ)的には千葉と大して変わらないんだけど、
なぜか毎回がんばる埼玉。サイタマパワーかしら?w

>みちるさん
栃木、茨城、群馬は本命ですね~
ちなみに、まぁまぁな広さな割りに千葉はあまりいいところは見ないッスね。
ときどきヒマつぶしに見に来てくだせー

コメントする