xref: /csrg-svn/games/cribbage/test.c (revision 33704)
121508Smckusick /*
221508Smckusick  * Copyright (c) 1980 Regents of the University of California.
3*33704Sbostic  * All rights reserved.
4*33704Sbostic  *
5*33704Sbostic  * Redistribution and use in source and binary forms are permitted
6*33704Sbostic  * provided that this notice is preserved and that due credit is given
7*33704Sbostic  * to the University of California at Berkeley. The name of the University
8*33704Sbostic  * may not be used to endorse or promote products derived from this
9*33704Sbostic  * software without specific prior written permission. This software
10*33704Sbostic  * is provided ``as is'' without express or implied warranty.
1121508Smckusick  */
127712Sarnold 
1321508Smckusick #ifndef lint
1421508Smckusick char copyright[] =
1521508Smckusick "@(#) Copyright (c) 1980 Regents of the University of California.\n\
1621508Smckusick  All rights reserved.\n";
17*33704Sbostic #endif /* not lint */
1821508Smckusick 
1921508Smckusick #ifndef lint
20*33704Sbostic static char sccsid[] = "@(#)test.c	5.2 (Berkeley) 03/10/88";
21*33704Sbostic #endif /* not lint */
2221508Smckusick 
237712Sarnold #include	<stdio.h>
247712Sarnold #include	"deck.h"
257712Sarnold 
267712Sarnold 
277712Sarnold CARD		known[ CARDS ];			/* a deck */
287712Sarnold CARD		deck[ CARDS ];			/* a deck */
297712Sarnold CARD		hand[ 4 ];			/* a hand */
307712Sarnold 
317712Sarnold int		knownum;
327712Sarnold 
337712Sarnold 
main(argc,argv)347712Sarnold main( argc, argv )
357712Sarnold 
367712Sarnold     int		argc;
377712Sarnold     char	*argv[];
387712Sarnold {
397712Sarnold 	register  int		k, l, m;
4014908Sarnold 	int			i, j, is, n, sum, sum2;
417712Sarnold 	CARD			ic, jc;
427712Sarnold 	CARD			d[ CARDS];
4314908Sarnold 	extern char		expl[];
447712Sarnold 
457712Sarnold 	printf( "Assuming cards are same suit\n" );
467712Sarnold 	if(  argc == 2  )  {
477712Sarnold 	    is = atoi( *++argv );
487712Sarnold 	    printf( "Starting at i = %d\n", is );
497712Sarnold 	}
507712Sarnold 	makedeck( deck );
5114908Sarnold # if 0
527712Sarnold 	for( i = is; i < RANKS; i++ )  {		/* first card */
537712Sarnold 	    ic.rank = i;
547712Sarnold 	    ic.suit = 0;
557712Sarnold 	    hand[0] = ic;
567712Sarnold 	    for( j = 0; j <= i; j++ )  {
5714908Sarnold 		printf( "%d %d: sum  = %d\n", i, j, -10000000 );
5814908Sarnold 		printf( "%d %d: sum2 = %d\n", i, j, -10000000 );
597712Sarnold 	    }
607712Sarnold 	    for( j = i + 1; j < RANKS; j++ )  {		/* second card */
617712Sarnold 		jc.rank = j;
627712Sarnold 		jc.suit = 0;
637712Sarnold 		hand[1] = jc;
647712Sarnold 		for( k = 0; k < CARDS; k++ )  d[k] = deck[k];
657712Sarnold 		n = CARDS;
667712Sarnold 		remove( ic, d, n-- );
677712Sarnold 		remove( jc, d, n-- );
687712Sarnold 		sum = 0;
6914908Sarnold 		sum2 = 0;
707712Sarnold 		for( k = 0; k < n - 1; k++ )  {			/* 3rd card */
717712Sarnold 		    hand[2] = d[k];
727712Sarnold 		    for( l = k + 1; l < n; l++ )  {		/* 4th card */
737712Sarnold 			hand[3] = d[l];
747712Sarnold 			for( m = 0; m < n; m++ )  {		/* cut card */
757712Sarnold 			    if(  m != l  &&  m != k  )
7614908Sarnold 					    sum += scorehand(hand, d[m], 4, FALSE, FALSE);
7714908Sarnold 					    sum2 += scorehand(hand, d[m], 4, TRUE, FALSE);
787712Sarnold 			}
797712Sarnold 		    }
807712Sarnold 		}
8114908Sarnold 		printf( "%d %d: sum  = %d\n", i, j, sum );
8214908Sarnold 		printf( "%d %d: sum2 = %d\n", i, j, sum2 );
837712Sarnold 		fflush( stdout );
847712Sarnold 	    }
857712Sarnold 	}
867712Sarnold 	printf( "\nthe hand scores %d\n", i );
8714908Sarnold # else
8814908Sarnold 	hand[0].rank = 0;
8914908Sarnold 	hand[1].rank = 1;
9014908Sarnold 	hand[2].rank = 2;
9114908Sarnold 	hand[3].rank = 3;
9214908Sarnold 	hand[4].rank = 4;
9314908Sarnold 	hand[0].suit = 0;
9414908Sarnold 	hand[1].suit = 0;
9514908Sarnold 	hand[2].suit = 0;
9614908Sarnold 	hand[3].suit = 0;
9714908Sarnold 	hand[4].suit = 0;
9814908Sarnold 	printf("scorehand of hand = %d\n", scorehand(hand, hand[4], CINHAND, FALSE, TRUE));
9914908Sarnold 	printf("\t%s\n", expl);
10014908Sarnold 	hand[0].rank = 0;
10114908Sarnold 	hand[1].rank = 1;
10214908Sarnold 	hand[2].rank = 2;
10314908Sarnold 	hand[3].rank = 3;
10414908Sarnold 	hand[4].rank = 4;
10514908Sarnold 	hand[0].suit = 0;
10614908Sarnold 	hand[1].suit = 0;
10714908Sarnold 	hand[2].suit = 0;
10814908Sarnold 	hand[3].suit = 0;
10914908Sarnold 	hand[4].suit = 0;
11014908Sarnold 	printf("scorehand of crib = %d\n", scorehand(hand, hand[4], CINHAND, TRUE, TRUE));
11114908Sarnold 	printf("\t%s\n", expl);
11214908Sarnold 	hand[0].rank = 0;
11314908Sarnold 	hand[1].rank = 1;
11414908Sarnold 	hand[2].rank = 2;
11514908Sarnold 	hand[3].rank = 3;
11614908Sarnold 	hand[4].rank = 4;
11714908Sarnold 	hand[0].suit = 0;
11814908Sarnold 	hand[1].suit = 0;
11914908Sarnold 	hand[2].suit = 0;
12014908Sarnold 	hand[3].suit = 0;
12114908Sarnold 	hand[4].suit = 1;
12214908Sarnold 	printf("scorehand of hand = %d\n", scorehand(hand, hand[4], CINHAND, FALSE, TRUE));
12314908Sarnold 	printf("\t%s\n", expl);
12414908Sarnold 	hand[0].rank = 0;
12514908Sarnold 	hand[1].rank = 1;
12614908Sarnold 	hand[2].rank = 2;
12714908Sarnold 	hand[3].rank = 3;
12814908Sarnold 	hand[4].rank = 4;
12914908Sarnold 	hand[0].suit = 0;
13014908Sarnold 	hand[1].suit = 0;
13114908Sarnold 	hand[2].suit = 0;
13214908Sarnold 	hand[3].suit = 0;
13314908Sarnold 	hand[4].suit = 1;
13414908Sarnold 	printf("scorehand of crib = %d\n", scorehand(hand, hand[4], CINHAND, TRUE, TRUE));
13514908Sarnold 	printf("\t%s\n", expl);
13614908Sarnold # endif
1377712Sarnold }
138