cribbage - the card game cribbage
cribbage plays the card game cribbage, with the program
playing one hand
and the user the other. The program will initially ask the
user if the
rules of the game are needed - if so, it will print out the
section from According to Hoyle.
cribbage options include:
-e When the player makes a mistake scoring his hand or
an explanation of the correct score. (This is especially useful
for beginning players.)
-m ``Muggins'' - if a player mistakenly scores less
than is due, the
opponent may claim the overlooked points. (Of
computer never miscalculates!)
-q Print a shorter form of all messages - this is only
for users who have played the game without specifying this option.
-r Instead of asking the player to cut the deck, the
randomly cut the deck.
cribbage first asks the player whether he wishes to play a
(``once around'', to 61) or a long game (``twice around'',
to 121). A
response of `s' or `S' will result in a short game; any other response
will play a long game.
At the start of the first game, the program asks the player
to cut the
deck to determine who gets the first crib. The user should
a number between 4 and 48, indicating how many cards down
the deck is to
be cut. The player who cuts the lower ranked card gets the
If more than one game is played, the loser of the previous
game gets the
first crib in the current game.
For each hand, the program first prints the player's hand
and whose crib
it is, and then asks the player to discard two cards into
the crib. The
cards are prompted for one per line, and are entered as explained below.
After discarding, the program cuts the deck (if it is the
or asks the player to cut the deck (if it's its crib); in
case, the appropriate response is a number from 4 to 36 indicating how
far down the remaining 40 cards are to be cut.
After the deck is cut, play starts with the non-dealer (the
doesn't have the crib) leading the first card. Play continues until all
cards are exhausted. The program keeps track of the scoring
points and the total of the cards on the table.
After play, the hands are scored. The program requests the
score his hand (and the crib, if it is his) by printing out
cards. Play continues until one player reaches the game
limit (61 or
A carriage return when a numeric input is expected is equivalent to typing
the lowest legal value; when cutting the deck this is
cutting after the fourth card.
Cards are specified as rank followed by suit. The ranks may
as one of: `a', `2', `3', `4', `5', `6', `7', `8', `9', `t',
and `k', or alternatively, one of: `ace', `two', `three',
`six', `seven', `eight', `nine', `ten', `jack', `queen', and
Suits may be specified as: `s', `h', `d', and `c', or alternatively as:
`spades', `hearts', `diamonds', and `clubs'. A card may be
``<rank> <suit>'', or: ``<rank> of <suit>''. If the single letter rank
and suit designations are used, the space separating the
suit and rank
may be left out. Also, if only one card of the desired rank
typing the rank is sufficient. For example, if your hand
was ``2H, 4D,
5C, 6H, JC, and KD'' and it was desired to discard the king
any of the following could be typed: `k', `king', `kd', `k
d', `k of d',
`king d', `king of d', `k diamonds', `k of diamonds', `king
`king of diamonds'.
/var/games/criblog log file (if logging is enabled)
Earl T. Cohen wrote the logic. Ken Arnold added the screenoriented interface.
OpenBSD 3.6 May 31, 1993
[ Back ]