Panic Shooter を Java Applet に移植した

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 で、面を自作できます (後述) 。以下はぼくが作ったステージ。

本家のようなバランスのいいステージを作るのは根気とセンス的に難しいですね。キワモノばっかり作っちゃいます。

あと、タトくんが作ってくれたステージ。

みんな自作して公開するといいです。

自作の方法

という流れです。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#* が遅いなーと思ったという動機だったりする。効果があったかどうかは怪しい。