Programmer's Nightmare 改良案2

http://d.hatena.ne.jp/nishiohirokazu/20090328/1238228769 の続き。

心を鬼にして削除をする。

  • DEFENDは効果範囲がわかりにくいので削除
  • REMOVE_CARDを「直前のカードを取り除く」から「このカードの前1枚のカードを取り除く」に変更。INCREMENTやDECREMENTの対象になるように。
  • MULTIPLIERは「2倍2倍で増えて行くのか?」「無限ループ可能?」などと無用の混乱をもたらすので「先頭のビットだけが」などと条件を加えたくなったけど、それをやるとコードの上ではよけい複雑なルールになるんだよな。
  • id:TOKOROTEN案を採用した:「このカードにビットがおかれているすべてのプレイヤーが新しいビットを1つ得る。新しいビットはこのカードにおかれる。」が「このカードにビットがおかれているすべてのプレイヤーが新しいビットを1つ得る。新しいビットはこのカードの実行が終了したタイミングでこのカードにおかれる。」
  • POINTERも効果範囲がわかりにくいので削除
  • REPLACEの「デッキからカードを引き、任意の1枚を置き換える。」という説明は誤り。「任意の1枚を指定し、デッキから引いたカードで置き換える。」の順。漢数字だったのをアラビア数字に変更。
  • SWAP_CARDを「任意の2枚を交換」に強化。強すぎる疑惑はあるけどデッキに1枚のカードだし「任意のカードを任意の位置に移動」に弱化するとSEQUENCE_MODと同じものになってしまう。いままで使い道のなかったいらない子が一気にSEQUENCE_MODより強いカードになった。様子見。
  • 後だし強すぎるとの意見のあったTIME_DELAYの弱化。「[SKIP]トークンを手に入れる。[SKIP]トークンは任意のビットの直前に置く。プログラムカウンタがそこへ到達した際に、そのビットの処理をスキップしてトークンが削除される。」プログラム的にも任意のタイミングで割り込みができるよりこの方が楽。

とここまで書いて、いっそMULTIPIER, SWAP_CARD, TIME DELAYも削除してしまってはどうだろうと思った。