「パスタロジック」ルール
----本文
人数 2人 / プレイ時間
入っているもの
コマンドカード16枚
フラグチップ10個×2色: フラグチップの色はプレイヤーと1対1対応しています。
カーソル(矢印コマ) 1個
インクリメントチップ 2個
デクリメントチップ 2個
ライフカウンタ(サイコロ) 2個
ゲームの目的
互いにプログラムを作り、実行しながら書き換え、相手のプログラムを動作不能にする
倒し方
相手のライフを0以下にする(エネルギー切れに相当)
相手の色のフラグを0個にする(プログラムが削除されたことに相当)
ルール説明
■概要
「パスタロジック」のゲームは「コマンド準備フェーズ」「フラグ配置フェーズ」「プログラム実行フェーズ」の3つで構成されます。
「コマンド準備フェーズ」では、コマンドカードを場に並べ、先手後手を決めてゲームの初期状態を決定します。
「フラグ配置フェーズ」では、各プレイヤーがフラグチップをコマンドカードに配置していきます。これがプログラム作りを表現しています。
「プログラム実行フェーズ」では、カーソルを動かしながらフラグの状態によってコマンドを実行していきます。このフェーズはゲームが終了するまで続きます。
■■コマンド準備フェーズ
3枚のBASICカードと、ランダムに選んだ5枚のカードをシャッフルします
カード机の上に表向きに並べ、最初に置かれたカードにカーソルチップを置きます。
各プレイヤーにフラグチップ5個を配ります。
ライフカウンタの初期値は5です。
先手後手を決めます。
■■フラグ配置フェーズ
先手が一つのコマンドカードを選び、そこに自分のフラグチップを配置します。
次に後手が一つのコマンドカードを選んでそこにフラグチップを配置します。
これを繰り返して手持ちのフラグチップを全部コマンドカードに配置します。
フラグチップをカードに置くことを「フラグを立てる」と呼びます。
フラグ配置フェーズでは同じコマンドに自分のフラグを2個以上立ててはいけません。
フラグはコマンドカードに配置した順に列を作ります。
これは「先に立てられたフラグの優先順位が高い」という事を意味しています。
どのコマンドにフラグを立てたかが勝敗に大きく影響しますが、はじめてプレイするときはどこにフラグを立てると有利なのかがわからないかもしれません。その場合は適当に配置してプログラム実行フェーズへ進み、どう実行されるのかを体験してみると良いでしょう。
■■プログラム実行フェーズ
カーソルが指しているコマンドカードにフラグが立っている場合、先頭フラグのプレイヤーが、コマンドを実行するかどうか選択する権利があります。実行しないという選択も可能です。
コマンドの発動が終った後、列に他のフラグがある場合は、次のフラグのプレイヤーに実行の権利が与えられます。
列の最後までこれを繰り返し、カード上の全てのフラグの処理が完了したら、カーソルを次のコマンドカードへ移動します。
カーソルが指しているコマンドカードにフラグが立っていない場合、カーソルは次のコマンドカードに移動します。
カーソルが最後のコマンドカードでの処理を終えたら、また最初のコマンドカードに戻ります。ゲームが終わるまでこれを繰り返します。
「自分のフラグはひとつのコマンドカードに一個まで」という制約は、最初にフラグを配置するときだけです。
AddFlag(フラグ追加)やMoveFlag(フラグ移動)のコマンド実行によってひとつのコマンドカードに複数のフラグが立つことは問題ありません。
■ゲームの終了
相手プレイヤーのフラグチップをすべて取り除くか、相手プレイヤーのライフを0以下にすると勝利です。
コマンドカードの一覧
フラグ系
■ AddFlag: BASIC: このコマンド以外の{1}枚のコマンドの末尾にフラグを追加する
■ MoveFlag: BASIC: このコマンド以外の{1}個のフラグを別のコマンドの末尾へ移動する
■ RemoveFlag: このコマンド以外の1枚のコマンドから{1}個のフラグを取り除く
■ Reorder: このコマンド以外の{1}枚のコマンドのフラグを任意に並び替える
■ Rotate: このカード以外のすべてのコマンドの末尾のフラグを先頭に移動する
■ FastPass: ライフを{1}減らし、このコマンド以外の{1}枚のコマンドの先頭にフラグを追加
ライフ系
■ Bug: BASIC: 相手プレイヤーのライフを{1}減らす
■ ForkBomb: 相手プレイヤーのライフを{2}減らす。起動フラグを取り除く
■ Debug: 起動フラグを取り除き、自分のライフを{3}増やす。
■ TradeOff: 自分のライフを{1}減らし、相手のライフを{2}減らす。
カード系
■ RemoveCommand: 任意のコマンドを立っているフラグごとゲームから取り除く。起動フラグを取り除く
■ Reverse: 自分のライフを{1}減らし、カーソルの進む向きを反転する
■ SwapCommand: このコマンドを任意のコマンドと交換する。コマンドに乗っているフラグとカーソルは共に移動する
■ Subroutine: このコマンドの前後{1}枚のコマンドからこのコマンド以外の1つを選び、カーソルが一時的に移動する。
パラメータ系
■ Increment: 任意のパラメータを{1}増やす
■ Decrement: 任意のパラメータを{1}減らす
コマンドカードの補足説明
Increment, Decrement は他のコマンドの強さ(波括弧で囲まれた数値, パラメータ)に対して影響を与えることができます。
Decrementでパラメータをマイナスにすることはできない。
パラメータにIncrement/Decrementが掛かっていることは、Increment/Decrementチップをコマンドカードに置くことで表現します。
IncrementされたパラメータがDecrementされた場合は両方のチップを置くのではなく、先に置かれたIncrementチップを取り除きます。逆も同様です。
Increment/Decrementチップはカーソルがそのカードを離れるタイミングで取り除かれます。
履歴と謝辞
このゲームの「コマンドの上にフラグが立つ」という着想はTom JollyによるProgrammer's Nightmare(2000)から得ています。このゲームが入手困難だったため、西尾がクローンを作り、中山ところてん氏とのテストプレイと議論によって実行フェーズでのランダム性をそぎ落とす変更を入れました(2009)。(ここに今回の件の謝辞をたす)