名称
cribbage - カードゲームクリベッジ
書式
/usr/games/cribbage [ -req ] name ...
解説
cribbage は、一方をプログラムが担当し他方をユーザが担当する形式で、 カードゲームのクリベッジをプレイします。 始めに、プログラムはユーザにゲームのルールが必要か尋ねます。- 必要と答えたなら、 According to Hoyle から適切な節を more (I) で表示します。
cribbage オプションには次のものがあります:
-e | プレイヤが自分の手札やクリブの得点化を間違えた時、正しい得点の 説明を教えます。(これは特に始めたてのプレイヤに便利です。) |
-q | すべてのメッセージを短い形式で表示します。- これはこのオプションを 指定せずにゲームをプレイしてきたユーザにのみお薦めします。 |
-r | プレイヤにカード束をカットするよう求めるのではなく、 プログラムがランダムにカード束をカットします。 |
最初のゲーム開始時に、最初のクリブを誰が取るかを 決めるために、カード束をカットするようプレイヤに求めます。ユーザは カード束の何枚下のカードをカットするかを示す 0 から 51 の間の数字を 答えなければいけません。よりランクの低いカードをカットしたプレイヤが 最初のクリブを取ります。1 回以上ゲームをプレイすると、前回の ゲームの敗者が今回のゲームの始めのクリブを取ります。
手札を配るごとに、プログラムはまずプレイヤの手札と誰のクリブであるかを 表示し、それからクリブへ 2 枚のカードを捨てるようプレイヤに求めます。 カードは 1 行につき 1 枚ずつ、後で説明するようにして指定します。
カードを捨てた後、(プレイヤのクリブなら) プログラムがカード束を カットするか、(プログラムのクリブなら) プレイヤにカード束をカットするよう 求めます。 後者の場合、適切な応答は残りの 40 枚のカードから何枚下のカードをカットするかを 示す 0 から 39 の数字です。
カード束をカットした後、子 (クリブを持たないほう) が最初のカードを 出してプレイが始まります。カードすべてが使われるまで、クリベッジの ルールに従い、プレイは続きます。プログラムは、全ポイントの得点化と、 テーブル上のカードの合計に、絶えず注意を払います。
プレイが終わると手札が得点化されます。プログラムは適切なカード (それに角括弧で囲んだ、カットしたカード) を表示して、プレイヤに自分の 手札 (もしプレイヤのクリブならそれも) を得点化するよう求めます。 プレイはどちらかのプレイヤがゲーム限界点 (61 か 121) に達するまで 続きます。
数字入力が求められている時の復帰文字は、最も低い正当な値を タイプすることと同じになります。例えば、カード束をカットする時には 一番上のカードを選ぶことと同じです。
カードはランクにスーツを続けて指定します。ランクは、 a, 2, 3, 4, 5, 6, 7, 8, 9, t, j, q, k あるいは、ace, two, three, four, five, six, seven, eight, nine, ten, jack, queen, king のいずれかで指定できます。 スーツは、s, h, d, c あるいは、 spades, hearts, diamonds, clubs のいずれかで指定できます。 カードは <rank> <suit> あるいは <rank> of <suit> のように指定できます。 ランクとスーツの 1 文字指定を用いる場合、スーツとランクを分けるスペースは 省けます。また、希望のランクのカードは 1 枚だけプレイ可能なら、ランクの 入力だけで充分です。例えば、手札が 2H, 4D, 5C, 6H, JC, KD で ダイアモンドのキングを捨てたければ、次のいずれの入力でも可能です。 k, king, kd, k d, k of d, king d, king of d, k diamonds, k of diamonds, king diamonds, king of diamonds
関連ファイル
/usr/games/cribbage
作者
Earl T. Cohen が論理を書きました。 Ken Arnold が画面指向のインタフェースを追加しました。