L
luser- -droog
Sir, is that a keyboard in your sleeve?
692(1)03:51 PM:~ 0> cat bj.c && echo --------- && make bj && bj
#include <ctype.h>
#include <stdio.h>
#include <string.h>
enum { cards = 13, suits = 4, decks = 4 };
int count[cards];
int total;
char symbols[] = "234567890jqka";
void reset() {
int i;
total = 0;
for (i=0; i < cards; i++)
total += count = suits * decks;
}
void sub(char c) {
if(c=='s')
reset();
else {
char *p = strchr(symbols, tolower(c));
if (p == NULL) return;
--count[ p - symbols ];
--total;
}
}
void show() {
int i;
for (i=0; i < cards; i++) printf(" %c ", toupper(symbols));
puts("");
for (i=0; i < cards; i++) printf("%3d ", count);
printf(" 10s:%d ", count[8]+count[9]+count[10]+count[11]);
printf(" Total:%d", total);
puts("");
for (i=0; i < cards; i++) printf("%3d ", (count*100)/total);
printf(" 10s:%d ", ((count[8]+count[9]+count[10]+count[11])*100)/
total);
puts("");
}
char buf[99];
void readline() {
fgets(buf,99,stdin);
}
void doline() {
int i = 0;
while(buf){
if (!isspace(buf))
sub(buf);
++i;
}
}
int main() {
reset();
while(1) {
show();
readline();
doline();
}
return 0;
}
---------
cc -g -Wall bj.c -o bj
2 3 4 5 6 7 8 9 0 J Q K A
16 16 16 16 16 16 16 16 16 16 16 16 16 10s:64 Total:
208
7 7 7 7 7 7 7 7 7 7 7 7 7 10s:30
460ak
2 3 4 5 6 7 8 9 0 J Q K A
16 16 15 16 15 16 16 16 15 16 16 15 15 10s:62 Total:
203
7 7 7 7 7 7 7 7 7 7 7 7 7 10s:30
3 9 q kaj
2 3 4 5 6 7 8 9 0 J Q K A
16 15 15 16 15 16 16 15 15 15 15 14 14 10s:59 Total:
197
8 7 7 8 7 8 8 7 7 7 7 7 7 10s:29
2 4q 48a
2 3 4 5 6 7 8 9 0 J Q K A
15 15 13 16 15 16 15 15 15 15 14 14 13 10s:58 Total:
191
7 7 6 8 7 8 7 7 7 7 7 7 6 10s:30
2 4 4 8 0 a q
2 3 4 5 6 7 8 9 0 J Q K A
14 15 11 16 15 16 14 15 14 15 13 14 12 10s:56 Total:
184
7 8 5 8 8 8 7 8 7 8 7 7 6 10s:30
4 4 8 ak
2 3 4 5 6 7 8 9 0 J Q K A
14 15 9 16 15 16 13 15 14 15 13 13 11 10s:55 Total:
179
7 8 5 8 8 8 7 8 7 8 7 7 6 10s:30
^C
693(1)03:52 PM:~ 130>
692(1)03:51 PM:~ 0> cat bj.c && echo --------- && make bj && bj
#include <ctype.h>
#include <stdio.h>
#include <string.h>
enum { cards = 13, suits = 4, decks = 4 };
int count[cards];
int total;
char symbols[] = "234567890jqka";
void reset() {
int i;
total = 0;
for (i=0; i < cards; i++)
total += count = suits * decks;
}
void sub(char c) {
if(c=='s')
reset();
else {
char *p = strchr(symbols, tolower(c));
if (p == NULL) return;
--count[ p - symbols ];
--total;
}
}
void show() {
int i;
for (i=0; i < cards; i++) printf(" %c ", toupper(symbols));
puts("");
for (i=0; i < cards; i++) printf("%3d ", count);
printf(" 10s:%d ", count[8]+count[9]+count[10]+count[11]);
printf(" Total:%d", total);
puts("");
for (i=0; i < cards; i++) printf("%3d ", (count*100)/total);
printf(" 10s:%d ", ((count[8]+count[9]+count[10]+count[11])*100)/
total);
puts("");
}
char buf[99];
void readline() {
fgets(buf,99,stdin);
}
void doline() {
int i = 0;
while(buf){
if (!isspace(buf))
sub(buf);
++i;
}
}
int main() {
reset();
while(1) {
show();
readline();
doline();
}
return 0;
}
---------
cc -g -Wall bj.c -o bj
2 3 4 5 6 7 8 9 0 J Q K A
16 16 16 16 16 16 16 16 16 16 16 16 16 10s:64 Total:
208
7 7 7 7 7 7 7 7 7 7 7 7 7 10s:30
460ak
2 3 4 5 6 7 8 9 0 J Q K A
16 16 15 16 15 16 16 16 15 16 16 15 15 10s:62 Total:
203
7 7 7 7 7 7 7 7 7 7 7 7 7 10s:30
3 9 q kaj
2 3 4 5 6 7 8 9 0 J Q K A
16 15 15 16 15 16 16 15 15 15 15 14 14 10s:59 Total:
197
8 7 7 8 7 8 8 7 7 7 7 7 7 10s:29
2 4q 48a
2 3 4 5 6 7 8 9 0 J Q K A
15 15 13 16 15 16 15 15 15 15 14 14 13 10s:58 Total:
191
7 7 6 8 7 8 7 7 7 7 7 7 6 10s:30
2 4 4 8 0 a q
2 3 4 5 6 7 8 9 0 J Q K A
14 15 11 16 15 16 14 15 14 15 13 14 12 10s:56 Total:
184
7 8 5 8 8 8 7 8 7 8 7 7 6 10s:30
4 4 8 ak
2 3 4 5 6 7 8 9 0 J Q K A
14 15 9 16 15 16 13 15 14 15 13 13 11 10s:55 Total:
179
7 8 5 8 8 8 7 8 7 8 7 7 6 10s:30
^C
693(1)03:52 PM:~ 130>