tosik さんが公開している セルオートマトンを用いたシューティングゲーム (Panic Shooter) がものすごく面白かったので、Java Applet に移植しました。tosik さんに公開を快諾していただいたので、公開します。こちら。
http://dame.dyndns.org/misc/pshooter/
操作方法は、矢印で移動、スペースでショット、R でやり直し、P でポーズです。
本家のステージ
本家 Panic Shooter のステージを移植したものです。
URL が異様に長いのは、ステージデータを全部 URL に持たせているためです。
自作のステージ
http://dame.dyndns.org/misc/pshooter/?e で、面を自作できます (後述) 。以下はぼくが作ったステージ。
- fish
- battery
- candlesticks
- lace
- compass (クリアしたことない)
本家のようなバランスのいいステージを作るのは根気とセンス的に難しいですね。キワモノばっかり作っちゃいます。
あと、タトくんが作ってくれたステージ。
みんな自作して公開するといいです。
自作の方法
- http://dame.dyndns.org/misc/pshooter/?e を開く。
- ステージデータを入力し、preview する。気に入るまで繰り返す。
- 気に入ったら末尾に書いてある URL をブログか何かで公開する。
という流れです。URL が長いのが気になる人は tinyurl を使うといいと思います。
ステージデータは以下のようなテキストで入力します。かなりやりにくいですが、気合いで乗り越えてください。
# ←で始まる行や空行はコメント # ライフ life: 10 # 自機の開始位置: (x, y) start: 13, 13 # ゴールの位置 (4x4 以上): (x, y, 横幅, 高さ) goal: 30, 10, 10, 10 # ステージの作者名 author: mame # ステージのコメント comment: sample stage # クリア時に表示されるメッセージ (数字と英大文字と記号のみ。英小文字は不可) # ※このテキストデータを失うとクリアメッセージは編集できなくなります。 # また、クリアしないと参照もできなくなります。 message: CLEAR! # 初期盤面 (: がない行で、コメント行や空行でなければ盤面データ行になります) # `a' : 生きているセル # `b' : 死にかけセル (次に c になる) # `c' : 死にかけセル (次に消える) # '.' : 空のセル # ※盤面の大きさは変えられます。 #00000000011111111112222222222333333333344444444445 #12345678901234567890123456789012345678901234567890 .................................................. # 00 .................................................. # 01 .................................................. # 02 .................................................. # 03 .................................................. # 04 .................................................. # 05 ......................abc......................... # 06 ......................abc......................... # 07 .................................................. # 08 .................................................. # 09 ..........................abc..................... # 10 ..........................abc..................... # 11 .................................................. # 12 .................................................. # 13 .............................abc.................. # 14 .............................abc.................. # 15 .................................................. # 16 .................................................. # 17 ..........................abc..................... # 18 ..........................abc..................... # 19 .................................................. # 20 .................................................. # 21 ......................abc......................... # 22 ......................abc......................... # 23 .................................................. # 24 .................................................. # 25 .................................................. # 26 .................................................. # 27 .................................................. # 28 .................................................. # 29
注意点。
- 事故で作成中のデータが飛ぶ可能性があるので、手元のエディタで編集してブラウザにコピー&ペーストして preview する、というやり方をおすすめします。矩形選択・ペーストの機能があるエディタだと少しやりやすいです。
- クリアメッセージは後で編集できない (クリアしないと参照もできない) ので、手元にソースを保存しておくといいかも。
- 大きいステージや複雑なステージだと URL がとても長くなります。Internet Explorer の仕様として、2083 文字を超えると開けなくなります。それを超えても Firefox では開けますが、8000 文字くらいにハードリミットがあるはずです。
- 自作している間が一番楽しいです。はまりやすい人は、気がついたら夜が明けている可能性があるので注意してください (笑)
余談
自作ステージを公開する人は、このエントリにトラックバックすると、ぼくが見つけやすくていいです。
こないだ Ruby の多倍長整数を高速化したのは、これの URL をエンコード・デコードするのに多倍長整数を使っていて、Bignum#* が遅いなーと思ったという動機だったりする。効果があったかどうかは怪しい。