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