ルール
トランプOSの標準ルールです。命令だけを確かめるときは命令表を見てください。
トランプOSは、トランプ1組で遊ぶゲームです。各プレイヤーは「プロセス」になり、自分の前の13か所のカード置き場(メモリ)に命令のカードを並べ、決まった数の命令を実行しては次の人へ交代します。
用意するもの
- トランプ1組(52枚)。ジョーカーは使いません
- プレイヤーごとに次のもの
- PCの目印 1個(コイン、おはじきなど。置き場のカードの上や横に置けるもの)
- メモ用紙と筆記用具(レジスタ(R)の値を書きます)
- 人数:2〜4人
カードの値
トランプOSは13進数の世界です。カード1枚は、0〜12の13通りの値のどれか1つを表します(13進数1桁)。
| カード | A | 2〜10 | J | Q | K |
|---|---|---|---|---|---|
| 値 | 1 | 2〜10(数字のとおり) | 11 | 12 | 0 |
- Kを0とします。Kを13とすると、13は13進数では「10」となり、1桁に収まらないためです
- スート(♠♥♦♣)は値には関係しません。スートの意味は「命令」で決めます
- 値は10進数(0〜12)で書きます。13進数の数字の表記(10〜12を A〜C と書く方法)は使いません。トランプのA(エース。値は1)と、13進数の「A」(値は10)がまぎらわしいためです
場の配置
置き場(メモリ)
- 各プレイヤーの前に、カードを置く場所を13か所用意します。これを置き場と呼びます。置き場は、そのプレイヤー(プロセス)のメモリです
- 置き場の13か所には、0〜12の番地が付いています
- 置き場の1か所には、カードを1枚だけ表向きに置きます。カード1枚が1ワードです
- カードが置かれていない番地を空き番地と呼びます
- 机の広さに合わせて、0〜6番地と7〜12番地の2段に並べてかまいません。番地の順番が分かるように並べてください
- 自分の置き場にだけカードを置けます。ほかのプレイヤーの置き場には触れません(メモリ保護)
- 3
- 4
- 5
手札・山札・捨て札・お題
- 手札
- 各プレイヤーが手に持つカード。ほかのプレイヤーには見せません
- 山札
- 配り残したカードを、裏向きに重ねて机の中央に置いたもの
- 捨て札
- 使い終わったカード(置き場で上書きされたカードなど)を、表向きに重ねて山札の横に置いたもの
- お題
- 勝利条件に使う値。山札からめくったカードを、表向きで机の中央に置きます(「勝利条件:お題」)
机の上の全体図
2人で遊ぶときの、初期配置を終えた例です。
- 2
9
- 3
- 4
- 5
- 置き場は、各プレイヤーから見て左から番地の小さい順に並べます(向かいのプレイヤーの置き場は、こちらから見ると逆順に見えます。図では、どちらの置き場も番地の小さい順に描いています)
- 山札・捨て札・お題は、机の中央に置きます。手札は各プレイヤーが手に持ちます
- 3人以上のときも、各プレイヤーが自分の前に置き場を作り、山札・捨て札・お題を机の中央に置きます
レジスタとPC
各プレイヤー(プロセス)は、レジスタ(R)とPCを1つずつ持ちます。
| 名前 | 意味 | 持ち方 | 開始時の値 |
|---|---|---|---|
| レジスタ(R) | 計算に使う値を1つ入れておく場所。値は0〜12 | メモ用紙に値を書く(例:「R=5」) | 0 |
| PC(プログラムカウンタ) | 次に実行する番地。値は0〜12 | 置き場のその番地に目印を置いて示す | 0(0番地に目印を置く) |
- PCが12番地の次に進むときは、0番地に戻ります(ラップ)
命令
置き場のカード1枚が、1つの命令です。カードのスートで命令の種類が決まり、カードの値(0〜12)がその命令のオペランド(命令が使う値)になります。例と足し算の早見表は「命令表」のページにあります。
命令表
| スート | 命令 | 動作 |
|---|---|---|
LOAD n読み込み |
Rを n にする(R ← n) | |
ADD n足し算 |
Rを「R+n を13で割った余り」にする | |
JUMP nジャンプ |
次に n 番地を実行する(PC ← n) | |
OUT出力 |
Rの値をI/Oポートに出力する。カードの値は使わない |
- 空き番地は、何もしない命令(NOP)とします
- n はカードの値です。オペランドは即値で、カードの値そのものを使います(n番地のカードの値ではありません)
- I/Oポートは1つだけで、そこに出力装置がつながっていると考えます。I/Oポートが1つだけなので、OUTはポートの番号を指定しません
- I/Oポートへ出力された値をお題と比較し、同じなら勝ちとなります(「勝利条件」)。違っても、特にペナルティはありません
- 1つの命令を実行することを1ステップと数えます。どの命令も1ステップです。1回の手番で実行できる命令の数(タイムスライス)は3命令です(「手番」)
- 各スートが13枚ずつあるので、どの命令のカードも13枚ずつあります
- ♥K(ADD 0)は、Rを変えません。NOPとして使えます
- 自分自身の番地へのJUMP(例:5番地に♣5)は、その番地を実行し続けます(待ちのループ)。抜け出すには、そのカードを別のカードで上書きします(「カードを置く」)
1命令の実行手順
- PCの目印がある番地のカードを見る
- カードがあれば、カードのスートで命令を決め、命令表のとおりに実行する
- Rが変わったら、メモを新しい値に書き直す
- PCを進める
- JUMP n なら、PCの目印を n 番地へ動かす
- それ以外の命令なら、PCの目印を1つ次の番地へ動かす。12番地の次は0番地(ラップ)
ゲームの流れ
- 準備:最初のプレイヤーを決め、カードを配る
- 初期配置:全員が同時に、手札から自分の置き場にカードを置く
- お題:山札からお題をめくる
- 手番:最初のプレイヤーから時計回りに手番をくり返す。勝つ人が出たらそこでゲームを終わる(「勝利条件」)
カードは、自分が実行している間を除いて、いつでも置き場に置けます(「カードを置く」)。
準備
- ジョーカーを抜いて、トランプを52枚にする
- じゃんけんなどで最初のプレイヤーを決める。最初のプレイヤーがプレイヤー1で、そこから時計回りにプレイヤー2、3、4とする
- 52枚をよく切り、プレイヤー1から時計回りに1枚ずつ、各プレイヤーに5枚ずつ配る。これが各プレイヤーの手札になる
- 残りのカードは、裏向きに重ねて机の中央に置く。これが山札になる。山札の横に、捨て札を置く場所を空けておく
- 各プレイヤーは、自分の前に置き場(0〜12番地)を用意し、PCの目印を0番地に置き、メモに「R=0」と書く
人数ごとのカードの枚数は次のとおりです。
| 人数 | 手札(合計) | お題 | 最初の山札 | 山札が尽きるまでの周回(目安) |
|---|---|---|---|---|
| 2人 | 10枚 | 1枚 | 41枚 | 約20周 |
| 3人 | 15枚 | 1枚 | 36枚 | 12周 |
| 4人 | 20枚 | 1枚 | 31枚 | 約7周 |
- 1周(全員が1回ずつ手番を行う)で、人数分のカードが山札から減ります
- 山札が尽きたときの扱いは「特殊なケース」のとおりです
初期配置
- 全員が同時に、手札から好きな枚数(0〜5枚)のカードを、自分の置き場の好きな番地に置きます
- 置く枚数に決まりはありません(1枚も置かなくてもかまいません)
- 全員が置き終えたことを確認できたら、初期配置を終えます
お題
- 初期配置が終わったら、山札の一番上のカードをめくり、表向きで山札の横(机の中央)に置きます。これがお題です
- Kをめくったときは、めくり直します。お題の決め方と勝ち方は「勝利条件」のとおりです
手番
最初のプレイヤー(プレイヤー1)から時計回りに、1人ずつ手番を行います。手番は次の手順で行います。
- 引く:山札の一番上のカードを1枚引き、手札に加える
- 置く(してもしなくてもよい):手札から好きな枚数のカードを、自分の置き場に置く(「カードを置く」)
- 実行の開始:このタイミングからコンテキストスイッチが終わるまで、自分の置き場にカードを置けない
- 実行:PCの番地から命令を1つずつ、3命令(タイムスライス)実行する。実行のしかたは「1命令の実行手順」のとおり。Rが変わったらメモを書き直す
- コンテキストスイッチ:次のプレイヤー(時計回りで左隣)の手番にする
カードを置く
- 手札のカードを、自分の置き場の好きな番地に表向きに置きます。1回に何枚置いてもかまいません
- 置けるとき:自分の手番の「3. 実行の開始」から「5. コンテキストスイッチ」が終わるまでの間を除いて、いつでも置けます
- ほかのプレイヤーの手番の間にも置けます
- 初期配置の間と、自分の手番の「2. 置く」でも置けます
- 上書き:カードがある番地に置いてもかまいません。元のカードは捨て札にします。PCの目印がある番地にも置けます(次に実行するときは、新しいカードを実行します)
- 置いたカードは、手札に戻したり、別の番地へ動かしたりできません。変えたいときは、別のカードで上書きします
- PCの目印は、命令の実行でだけ動きます。手で動かしてはいけません
- 置けるのは自分の置き場だけです(「置き場(メモリ)」のメモリ保護)
特殊なケース
カードに関するケース
| ケース | 裁定 |
|---|---|
| ジョーカー | 使いません。準備で抜いておきます(「準備」) |
| 上書きされたカード | 捨て札にします(「カードを置く」) |
| 山札が尽きた | 山札から引こうとしたときに山札が無ければ、捨て札をよく切り、裏向きに重ねて新しい山札にしてから引きます。お題のカードは、新しい山札に混ぜません |
| 山札も捨て札も無い | その「1. 引く」は行わず(引かずに)、手番を続けます |
| 手札が0枚 | かまいません。カードを置けないだけで、手番はふつうに行います |
| 手札の枚数 | 上限はありません |
| 置き場の13か所がすべて埋まった | かまいません。それからは、上書きでだけカードを置けます |
命令・PCに関するケース
| ケース | 裁定 |
|---|---|
| 自分自身の番地へのJUMP(例:5番地の♣5) | 正しい命令です。その番地を実行し続ける(待ちのループ)ので、手番は3命令ともそのJUMPを実行して終わります。抜け出すには、そのカードを上書きします |
| PCの目印がある番地にカードを置く・上書きする | 置いてかまいません(自分の実行中を除く)。次にその番地を実行するときは、新しいカードを実行します(「カードを置く」) |
| 空き番地へのJUMP | JUMPは正しく実行されます。その番地を実行しようとした時にまだ空きであった場合、NOPとして扱われます |
勝利条件
お題
- 初期配置が終わったら、山札の一番上のカードをめくり、表向きで山札の横(机の中央)に置きます。このカードの値がお題です。スートは関係ありません
- めくったカードがK(値0)のときは、そのKを捨て札にして、次のカードをめくり直します。Kでないカードが出るまでくり返します
- Rは0から始まるので、お題が0だと、0番地に♦を1枚置くだけで勝ててしまうためです
- お題は、ゲームの終わりまで変わりません
勝ち方
- ♦(OUT)で、お題と同じ値を出力したプレイヤーの勝ちです。これを当たりと呼びます
- 当たりを出したプレイヤーは、その手番の残りの命令を実行せず、その時点で勝利が確定します
- 当たりが出たら、そこでゲームを終えます
用語集
ゲームの中での意味を書きます。
- プロセス
- ゲームの中での各プレイヤーのこと。自分の置き場・レジスタ(R)・PCを1つずつ持つ
- 置き場(メモリ)
- 各プレイヤーの前にある、カードを置く13か所の場所。番地0〜12が付いている
- 番地
- 置き場の中の場所の番号(0〜12)。単に「番地」と言えば、自分の置き場の番地を指す
- ワード
- 置き場の1か所に置くカード1枚のこと。値は0〜12
- 空き番地
- カードが置かれていない番地
- レジスタ(R)
- 各プレイヤーが1つずつ持つ、値(0〜12)を1つ入れておく場所。メモ用紙に書いて持つ
- PC
- プログラムカウンタ。次に実行する番地。置き場に置いた目印で示す
- 命令
- 置き場のカードが表す動作。カードのスートで、どの命令かが決まる
- オペランド
- 命令が使う値。カードの値(数字)で決まる
- 手番
- 各プレイヤーが順に行う、引く・置く・実行・コンテキストスイッチの1回分
- 周
- プレイヤー1から最後のプレイヤーまで、全員が1回ずつ手番を行うこと
- タイムスライス
- 1回の手番で実行できる命令の数。標準ルールでは3命令
- コンテキストスイッチ
- 手番を終えて、次のプレイヤーへ交代すること
- I/Oポート
- 命令で値を出力する、置き場の外への出口。標準ルールでは1つだけ。♦(OUT)でRの値を出力する
- 手札
- 各プレイヤーが手に持ち、まだ置き場に置いていないカード
- 山札
- 配り残したカードを、裏向きに重ねて机の中央に置いたもの
- 捨て札
- 使い終わったカードを、表向きに重ねて山札の横に置いたもの
- お題
- 勝利条件に使う値。山札からめくったカード(K以外)で決める
- 当たり
- ♦(OUT)で出力した値が、お題と同じなら当たり(勝ち)