don't score 4-flush in player's crib
[unix-history] / usr / src / games / cribbage / test.c
CommitLineData
b91b0f59
KA
1
2#include <stdio.h>
3#include "deck.h"
4
5
6CARD known[ CARDS ]; /* a deck */
7CARD deck[ CARDS ]; /* a deck */
8CARD hand[ 4 ]; /* a hand */
9
10int knownum;
11
12
13main( argc, argv )
14
15 int argc;
16 char *argv[];
17{
18 register int k, l, m;
19 int i, j, is, n, sum;
20 CARD ic, jc;
21 CARD d[ CARDS];
22
23 printf( "Assuming cards are same suit\n" );
24 if( argc == 2 ) {
25 is = atoi( *++argv );
26 printf( "Starting at i = %d\n", is );
27 }
28 makedeck( deck );
29 for( i = is; i < RANKS; i++ ) { /* first card */
30 ic.rank = i;
31 ic.suit = 0;
32 hand[0] = ic;
33 for( j = 0; j <= i; j++ ) {
34 printf( "%d %d: sum = %d\n", i, j, -10000000 );
35 }
36 for( j = i + 1; j < RANKS; j++ ) { /* second card */
37 jc.rank = j;
38 jc.suit = 0;
39 hand[1] = jc;
40 for( k = 0; k < CARDS; k++ ) d[k] = deck[k];
41 n = CARDS;
42 remove( ic, d, n-- );
43 remove( jc, d, n-- );
44 sum = 0;
45 for( k = 0; k < n - 1; k++ ) { /* 3rd card */
46 hand[2] = d[k];
47 for( l = k + 1; l < n; l++ ) { /* 4th card */
48 hand[3] = d[l];
49 for( m = 0; m < n; m++ ) { /* cut card */
50 if( m != l && m != k )
51 sum += scorehand( hand, d[m], 4 );
52 }
53 }
54 }
55 printf( "%d %d: sum = %d\n", i, j, sum );
56 fflush( stdout );
57 }
58 }
59 printf( "\nthe hand scores %d\n", i );
60}
61