xref: /csrg-svn/games/cribbage/test.c (revision 21508)
1*21508Smckusick /*
2*21508Smckusick  * Copyright (c) 1980 Regents of the University of California.
3*21508Smckusick  * All rights reserved.  The Berkeley software License Agreement
4*21508Smckusick  * specifies the terms and conditions for redistribution.
5*21508Smckusick  */
67712Sarnold 
7*21508Smckusick #ifndef lint
8*21508Smckusick char copyright[] =
9*21508Smckusick "@(#) Copyright (c) 1980 Regents of the University of California.\n\
10*21508Smckusick  All rights reserved.\n";
11*21508Smckusick #endif not lint
12*21508Smckusick 
13*21508Smckusick #ifndef lint
14*21508Smckusick static char sccsid[] = "@(#)test.c	5.1 (Berkeley) 05/30/85";
15*21508Smckusick #endif not lint
16*21508Smckusick 
177712Sarnold #include	<stdio.h>
187712Sarnold #include	"deck.h"
197712Sarnold 
207712Sarnold 
217712Sarnold CARD		known[ CARDS ];			/* a deck */
227712Sarnold CARD		deck[ CARDS ];			/* a deck */
237712Sarnold CARD		hand[ 4 ];			/* a hand */
247712Sarnold 
257712Sarnold int		knownum;
267712Sarnold 
277712Sarnold 
287712Sarnold main( argc, argv )
297712Sarnold 
307712Sarnold     int		argc;
317712Sarnold     char	*argv[];
327712Sarnold {
337712Sarnold 	register  int		k, l, m;
3414908Sarnold 	int			i, j, is, n, sum, sum2;
357712Sarnold 	CARD			ic, jc;
367712Sarnold 	CARD			d[ CARDS];
3714908Sarnold 	extern char		expl[];
387712Sarnold 
397712Sarnold 	printf( "Assuming cards are same suit\n" );
407712Sarnold 	if(  argc == 2  )  {
417712Sarnold 	    is = atoi( *++argv );
427712Sarnold 	    printf( "Starting at i = %d\n", is );
437712Sarnold 	}
447712Sarnold 	makedeck( deck );
4514908Sarnold # if 0
467712Sarnold 	for( i = is; i < RANKS; i++ )  {		/* first card */
477712Sarnold 	    ic.rank = i;
487712Sarnold 	    ic.suit = 0;
497712Sarnold 	    hand[0] = ic;
507712Sarnold 	    for( j = 0; j <= i; j++ )  {
5114908Sarnold 		printf( "%d %d: sum  = %d\n", i, j, -10000000 );
5214908Sarnold 		printf( "%d %d: sum2 = %d\n", i, j, -10000000 );
537712Sarnold 	    }
547712Sarnold 	    for( j = i + 1; j < RANKS; j++ )  {		/* second card */
557712Sarnold 		jc.rank = j;
567712Sarnold 		jc.suit = 0;
577712Sarnold 		hand[1] = jc;
587712Sarnold 		for( k = 0; k < CARDS; k++ )  d[k] = deck[k];
597712Sarnold 		n = CARDS;
607712Sarnold 		remove( ic, d, n-- );
617712Sarnold 		remove( jc, d, n-- );
627712Sarnold 		sum = 0;
6314908Sarnold 		sum2 = 0;
647712Sarnold 		for( k = 0; k < n - 1; k++ )  {			/* 3rd card */
657712Sarnold 		    hand[2] = d[k];
667712Sarnold 		    for( l = k + 1; l < n; l++ )  {		/* 4th card */
677712Sarnold 			hand[3] = d[l];
687712Sarnold 			for( m = 0; m < n; m++ )  {		/* cut card */
697712Sarnold 			    if(  m != l  &&  m != k  )
7014908Sarnold 					    sum += scorehand(hand, d[m], 4, FALSE, FALSE);
7114908Sarnold 					    sum2 += scorehand(hand, d[m], 4, TRUE, FALSE);
727712Sarnold 			}
737712Sarnold 		    }
747712Sarnold 		}
7514908Sarnold 		printf( "%d %d: sum  = %d\n", i, j, sum );
7614908Sarnold 		printf( "%d %d: sum2 = %d\n", i, j, sum2 );
777712Sarnold 		fflush( stdout );
787712Sarnold 	    }
797712Sarnold 	}
807712Sarnold 	printf( "\nthe hand scores %d\n", i );
8114908Sarnold # else
8214908Sarnold 	hand[0].rank = 0;
8314908Sarnold 	hand[1].rank = 1;
8414908Sarnold 	hand[2].rank = 2;
8514908Sarnold 	hand[3].rank = 3;
8614908Sarnold 	hand[4].rank = 4;
8714908Sarnold 	hand[0].suit = 0;
8814908Sarnold 	hand[1].suit = 0;
8914908Sarnold 	hand[2].suit = 0;
9014908Sarnold 	hand[3].suit = 0;
9114908Sarnold 	hand[4].suit = 0;
9214908Sarnold 	printf("scorehand of hand = %d\n", scorehand(hand, hand[4], CINHAND, FALSE, TRUE));
9314908Sarnold 	printf("\t%s\n", expl);
9414908Sarnold 	hand[0].rank = 0;
9514908Sarnold 	hand[1].rank = 1;
9614908Sarnold 	hand[2].rank = 2;
9714908Sarnold 	hand[3].rank = 3;
9814908Sarnold 	hand[4].rank = 4;
9914908Sarnold 	hand[0].suit = 0;
10014908Sarnold 	hand[1].suit = 0;
10114908Sarnold 	hand[2].suit = 0;
10214908Sarnold 	hand[3].suit = 0;
10314908Sarnold 	hand[4].suit = 0;
10414908Sarnold 	printf("scorehand of crib = %d\n", scorehand(hand, hand[4], CINHAND, TRUE, TRUE));
10514908Sarnold 	printf("\t%s\n", expl);
10614908Sarnold 	hand[0].rank = 0;
10714908Sarnold 	hand[1].rank = 1;
10814908Sarnold 	hand[2].rank = 2;
10914908Sarnold 	hand[3].rank = 3;
11014908Sarnold 	hand[4].rank = 4;
11114908Sarnold 	hand[0].suit = 0;
11214908Sarnold 	hand[1].suit = 0;
11314908Sarnold 	hand[2].suit = 0;
11414908Sarnold 	hand[3].suit = 0;
11514908Sarnold 	hand[4].suit = 1;
11614908Sarnold 	printf("scorehand of hand = %d\n", scorehand(hand, hand[4], CINHAND, FALSE, TRUE));
11714908Sarnold 	printf("\t%s\n", expl);
11814908Sarnold 	hand[0].rank = 0;
11914908Sarnold 	hand[1].rank = 1;
12014908Sarnold 	hand[2].rank = 2;
12114908Sarnold 	hand[3].rank = 3;
12214908Sarnold 	hand[4].rank = 4;
12314908Sarnold 	hand[0].suit = 0;
12414908Sarnold 	hand[1].suit = 0;
12514908Sarnold 	hand[2].suit = 0;
12614908Sarnold 	hand[3].suit = 0;
12714908Sarnold 	hand[4].suit = 1;
12814908Sarnold 	printf("scorehand of crib = %d\n", scorehand(hand, hand[4], CINHAND, TRUE, TRUE));
12914908Sarnold 	printf("\t%s\n", expl);
13014908Sarnold # endif
1317712Sarnold }
132