xref: /original-bsd/games/cribbage/test.c (revision 26e4b21d)
1 
2 #include	<stdio.h>
3 #include	"deck.h"
4 
5 
6 CARD		known[ CARDS ];			/* a deck */
7 CARD		deck[ CARDS ];			/* a deck */
8 CARD		hand[ 4 ];			/* a hand */
9 
10 int		knownum;
11 
12 
13 main( 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 
62