keep npartitions independent of byte order
[unix-history] / usr / src / games / cribbage / test.c
CommitLineData
6cca9b39
KM
1/*
2 * Copyright (c) 1980 Regents of the University of California.
3 * All rights reserved. The Berkeley software License Agreement
4 * specifies the terms and conditions for redistribution.
5 */
6
7#ifndef lint
8char copyright[] =
9"@(#) Copyright (c) 1980 Regents of the University of California.\n\
10 All rights reserved.\n";
11#endif not lint
12
13#ifndef lint
14static char sccsid[] = "@(#)test.c 5.1 (Berkeley) %G%";
15#endif not lint
b91b0f59
KA
16
17#include <stdio.h>
18#include "deck.h"
19
20
21CARD known[ CARDS ]; /* a deck */
22CARD deck[ CARDS ]; /* a deck */
23CARD hand[ 4 ]; /* a hand */
24
25int knownum;
26
27
28main( argc, argv )
29
30 int argc;
31 char *argv[];
32{
33 register int k, l, m;
cefea9eb 34 int i, j, is, n, sum, sum2;
b91b0f59
KA
35 CARD ic, jc;
36 CARD d[ CARDS];
cefea9eb 37 extern char expl[];
b91b0f59
KA
38
39 printf( "Assuming cards are same suit\n" );
40 if( argc == 2 ) {
41 is = atoi( *++argv );
42 printf( "Starting at i = %d\n", is );
43 }
44 makedeck( deck );
cefea9eb 45# if 0
b91b0f59
KA
46 for( i = is; i < RANKS; i++ ) { /* first card */
47 ic.rank = i;
48 ic.suit = 0;
49 hand[0] = ic;
50 for( j = 0; j <= i; j++ ) {
cefea9eb
KA
51 printf( "%d %d: sum = %d\n", i, j, -10000000 );
52 printf( "%d %d: sum2 = %d\n", i, j, -10000000 );
b91b0f59
KA
53 }
54 for( j = i + 1; j < RANKS; j++ ) { /* second card */
55 jc.rank = j;
56 jc.suit = 0;
57 hand[1] = jc;
58 for( k = 0; k < CARDS; k++ ) d[k] = deck[k];
59 n = CARDS;
60 remove( ic, d, n-- );
61 remove( jc, d, n-- );
62 sum = 0;
cefea9eb 63 sum2 = 0;
b91b0f59
KA
64 for( k = 0; k < n - 1; k++ ) { /* 3rd card */
65 hand[2] = d[k];
66 for( l = k + 1; l < n; l++ ) { /* 4th card */
67 hand[3] = d[l];
68 for( m = 0; m < n; m++ ) { /* cut card */
69 if( m != l && m != k )
cefea9eb
KA
70 sum += scorehand(hand, d[m], 4, FALSE, FALSE);
71 sum2 += scorehand(hand, d[m], 4, TRUE, FALSE);
b91b0f59
KA
72 }
73 }
74 }
cefea9eb
KA
75 printf( "%d %d: sum = %d\n", i, j, sum );
76 printf( "%d %d: sum2 = %d\n", i, j, sum2 );
b91b0f59
KA
77 fflush( stdout );
78 }
79 }
80 printf( "\nthe hand scores %d\n", i );
cefea9eb
KA
81# else
82 hand[0].rank = 0;
83 hand[1].rank = 1;
84 hand[2].rank = 2;
85 hand[3].rank = 3;
86 hand[4].rank = 4;
87 hand[0].suit = 0;
88 hand[1].suit = 0;
89 hand[2].suit = 0;
90 hand[3].suit = 0;
91 hand[4].suit = 0;
92 printf("scorehand of hand = %d\n", scorehand(hand, hand[4], CINHAND, FALSE, TRUE));
93 printf("\t%s\n", expl);
94 hand[0].rank = 0;
95 hand[1].rank = 1;
96 hand[2].rank = 2;
97 hand[3].rank = 3;
98 hand[4].rank = 4;
99 hand[0].suit = 0;
100 hand[1].suit = 0;
101 hand[2].suit = 0;
102 hand[3].suit = 0;
103 hand[4].suit = 0;
104 printf("scorehand of crib = %d\n", scorehand(hand, hand[4], CINHAND, TRUE, TRUE));
105 printf("\t%s\n", expl);
106 hand[0].rank = 0;
107 hand[1].rank = 1;
108 hand[2].rank = 2;
109 hand[3].rank = 3;
110 hand[4].rank = 4;
111 hand[0].suit = 0;
112 hand[1].suit = 0;
113 hand[2].suit = 0;
114 hand[3].suit = 0;
115 hand[4].suit = 1;
116 printf("scorehand of hand = %d\n", scorehand(hand, hand[4], CINHAND, FALSE, TRUE));
117 printf("\t%s\n", expl);
118 hand[0].rank = 0;
119 hand[1].rank = 1;
120 hand[2].rank = 2;
121 hand[3].rank = 3;
122 hand[4].rank = 4;
123 hand[0].suit = 0;
124 hand[1].suit = 0;
125 hand[2].suit = 0;
126 hand[3].suit = 0;
127 hand[4].suit = 1;
128 printf("scorehand of crib = %d\n", scorehand(hand, hand[4], CINHAND, TRUE, TRUE));
129 printf("\t%s\n", expl);
130# endif
b91b0f59 131}