xref: /csrg-svn/games/cribbage/test.c (revision 14908)
1*14908Sarnold static char	*sccsid = "@(#)test.c	1.3 (Berkeley) 09/06/83";
27712Sarnold 
37712Sarnold #include	<stdio.h>
47712Sarnold #include	"deck.h"
57712Sarnold 
67712Sarnold 
77712Sarnold CARD		known[ CARDS ];			/* a deck */
87712Sarnold CARD		deck[ CARDS ];			/* a deck */
97712Sarnold CARD		hand[ 4 ];			/* a hand */
107712Sarnold 
117712Sarnold int		knownum;
127712Sarnold 
137712Sarnold 
147712Sarnold main( argc, argv )
157712Sarnold 
167712Sarnold     int		argc;
177712Sarnold     char	*argv[];
187712Sarnold {
197712Sarnold 	register  int		k, l, m;
20*14908Sarnold 	int			i, j, is, n, sum, sum2;
217712Sarnold 	CARD			ic, jc;
227712Sarnold 	CARD			d[ CARDS];
23*14908Sarnold 	extern char		expl[];
247712Sarnold 
257712Sarnold 	printf( "Assuming cards are same suit\n" );
267712Sarnold 	if(  argc == 2  )  {
277712Sarnold 	    is = atoi( *++argv );
287712Sarnold 	    printf( "Starting at i = %d\n", is );
297712Sarnold 	}
307712Sarnold 	makedeck( deck );
31*14908Sarnold # if 0
327712Sarnold 	for( i = is; i < RANKS; i++ )  {		/* first card */
337712Sarnold 	    ic.rank = i;
347712Sarnold 	    ic.suit = 0;
357712Sarnold 	    hand[0] = ic;
367712Sarnold 	    for( j = 0; j <= i; j++ )  {
37*14908Sarnold 		printf( "%d %d: sum  = %d\n", i, j, -10000000 );
38*14908Sarnold 		printf( "%d %d: sum2 = %d\n", i, j, -10000000 );
397712Sarnold 	    }
407712Sarnold 	    for( j = i + 1; j < RANKS; j++ )  {		/* second card */
417712Sarnold 		jc.rank = j;
427712Sarnold 		jc.suit = 0;
437712Sarnold 		hand[1] = jc;
447712Sarnold 		for( k = 0; k < CARDS; k++ )  d[k] = deck[k];
457712Sarnold 		n = CARDS;
467712Sarnold 		remove( ic, d, n-- );
477712Sarnold 		remove( jc, d, n-- );
487712Sarnold 		sum = 0;
49*14908Sarnold 		sum2 = 0;
507712Sarnold 		for( k = 0; k < n - 1; k++ )  {			/* 3rd card */
517712Sarnold 		    hand[2] = d[k];
527712Sarnold 		    for( l = k + 1; l < n; l++ )  {		/* 4th card */
537712Sarnold 			hand[3] = d[l];
547712Sarnold 			for( m = 0; m < n; m++ )  {		/* cut card */
557712Sarnold 			    if(  m != l  &&  m != k  )
56*14908Sarnold 					    sum += scorehand(hand, d[m], 4, FALSE, FALSE);
57*14908Sarnold 					    sum2 += scorehand(hand, d[m], 4, TRUE, FALSE);
587712Sarnold 			}
597712Sarnold 		    }
607712Sarnold 		}
61*14908Sarnold 		printf( "%d %d: sum  = %d\n", i, j, sum );
62*14908Sarnold 		printf( "%d %d: sum2 = %d\n", i, j, sum2 );
637712Sarnold 		fflush( stdout );
647712Sarnold 	    }
657712Sarnold 	}
667712Sarnold 	printf( "\nthe hand scores %d\n", i );
67*14908Sarnold # else
68*14908Sarnold 	hand[0].rank = 0;
69*14908Sarnold 	hand[1].rank = 1;
70*14908Sarnold 	hand[2].rank = 2;
71*14908Sarnold 	hand[3].rank = 3;
72*14908Sarnold 	hand[4].rank = 4;
73*14908Sarnold 	hand[0].suit = 0;
74*14908Sarnold 	hand[1].suit = 0;
75*14908Sarnold 	hand[2].suit = 0;
76*14908Sarnold 	hand[3].suit = 0;
77*14908Sarnold 	hand[4].suit = 0;
78*14908Sarnold 	printf("scorehand of hand = %d\n", scorehand(hand, hand[4], CINHAND, FALSE, TRUE));
79*14908Sarnold 	printf("\t%s\n", expl);
80*14908Sarnold 	hand[0].rank = 0;
81*14908Sarnold 	hand[1].rank = 1;
82*14908Sarnold 	hand[2].rank = 2;
83*14908Sarnold 	hand[3].rank = 3;
84*14908Sarnold 	hand[4].rank = 4;
85*14908Sarnold 	hand[0].suit = 0;
86*14908Sarnold 	hand[1].suit = 0;
87*14908Sarnold 	hand[2].suit = 0;
88*14908Sarnold 	hand[3].suit = 0;
89*14908Sarnold 	hand[4].suit = 0;
90*14908Sarnold 	printf("scorehand of crib = %d\n", scorehand(hand, hand[4], CINHAND, TRUE, TRUE));
91*14908Sarnold 	printf("\t%s\n", expl);
92*14908Sarnold 	hand[0].rank = 0;
93*14908Sarnold 	hand[1].rank = 1;
94*14908Sarnold 	hand[2].rank = 2;
95*14908Sarnold 	hand[3].rank = 3;
96*14908Sarnold 	hand[4].rank = 4;
97*14908Sarnold 	hand[0].suit = 0;
98*14908Sarnold 	hand[1].suit = 0;
99*14908Sarnold 	hand[2].suit = 0;
100*14908Sarnold 	hand[3].suit = 0;
101*14908Sarnold 	hand[4].suit = 1;
102*14908Sarnold 	printf("scorehand of hand = %d\n", scorehand(hand, hand[4], CINHAND, FALSE, TRUE));
103*14908Sarnold 	printf("\t%s\n", expl);
104*14908Sarnold 	hand[0].rank = 0;
105*14908Sarnold 	hand[1].rank = 1;
106*14908Sarnold 	hand[2].rank = 2;
107*14908Sarnold 	hand[3].rank = 3;
108*14908Sarnold 	hand[4].rank = 4;
109*14908Sarnold 	hand[0].suit = 0;
110*14908Sarnold 	hand[1].suit = 0;
111*14908Sarnold 	hand[2].suit = 0;
112*14908Sarnold 	hand[3].suit = 0;
113*14908Sarnold 	hand[4].suit = 1;
114*14908Sarnold 	printf("scorehand of crib = %d\n", scorehand(hand, hand[4], CINHAND, TRUE, TRUE));
115*14908Sarnold 	printf("\t%s\n", expl);
116*14908Sarnold # endif
1177712Sarnold }
118