Programmer's Nightmare風のゲーム

眠れないので、Programmer's Nightmare風のゲームをつくる。これ以前から「遊戯王的なカードバトルからランダム性を抜いた、読みでコンボを作って勝つゲームを作りたい」と思っていたので。まあでも、モンスターは飾り。ネーミングどうしようかなぁ。スパゲッティなコードということでスパゲッティを入れようかと思っていたけどモンスターの戦いになったからスパゲッティモンスターとか…別のものになってしまう。

  • カードを配る
    • これは「場の設定」というべき共有の情報で、多くのカードゲームと違って手札は存在しない。
  • ビット置きフェーズ
    • 先手後手交互に「ビット」を置いて行く。OPTION: 3人以上の場合は「A, B, C, C, B, A」の順がいいのではないかと思っているけどまだ試していない。
    • ビット置きフェーズで、すでにビットが置かれているカードに置いてもかまわない。もちろん自分のビットを重ねてもOK
      • RATIONALE: 後手の不利を減らす
    • 1手1分程度のタイムリミットを設ける
  • 行動フェーズ
    • OPTION: サイコロを振って(コイントスでもOK)1/2の確率で実行順序を決める。逆順実行の場合は列の末尾から行動を開始する。
      • RATIONALE: 「ビットを重ねてOK」という修正が入ってもまだ先手有利だったらこれを使う
    • HPが0またはビットが0になれば負け、HPが20になれば勝ち

カード種類

  • MIMIC PC進行方向の2枚をコピー
  • ECHO PC進行と逆方向の2枚をコピー
  • INC 任意の1枚のカードのアラビア数字を1増やす
  • DEC 任意の1枚のカードのアラビア数字を1減らす
    • 負になってもかまわない。ZAPを反転して自分を回復するのはアリ
  • ZAP 1人のプレイヤーに1のダメージ
  • HEAL 1人のプレイヤーのHPを2回復
  • KILL_CARD このカードの直前または直後のカードを取り除く
  • KILL_BIT 任意の1つのビットを取り除く
  • MOVE_CARD 1枚のカードを任意の場所に移動する。このカードを移動した場合はPCも移動する。
  • MOVE_BIT 任意の1個のビットを任意のカードに移動する
  • CHARM 1つのビットを自分の色に変更する。このカードは消滅する。
  • WORM 任意のカードに自分のビットを追加する。ただし追加はターン終了時
    • WORMとコピーのセットで無限ビット追加になるのを回避するため
  • JUMP PCを3カード以上離れた任意のカードにジャンプさせる。一度ジャンプするとジャンプ先はそのカードに固定される。ジャンプ先が削除されると再度指定可能になる。
  • BOMB 1人のプレイヤーに4のダメージを与えてこのカードを取り除く
  • REVERSE PC進行方向を反転する
  • SPAWN このカードと2個以上ビットののっているカードに自分の色のビットを追加する。
  • FLOAT 1つ前または後ろに移動し、PC進行方向の次のカードをコピーする。
  • SURGE このカードにビットの乗っている人に1、乗っていない人に3のダメージ

以上、各1枚で合計18枚。

  • 名前を短くわかりやすく変更
  • WORMがINCの対象にならないように弱化された他は、かなりのカードが強化されている。
    • RATIONALE: Nightmareでは「使い物にならないカード」があるのでそこへ相手のビットを移動させることで安全に無効化できたわけなのだけど、各カードに力の差があまりないと不用意なところに移動するとそれを利用して逆転されるかもしれないのでリードしていても油断していられなくなった。
    • たとえばSPAWNは元はMULTIPLIERだったけど、これはBIT_MOVERとセットにならないと全く意味がない上に、BIT_MOVERも今のMOVE_BITと違って隣接カードにしか移動できなかったのでとても「いらない子」だった。強化されたSPAWNは単体でも「自分の色を2つ重ねて2回行動しちゃおう」に対する抑止力になる。もちろんMOVE_BITとセットで持つと凶悪な事態が発生する。強すぎるなら「このカードと」を削る。
  • デッキからカードを引く命令はなくなった
    • デッキをそもそも用意しない。全部配る。
    • RATIONALE: ルールの説明がしやすい。Nightmareではネガティブなカードが多少あったことでドローにリスクがあったが、ルールが複雑になるのでネガティブなカードを削除した結果、ドローもあまり意味がなくなった。
  • コピーに関して
    • コピーは「一時的にコピーされるカードの内容がコピーするカードに書かれているかのように振る舞う」
    • これはつまり[MIMIC][JUMP][X]の場合、JUMPでPCは移動するが命令自体は1枚のカードに[JUMP&X]と書かれているように振る舞うためXも実行されるということ。
    • また[MIMIC (A)][SURGE (B)][X]の場合、MIMICの実行ではMIMICのカードにSURGEの内容が一時的に書かれるのでAが-1, Bが-3になる。
    • 一時的にコピーされる関係上、[MIMIC][GOTO][X]ではロックが起きずどこへでも飛ぶことができる。
    • コピー対象を示す「PCの進行方向」などはカードの実行開始時点のものを使う。
      • RATIONALE: [MIMIC][REVERSE][ECHO]でREVERSEのせいでスタックがあふれるため
    • コピーされた複数枚の実行順序はコピー実行時のPCの向きで決まる。
  • ビットの追加に関して
    • ビットはPCの移動のタイミングで追加される
      • RATIONALE: WORMやSPAWN、コピーの組み合わせによる無限ビット増殖を防ぐため