Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.c > #16839

Re: card-counting program for blackjack

Message-ID <4F314405.6A9F@mindspring.com> (permalink)
Date 2012-02-07 10:32 -0500
From pete <pfiland@mindspring.com>
Organization PF
Newsgroups comp.lang.c
Subject Re: card-counting program for blackjack
References <18e43b14-0c7a-41bf-84a8-dc27f0e199f2@c6g2000vbk.googlegroups.com>

Show all headers | View raw


luser- -droog wrote:
> 
> 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[i] = 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[i]));
>     puts("");
>     for (i=0; i < cards; i++) printf("%3d ", count[i]);
>     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[i]*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[i]){
>         if (!isspace(buf[i]))
>             sub(buf[i]);
>         ++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

This point is where the output stops on my machine.
Either that, 
or this is the point where the program runs too slowly 
for me to continue waiting for more output.


> 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>

-- 
pete

Back to comp.lang.c | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

card-counting program for blackjack luser- -droog <mijoryx@yahoo.com> - 2012-02-05 13:56 -0800
  Re: card-counting program for blackjack pete <pfiland@mindspring.com> - 2012-02-07 10:32 -0500
    Re: card-counting program for blackjack pete <pfiland@mindspring.com> - 2012-02-07 10:35 -0500
      Re: card-counting program for blackjack luser- -droog <mijoryx@yahoo.com> - 2012-02-07 22:59 -0800

csiph-web