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