命令表
カードの値、命令、足し算の早見表をまとめたページです。くわしい説明は「ルール」のページにあります。
カードの値
カード1枚は、0〜12の13通りの値のどれか1つを表します。スート(♠♥♦♣)は値には関係しません。
| カード | A | 2〜10 | J | Q | K |
|---|---|---|---|---|---|
| 値 | 1 | 2〜10(数字のとおり) | 11 | 12 | 0 |
命令
置き場のカード1枚が、1つの命令です。カードのスートで命令の種類が決まり、カードの値 n がその命令のオペランド(命令が使う値)になります。
| スート | 命令 | 日本語名 | 動作 | 例 |
|---|---|---|---|---|
LOAD n |
読み込み | Rを n にする(R ← n) | ♠5:Rを5にする | |
ADD n |
足し算 | Rを「R+n を13で割った余り」にする(足し算の早見表) | R=10 のとき ♥4:10+4=14、14÷13の余りは1なので、Rを1にする | |
JUMP n |
ジャンプ | 次に n 番地を実行する(PC ← n) | ♣7:次に7番地を実行する | |
OUT |
出力 | Rの値をI/Oポートに出力する。カードの値は使わない | R=2 のとき ♦(どの値でも):「2」を出力する |
- 空き番地は、何もしない命令(NOP)とします
- n はカードの値です。カードの値そのもの(即値)を使います(n番地のカードの値ではありません)
- I/Oポートへ出力された値をお題と比較し、同じなら勝ちです(当たり)。違っても、特にペナルティはありません
- ♥K(ADD 0)は、Rを変えません。NOPとして使えます
- 自分自身の番地へのJUMP(例:5番地に♣5)は、その番地を実行し続けます(待ちのループ)。抜け出すには、そのカードを別のカードで上書きします
1命令の実行手順
- PCの目印がある番地のカードを見る
- カードがあれば、カードのスートで命令を決め、命令表のとおりに実行する
- Rが変わったら、メモを新しい値に書き直す
- PCを進める
- JUMP n なら、PCの目印を n 番地へ動かす
- それ以外の命令なら、PCの目印を1つ次の番地へ動かす。12番地の次は0番地(ラップ)
足し算の早見表
♥(ADD n)を実行したあとのRの値です。行が今のRの値、列が足す数 n(カードの値)です。R+n が13以上のときは、13を引いた値になります(13で割った余り)。
例:R=9 のとき ♥7(ADD 7)なら、9の行と7の列が交わるマス(太枠)を見て、Rを3にします(9+7=16、16÷13の余りは3)。
色の付いたマスは、R+n が13以上になり、13を引いたマスです。
| Rn | 0K | 1A | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11J | 12Q |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| 1 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 0 |
| 2 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 0 | 1 |
| 3 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 0 | 1 | 2 |
| 4 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 0 | 1 | 2 | 3 |
| 5 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 0 | 1 | 2 | 3 | 4 |
| 6 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 0 | 1 | 2 | 3 | 4 | 5 |
| 7 | 7 | 8 | 9 | 10 | 11 | 12 | 0 | 1 | 2 | 3 | 4 | 5 | 6 |
| 8 | 8 | 9 | 10 | 11 | 12 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 9 | 9 | 10 | 11 | 12 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| 10 | 10 | 11 | 12 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| 11 | 11 | 12 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 12 | 12 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
1手番の手順
- 引く:山札の一番上のカードを1枚引き、手札に加える
- 置く(してもしなくてもよい):手札から好きな枚数のカードを、自分の置き場に置く
- 3命令を実行:PCの番地から命令を1つずつ、3命令(タイムスライス)実行する。実行を始めてから交代するまでは、自分の置き場にカードを置けない。
- 交代:次のプレイヤー(時計回りで左隣)の手番にする(コンテキストスイッチ)