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