ric-element氏の
【誰でも作れる】侵略シリーズ【コピペで遊べる】
の解説を元に作られたスクリプトです。
ライフゲームとは違いますが、あるアルゴリズムに従って勢力が互いに陣地を増やし合い、最終的に1つの勢力が残るようになっています。 ここに置いてある版は、別の方が http://aruru.s10.xrea.com/lifegame.zip で配布されている Javascript版を改造し、
画像を使わない方法で描画するように改造してあります。
CSS版、Table版、Table高速版、Canvas版、おまけ版、Readme.txt が入ってます。
対応ブラウザの動作環境に応じて使って下さい。Canvas版が現在の最終版です。
やっつけで作ったもの。pgm形式のASCII 画像データを侵略シリーズで利用可能なデータに変換する際の、テキスト整形の助けになるかもしれません。ステップ1〜3の順で作業を進めます。pgm画像とはなんぞやという人や、このツールを使わないで作る方法については、下の記事"画像→数値データ作成方法"も参考にして下さい。
画像→数値に変換するいくつかの方法を紹介します。
●動作限界サイズを試してみた(Canvas版)
- 300x300ピクセルでは、ブラウザでは実行不能。too many constructor arguments エラー。
- 255x255ピクセルでは、初期状態の描画される。その後、動かない。
- 200x200ピクセルでは、描画更新に1〜2秒かかり、激重です。
( CPU:約1GHz程度)
170x130ピクセル程度でも、たいしたデータ量になります。変換処理に時間がかかり、
古いブラウザでは処理がもたつくかもしれません。十分注意して下さい。
ブラウザ上で再生するので大きなデータの再生には向きません。PCの環境、使用するブラウザによっても限界があります。
●GraphicConverterを使う方法。(MacOSX向け)
画像変換アプリケーションの GraphicConverterを試用することで、簡単に画像を数字に変換できます。
16色形式の画像をASCII形式で保存(ダイアログでプルダウンメニューから全ての保存形式の中から選択)。
〜txtと〜.palという2つのファイルが保存されるので、txt ファイル内のタブをカンマに置き換えて編集。
http://ja.wikipedia.org/wiki/Graphicconverter
●pgm形式について
UNIXで使われている、あまり知られていない保存方式。
PPM形式での一種で、 ppm(フルカラー)、 pgm(グレースケール), pbm(白黒)
保存方法がテキスト(ASCII)とバイナリの2種類あり、ピクセル並びがそのまま格納されてるのでプログラムで利用しやすいとか。
侵略シリーズで利用可能なデータを作るにはグレースケールのpgm形式のASCII形式で保存するのがやり易かったです。
多くの画像形式を扱える、GIMPや GraphicConverter なら、この形式の読み書きに対応しています。
●GIMPを使い、pgmまたは pbm形式の画像として保存する方法(Windows , MacOSX , Linux 向け)
http://ja.wikipedia.org/wiki/GIMP
GIMP手に入れる
↓
GIMPで、MAPを描いたり、既存の画像を読込んで
↓
16色に減色する
↓
グレースケールのpgm形式(ASCII形式)で画像を保存
↓
テキストエディタで読込み、整形、置換
↓
出来上がったデータを コピペする
最初に
オープンソースの画像編集アプリケーション、GIMPを使い、画像をpgmまたは pbmフォーマットのASCII形式で保存し直します。
pgm(グレースケール), pbm フォーマットのASCII形式は、画像データのピクセルの並びを数値で記録する方式です。
拡張子をpbm→ txtに直したものをTeraPad等のテキストエディタで読込んで編集。
ヘッダ部分(マジックナンバーと、高さと幅、輝度)は必要ないので削除して下さい。
P1#マジックナンバー
28 10 #高さ#幅
255# 輝度
次に、残ったデータ部分を「連続置換」コマンドを使い、GIMPで保存した場合、改行で区切られるので、データ中にあるすべての改行をカンマに置換する。その後、データを見て、大きすぎる数字があれば、そのつど、全ての箇所に対して「連続置換」する「98」→「1」、「65」→「2」
時間と、手間がかかりますが確実です。
(テキストエディタTeraPadを使う場合)