Poker code for primary Mbed

Dependencies:   NokiaLCD mbed

Committer:
wjenkins7
Date:
Wed Dec 11 07:04:52 2013 +0000
Revision:
0:b9eebf731cbe
Mbed Poker Primary

Who changed what in which revision?

UserRevisionLine numberNew contents of line
wjenkins7 0:b9eebf731cbe 1 #include <mbed.h>
wjenkins7 0:b9eebf731cbe 2 #include <string>
wjenkins7 0:b9eebf731cbe 3 #include <list>
wjenkins7 0:b9eebf731cbe 4 #include <mpr121.h>
wjenkins7 0:b9eebf731cbe 5 #include "NokiaLCD.h"
wjenkins7 0:b9eebf731cbe 6
wjenkins7 0:b9eebf731cbe 7 Serial pc(USBTX, USBRX);
wjenkins7 0:b9eebf731cbe 8
wjenkins7 0:b9eebf731cbe 9 Serial device(p13,p14);
wjenkins7 0:b9eebf731cbe 10
wjenkins7 0:b9eebf731cbe 11 // Setup the i2c bus on pins 28 and 27
wjenkins7 0:b9eebf731cbe 12 I2C i2c2(p9, p10);
wjenkins7 0:b9eebf731cbe 13 I2C i2c1(p28, p27);
wjenkins7 0:b9eebf731cbe 14
wjenkins7 0:b9eebf731cbe 15 // Setup the Mpr121:
wjenkins7 0:b9eebf731cbe 16 // constructor(i2c object, i2c address of the mpr121)
wjenkins7 0:b9eebf731cbe 17 Mpr121 mpr2(&i2c1, Mpr121::ADD_VSS);
wjenkins7 0:b9eebf731cbe 18 Mpr121 mpr1(&i2c2, Mpr121::ADD_VSS);
wjenkins7 0:b9eebf731cbe 19
wjenkins7 0:b9eebf731cbe 20 NokiaLCD lcd1(p5, p7, p8, p15, NokiaLCD::LCD6610); // mosi, sclk, cs, rst, type
wjenkins7 0:b9eebf731cbe 21 NokiaLCD lcd3(p5, p7, p16, p17, NokiaLCD::LCD6610);
wjenkins7 0:b9eebf731cbe 22 NokiaLCD lcd2(p5, p7, p18, p19, NokiaLCD::LCD6610);
wjenkins7 0:b9eebf731cbe 23
wjenkins7 0:b9eebf731cbe 24
wjenkins7 0:b9eebf731cbe 25 int z=0, cards[52][2];
wjenkins7 0:b9eebf731cbe 26
wjenkins7 0:b9eebf731cbe 27 int secondary_players(int player_id, int Total, int face)
wjenkins7 0:b9eebf731cbe 28 {
wjenkins7 0:b9eebf731cbe 29 int temp_int, arr[7],i = 0, Amount = 0, temp_int1;
wjenkins7 0:b9eebf731cbe 30 char temp = '0',operation;
wjenkins7 0:b9eebf731cbe 31
wjenkins7 0:b9eebf731cbe 32 if(player_id == 2) device.putc('3');
wjenkins7 0:b9eebf731cbe 33 if(player_id == 3) device.putc('4');
wjenkins7 0:b9eebf731cbe 34 if(player_id == 0) device.putc('6');
wjenkins7 0:b9eebf731cbe 35
wjenkins7 0:b9eebf731cbe 36 // temp= device.getc();
wjenkins7 0:b9eebf731cbe 37 wait(0.5);
wjenkins7 0:b9eebf731cbe 38 if((Total > 0) && (face == 0)) {
wjenkins7 0:b9eebf731cbe 39 device.putc('M');
wjenkins7 0:b9eebf731cbe 40 //temp=device.getc();
wjenkins7 0:b9eebf731cbe 41 pc.printf("\ninside M");
wjenkins7 0:b9eebf731cbe 42 temp_int = Total;
wjenkins7 0:b9eebf731cbe 43 //device.putc('0');
wjenkins7 0:b9eebf731cbe 44 //device.putc('0');
wjenkins7 0:b9eebf731cbe 45 for(int i=0; i<7; i++) {
wjenkins7 0:b9eebf731cbe 46 // wait(0.5);
wjenkins7 0:b9eebf731cbe 47 temp_int1 = temp_int% ((int)(pow(10, (float)1)));
wjenkins7 0:b9eebf731cbe 48 temp_int = temp_int/10;
wjenkins7 0:b9eebf731cbe 49 if(temp_int1 == 0) device.putc('0');
wjenkins7 0:b9eebf731cbe 50 if(temp_int1 == 1) device.putc('1');
wjenkins7 0:b9eebf731cbe 51 if(temp_int1 == 2) device.putc('2');
wjenkins7 0:b9eebf731cbe 52 if(temp_int1 == 3) device.putc('3');
wjenkins7 0:b9eebf731cbe 53 if(temp_int1 == 4) device.putc('4');
wjenkins7 0:b9eebf731cbe 54 if(temp_int1 == 5) device.putc('5');
wjenkins7 0:b9eebf731cbe 55 if(temp_int1 == 6) device.putc('6');
wjenkins7 0:b9eebf731cbe 56 if(temp_int1 == 7) device.putc('7');
wjenkins7 0:b9eebf731cbe 57 if(temp_int1 == 8) device.putc('8');
wjenkins7 0:b9eebf731cbe 58 if(temp_int1 == 9) device.putc('9');
wjenkins7 0:b9eebf731cbe 59 pc.printf("\namount:%d", temp_int1);
wjenkins7 0:b9eebf731cbe 60 //temp=device.getc();
wjenkins7 0:b9eebf731cbe 61 }
wjenkins7 0:b9eebf731cbe 62 device.putc('D');
wjenkins7 0:b9eebf731cbe 63 operation = device.getc();
wjenkins7 0:b9eebf731cbe 64 wait(1);
wjenkins7 0:b9eebf731cbe 65
wjenkins7 0:b9eebf731cbe 66 for(int i=0; i<7; i++) arr[i] = 0;
wjenkins7 0:b9eebf731cbe 67
wjenkins7 0:b9eebf731cbe 68 //i = 0;
wjenkins7 0:b9eebf731cbe 69
wjenkins7 0:b9eebf731cbe 70 if(operation == 'C') return -2;//pc.printf("\nCALL");
wjenkins7 0:b9eebf731cbe 71 if(operation == 'F') return 0;//pc.printf("\nFOLD");
wjenkins7 0:b9eebf731cbe 72 if(operation == 'R') {
wjenkins7 0:b9eebf731cbe 73 //pc.printf("\nRAISE"); reading the bet amount from secondary mbed
wjenkins7 0:b9eebf731cbe 74 temp = device.getc();
wjenkins7 0:b9eebf731cbe 75 while(temp != 'R') {
wjenkins7 0:b9eebf731cbe 76 arr[i] = temp;
wjenkins7 0:b9eebf731cbe 77 pc.printf("\narr[i]=%d",arr[i]);
wjenkins7 0:b9eebf731cbe 78 i++;
wjenkins7 0:b9eebf731cbe 79 temp = device.getc();
wjenkins7 0:b9eebf731cbe 80 }
wjenkins7 0:b9eebf731cbe 81 for(int j=0; j<i; j++) {
wjenkins7 0:b9eebf731cbe 82 Amount = Amount + ((pow (10, (float) (j))) * arr[j]);
wjenkins7 0:b9eebf731cbe 83 }
wjenkins7 0:b9eebf731cbe 84 return Amount;
wjenkins7 0:b9eebf731cbe 85 //pc.printf("\nAmount = %d",Amount);
wjenkins7 0:b9eebf731cbe 86 }
wjenkins7 0:b9eebf731cbe 87 }
wjenkins7 0:b9eebf731cbe 88
wjenkins7 0:b9eebf731cbe 89 if(face != 0) {
wjenkins7 0:b9eebf731cbe 90 device.putc('I');
wjenkins7 0:b9eebf731cbe 91
wjenkins7 0:b9eebf731cbe 92 if(Total == 1) {
wjenkins7 0:b9eebf731cbe 93 device.putc('S');
wjenkins7 0:b9eebf731cbe 94 } else if(Total == 2) {
wjenkins7 0:b9eebf731cbe 95 device.putc('C');
wjenkins7 0:b9eebf731cbe 96 } else if(Total == 3) {
wjenkins7 0:b9eebf731cbe 97 device.putc('H');
wjenkins7 0:b9eebf731cbe 98 } else device.putc('D');
wjenkins7 0:b9eebf731cbe 99 if(face==2) device.putc('2');
wjenkins7 0:b9eebf731cbe 100 else if(face == 3) device.putc('3');
wjenkins7 0:b9eebf731cbe 101 else if(face == 4) device.putc('4');
wjenkins7 0:b9eebf731cbe 102 else if(face == 5) device.putc('5');
wjenkins7 0:b9eebf731cbe 103 else if(face == 6) device.putc('6');
wjenkins7 0:b9eebf731cbe 104 else if(face == 7) device.putc('7');
wjenkins7 0:b9eebf731cbe 105 else if(face == 8) device.putc('8');
wjenkins7 0:b9eebf731cbe 106 else if(face == 9) device.putc('9');
wjenkins7 0:b9eebf731cbe 107 else if(face == 10) device.putc('0');
wjenkins7 0:b9eebf731cbe 108 else if(face == 11) device.putc('J');
wjenkins7 0:b9eebf731cbe 109 else if (face == 12) device.putc('Q');
wjenkins7 0:b9eebf731cbe 110 else if (face == 13) device.putc('K');
wjenkins7 0:b9eebf731cbe 111 else if (face == 1) device.putc('A');
wjenkins7 0:b9eebf731cbe 112
wjenkins7 0:b9eebf731cbe 113 }
wjenkins7 0:b9eebf731cbe 114
wjenkins7 0:b9eebf731cbe 115 if((Total == 0) && (face == 0) && (player_id != 0)) {
wjenkins7 0:b9eebf731cbe 116 device.putc('Z');
wjenkins7 0:b9eebf731cbe 117 }
wjenkins7 0:b9eebf731cbe 118
wjenkins7 0:b9eebf731cbe 119 }
wjenkins7 0:b9eebf731cbe 120
wjenkins7 0:b9eebf731cbe 121 void print_on_dealerlcd( int n, int card, int suit, int op)
wjenkins7 0:b9eebf731cbe 122 {
wjenkins7 0:b9eebf731cbe 123
wjenkins7 0:b9eebf731cbe 124 //lcd2.reset();
wjenkins7 0:b9eebf731cbe 125 //lcd3.background(0x73fb76);
wjenkins7 0:b9eebf731cbe 126 //lcd3.cls();
wjenkins7 0:b9eebf731cbe 127 //lcd3.locate(0,1);
wjenkins7 0:b9eebf731cbe 128 char x, y, w;
wjenkins7 0:b9eebf731cbe 129 int m;
wjenkins7 0:b9eebf731cbe 130 x=0;
wjenkins7 0:b9eebf731cbe 131 if(op == 1) {
wjenkins7 0:b9eebf731cbe 132 lcd3.locate(0,1);
wjenkins7 0:b9eebf731cbe 133 if(n==0)lcd3.printf("Common cards:");
wjenkins7 0:b9eebf731cbe 134 if(n<3) {
wjenkins7 0:b9eebf731cbe 135 lcd3.locate(2+3*n,4+3*n);
wjenkins7 0:b9eebf731cbe 136 } else {
wjenkins7 0:b9eebf731cbe 137 m=n-3;
wjenkins7 0:b9eebf731cbe 138 lcd3.locate(6+3*m,4+3*m);
wjenkins7 0:b9eebf731cbe 139 }
wjenkins7 0:b9eebf731cbe 140 if((suit==1)||(suit==2))lcd3.foreground(0x000000);
wjenkins7 0:b9eebf731cbe 141 if((suit==3)||(suit==4))lcd3.foreground(0xFF0000);
wjenkins7 0:b9eebf731cbe 142 if(suit == 1) {
wjenkins7 0:b9eebf731cbe 143 y = 'S';
wjenkins7 0:b9eebf731cbe 144 } else if(suit == 2) {
wjenkins7 0:b9eebf731cbe 145 y = 'C';
wjenkins7 0:b9eebf731cbe 146 } else if(suit == 3) {
wjenkins7 0:b9eebf731cbe 147 y = 'H';
wjenkins7 0:b9eebf731cbe 148 } else y = 'D';
wjenkins7 0:b9eebf731cbe 149 if(card==2) x = '2';
wjenkins7 0:b9eebf731cbe 150 else if(card == 3) x = '3';
wjenkins7 0:b9eebf731cbe 151 else if(card == 4) x = '4';
wjenkins7 0:b9eebf731cbe 152 else if(card == 5) x = '5';
wjenkins7 0:b9eebf731cbe 153 else if(card == 6) x = '6';
wjenkins7 0:b9eebf731cbe 154 else if(card == 7) x = '7';
wjenkins7 0:b9eebf731cbe 155 else if(card == 8) x = '8';
wjenkins7 0:b9eebf731cbe 156 else if(card == 9) x = '9';
wjenkins7 0:b9eebf731cbe 157 else if(card == 10) {
wjenkins7 0:b9eebf731cbe 158 x = '1';
wjenkins7 0:b9eebf731cbe 159 w = '0';
wjenkins7 0:b9eebf731cbe 160 lcd3.printf(" %c%c",x,w);
wjenkins7 0:b9eebf731cbe 161 lcd3.printf(" %c", y);
wjenkins7 0:b9eebf731cbe 162 } else if(card == 11) x = 'J';
wjenkins7 0:b9eebf731cbe 163 else if (card == 12) x = 'Q';
wjenkins7 0:b9eebf731cbe 164 else if (card == 13) x = 'K';
wjenkins7 0:b9eebf731cbe 165 else if (card == 1) x = 'A';
wjenkins7 0:b9eebf731cbe 166 if(card!=10) {
wjenkins7 0:b9eebf731cbe 167 lcd3.printf(" %c",x);
wjenkins7 0:b9eebf731cbe 168 lcd3.printf(" %c", y);
wjenkins7 0:b9eebf731cbe 169 }
wjenkins7 0:b9eebf731cbe 170
wjenkins7 0:b9eebf731cbe 171 } else if(op == 2) {
wjenkins7 0:b9eebf731cbe 172 lcd3.locate(0,13);
wjenkins7 0:b9eebf731cbe 173 lcd3.foreground(0x000000);
wjenkins7 0:b9eebf731cbe 174 lcd3.printf("Current player:%d", n+1);
wjenkins7 0:b9eebf731cbe 175 } else if(op == 3) {
wjenkins7 0:b9eebf731cbe 176 lcd3.locate(0,15);
wjenkins7 0:b9eebf731cbe 177 lcd3.foreground(0x000000);
wjenkins7 0:b9eebf731cbe 178 lcd3.printf("Current Pot:%d", n);
wjenkins7 0:b9eebf731cbe 179 } else {
wjenkins7 0:b9eebf731cbe 180 lcd3.reset();
wjenkins7 0:b9eebf731cbe 181 lcd3.foreground(0x000000);
wjenkins7 0:b9eebf731cbe 182 lcd3.background(0x2b8135);
wjenkins7 0:b9eebf731cbe 183 lcd3.fill(0, 0, 136, 136, 0x2b8135);
wjenkins7 0:b9eebf731cbe 184 lcd3.locate(0,0);
wjenkins7 0:b9eebf731cbe 185 }
wjenkins7 0:b9eebf731cbe 186 }
wjenkins7 0:b9eebf731cbe 187
wjenkins7 0:b9eebf731cbe 188 void print_on_lcd(int n, int suit, int card, int id)
wjenkins7 0:b9eebf731cbe 189 {
wjenkins7 0:b9eebf731cbe 190 char x,y,w;
wjenkins7 0:b9eebf731cbe 191 x = 0;
wjenkins7 0:b9eebf731cbe 192 y = 0;
wjenkins7 0:b9eebf731cbe 193 w = 0;
wjenkins7 0:b9eebf731cbe 194 switch(id) {
wjenkins7 0:b9eebf731cbe 195 case 0:
wjenkins7 0:b9eebf731cbe 196 // lcd1.reset();
wjenkins7 0:b9eebf731cbe 197 lcd1.background(0x2b8135);
wjenkins7 0:b9eebf731cbe 198 lcd1.foreground(0x000000);
wjenkins7 0:b9eebf731cbe 199 // lcd1.cls();
wjenkins7 0:b9eebf731cbe 200 lcd1.locate(0,3);
wjenkins7 0:b9eebf731cbe 201 if(n >= 0) {
wjenkins7 0:b9eebf731cbe 202 lcd1.printf("Raise to %d",n);
wjenkins7 0:b9eebf731cbe 203 }
wjenkins7 0:b9eebf731cbe 204 if(n == -1) {
wjenkins7 0:b9eebf731cbe 205 lcd1.printf("Fold");
wjenkins7 0:b9eebf731cbe 206 }
wjenkins7 0:b9eebf731cbe 207 if(n == -2) {
wjenkins7 0:b9eebf731cbe 208 lcd1.printf("Call");
wjenkins7 0:b9eebf731cbe 209 }
wjenkins7 0:b9eebf731cbe 210 if(n == -4) {
wjenkins7 0:b9eebf731cbe 211 lcd1.reset();
wjenkins7 0:b9eebf731cbe 212 lcd1.cls();
wjenkins7 0:b9eebf731cbe 213 lcd1.printf("Time up!");
wjenkins7 0:b9eebf731cbe 214 }
wjenkins7 0:b9eebf731cbe 215 if (n==-3) {
wjenkins7 0:b9eebf731cbe 216 lcd1.printf("Exceeds limit, enter new value");
wjenkins7 0:b9eebf731cbe 217 }
wjenkins7 0:b9eebf731cbe 218
wjenkins7 0:b9eebf731cbe 219 if(n == -6) {
wjenkins7 0:b9eebf731cbe 220 lcd1.locate(5,6);
wjenkins7 0:b9eebf731cbe 221 if(suit == 1) {
wjenkins7 0:b9eebf731cbe 222 y = 'S';
wjenkins7 0:b9eebf731cbe 223 } else if(suit == 2) {
wjenkins7 0:b9eebf731cbe 224 y = 'C';
wjenkins7 0:b9eebf731cbe 225 } else if(suit == 3) {
wjenkins7 0:b9eebf731cbe 226 y = 'H';
wjenkins7 0:b9eebf731cbe 227 } else y = 'D';
wjenkins7 0:b9eebf731cbe 228 if((y=='S')||(y=='C'))lcd1.foreground(0x000000);
wjenkins7 0:b9eebf731cbe 229 if((y=='H')||(y=='D'))lcd1.foreground(0xFF0000);
wjenkins7 0:b9eebf731cbe 230 if(card==2) x = '2';
wjenkins7 0:b9eebf731cbe 231 else if(card == 3) x = '3';
wjenkins7 0:b9eebf731cbe 232 else if(card == 4) x = '4';
wjenkins7 0:b9eebf731cbe 233 else if(card == 5) x = '5';
wjenkins7 0:b9eebf731cbe 234 else if(card == 6) x = '6';
wjenkins7 0:b9eebf731cbe 235 else if(card == 7) x = '7';
wjenkins7 0:b9eebf731cbe 236 else if(card == 8) x = '8';
wjenkins7 0:b9eebf731cbe 237 else if(card == 9) x = '9';
wjenkins7 0:b9eebf731cbe 238 else if(card == 10) {
wjenkins7 0:b9eebf731cbe 239 x = '1';
wjenkins7 0:b9eebf731cbe 240 w = '0';
wjenkins7 0:b9eebf731cbe 241 lcd1.printf("%c%c %c", x, w, y);
wjenkins7 0:b9eebf731cbe 242 } else if(card == 11) x = 'J';
wjenkins7 0:b9eebf731cbe 243 else if (card == 12) x = 'Q';
wjenkins7 0:b9eebf731cbe 244 else if (card == 13) x = 'K';
wjenkins7 0:b9eebf731cbe 245 else if (card == 1) x = 'A';
wjenkins7 0:b9eebf731cbe 246 if(card!=10)lcd1.printf(" %c %c",x, y);
wjenkins7 0:b9eebf731cbe 247 }
wjenkins7 0:b9eebf731cbe 248 if(n == -5) {
wjenkins7 0:b9eebf731cbe 249 lcd1.locate(5,8);
wjenkins7 0:b9eebf731cbe 250 if(suit == 1) {
wjenkins7 0:b9eebf731cbe 251 y = 'S';
wjenkins7 0:b9eebf731cbe 252 } else if(suit == 2) {
wjenkins7 0:b9eebf731cbe 253 y = 'C';
wjenkins7 0:b9eebf731cbe 254 } else if(suit == 3) {
wjenkins7 0:b9eebf731cbe 255 y = 'H';
wjenkins7 0:b9eebf731cbe 256 } else y = 'D';
wjenkins7 0:b9eebf731cbe 257 if((y=='S')||(y=='C'))lcd1.foreground(0x000000);
wjenkins7 0:b9eebf731cbe 258 if((y=='H')||(y=='D'))lcd1.foreground(0xFF0000);
wjenkins7 0:b9eebf731cbe 259 if(card==2) x = '2';
wjenkins7 0:b9eebf731cbe 260 else if(card == 3) x = '3';
wjenkins7 0:b9eebf731cbe 261 else if(card == 4) x = '4';
wjenkins7 0:b9eebf731cbe 262 else if(card == 5) x = '5';
wjenkins7 0:b9eebf731cbe 263 else if(card == 6) x = '6';
wjenkins7 0:b9eebf731cbe 264 else if(card == 7) x = '7';
wjenkins7 0:b9eebf731cbe 265 else if(card == 8) x = '8';
wjenkins7 0:b9eebf731cbe 266 else if(card == 9) x = '9';
wjenkins7 0:b9eebf731cbe 267 else if(card == 10) {
wjenkins7 0:b9eebf731cbe 268 x = '1';
wjenkins7 0:b9eebf731cbe 269 w = '0';
wjenkins7 0:b9eebf731cbe 270 lcd1.printf("%c%c %c", x, w, y);
wjenkins7 0:b9eebf731cbe 271 } else if(card == 11) x = 'J';
wjenkins7 0:b9eebf731cbe 272 else if (card == 12) x = 'Q';
wjenkins7 0:b9eebf731cbe 273 else if (card == 13) x = 'K';
wjenkins7 0:b9eebf731cbe 274 else if (card == 1) x = 'A';
wjenkins7 0:b9eebf731cbe 275 if(card!=10)lcd1.printf(" %c %c", x, y);
wjenkins7 0:b9eebf731cbe 276 }
wjenkins7 0:b9eebf731cbe 277 break;
wjenkins7 0:b9eebf731cbe 278 case -9:
wjenkins7 0:b9eebf731cbe 279 if(suit==0) {
wjenkins7 0:b9eebf731cbe 280 lcd1.foreground(0x000000);
wjenkins7 0:b9eebf731cbe 281 lcd1.locate(0, 1);
wjenkins7 0:b9eebf731cbe 282 lcd1.printf("Current wallet:");
wjenkins7 0:b9eebf731cbe 283 lcd1.locate(6,3);
wjenkins7 0:b9eebf731cbe 284 lcd1.printf("%d",n);
wjenkins7 0:b9eebf731cbe 285 } else if(suit==1) {
wjenkins7 0:b9eebf731cbe 286 lcd2.foreground(0x000000);
wjenkins7 0:b9eebf731cbe 287 lcd2.locate(0, 1);
wjenkins7 0:b9eebf731cbe 288 lcd2.printf("Current wallet:");
wjenkins7 0:b9eebf731cbe 289 lcd2.locate(6,3);
wjenkins7 0:b9eebf731cbe 290 lcd2.printf("%d",n);
wjenkins7 0:b9eebf731cbe 291 }
wjenkins7 0:b9eebf731cbe 292 break;
wjenkins7 0:b9eebf731cbe 293 case -8://(bet-Playerbet[ID],ID, 0, -8)
wjenkins7 0:b9eebf731cbe 294 /*if(suit==0) {
wjenkins7 0:b9eebf731cbe 295 lcd1.foreground(0x000000);
wjenkins7 0:b9eebf731cbe 296 lcd1.locate(4, 10);
wjenkins7 0:b9eebf731cbe 297 if(card==0)lcd1.printf("To Call: ");
wjenkins7 0:b9eebf731cbe 298 if(card==1)lcd1.printf("To Raise:");
wjenkins7 0:b9eebf731cbe 299 lcd1.locate(6,12);
wjenkins7 0:b9eebf731cbe 300 lcd1.printf("%d",n);
wjenkins7 0:b9eebf731cbe 301 } else if(suit==1) {
wjenkins7 0:b9eebf731cbe 302 lcd2.foreground(0x000000);
wjenkins7 0:b9eebf731cbe 303 lcd2.locate(4, 10);
wjenkins7 0:b9eebf731cbe 304 if(card==0)lcd2.printf("To Call:");
wjenkins7 0:b9eebf731cbe 305 if(card==1)lcd2.printf("To Raise:");
wjenkins7 0:b9eebf731cbe 306 lcd2.locate(6,12);
wjenkins7 0:b9eebf731cbe 307 lcd2.printf("%d",n);
wjenkins7 0:b9eebf731cbe 308 }*/
wjenkins7 0:b9eebf731cbe 309 break;
wjenkins7 0:b9eebf731cbe 310 case 1:
wjenkins7 0:b9eebf731cbe 311 //lcd2.reset();
wjenkins7 0:b9eebf731cbe 312 lcd2.background(0x2b8135);
wjenkins7 0:b9eebf731cbe 313 lcd2.foreground(0x000000);
wjenkins7 0:b9eebf731cbe 314 //lcd2.cls();
wjenkins7 0:b9eebf731cbe 315 lcd2.locate(0,3);
wjenkins7 0:b9eebf731cbe 316 if(n >= 0) {
wjenkins7 0:b9eebf731cbe 317 lcd2.printf("Raise to %d",n);
wjenkins7 0:b9eebf731cbe 318 }
wjenkins7 0:b9eebf731cbe 319 if(n == -1) {
wjenkins7 0:b9eebf731cbe 320 lcd2.printf("Fold");
wjenkins7 0:b9eebf731cbe 321 }
wjenkins7 0:b9eebf731cbe 322 if(n == -2) {
wjenkins7 0:b9eebf731cbe 323 lcd2.printf("Call");
wjenkins7 0:b9eebf731cbe 324 }
wjenkins7 0:b9eebf731cbe 325 if(n == -4) {
wjenkins7 0:b9eebf731cbe 326 lcd2.reset();
wjenkins7 0:b9eebf731cbe 327 lcd2.cls();
wjenkins7 0:b9eebf731cbe 328 lcd2.printf("Time up!");
wjenkins7 0:b9eebf731cbe 329 }
wjenkins7 0:b9eebf731cbe 330 if (n == -3) {
wjenkins7 0:b9eebf731cbe 331 lcd2.printf("Exceeds limit, enter new value");
wjenkins7 0:b9eebf731cbe 332 }
wjenkins7 0:b9eebf731cbe 333
wjenkins7 0:b9eebf731cbe 334 if(n != -6) {
wjenkins7 0:b9eebf731cbe 335 lcd2.locate(5,6);
wjenkins7 0:b9eebf731cbe 336 if(suit == 1) {
wjenkins7 0:b9eebf731cbe 337 y = 'S';
wjenkins7 0:b9eebf731cbe 338 } else if(suit == 2) {
wjenkins7 0:b9eebf731cbe 339 y = 'C';
wjenkins7 0:b9eebf731cbe 340 } else if(suit == 3) {
wjenkins7 0:b9eebf731cbe 341 y = 'H';
wjenkins7 0:b9eebf731cbe 342 } else y = 'D';
wjenkins7 0:b9eebf731cbe 343 if((y=='S')||(y=='C'))lcd2.foreground(0x000000);
wjenkins7 0:b9eebf731cbe 344 if((y=='H')||(y=='D'))lcd2.foreground(0xFF0000);
wjenkins7 0:b9eebf731cbe 345 if(card==2) x = '2';
wjenkins7 0:b9eebf731cbe 346 else if(card == 3) x = '3';
wjenkins7 0:b9eebf731cbe 347 else if(card == 4) x = '4';
wjenkins7 0:b9eebf731cbe 348 else if(card == 5) x = '5';
wjenkins7 0:b9eebf731cbe 349 else if(card == 6) x = '6';
wjenkins7 0:b9eebf731cbe 350 else if(card == 7) x = '7';
wjenkins7 0:b9eebf731cbe 351 else if(card == 8) x = '8';
wjenkins7 0:b9eebf731cbe 352 else if(card == 9) x = '9';
wjenkins7 0:b9eebf731cbe 353 else if(card == 10) {
wjenkins7 0:b9eebf731cbe 354 x = '1';
wjenkins7 0:b9eebf731cbe 355 w = '0';
wjenkins7 0:b9eebf731cbe 356 lcd2.printf("%c%c %c", x, w, y);
wjenkins7 0:b9eebf731cbe 357 } else if(card == 11) x = 'J';
wjenkins7 0:b9eebf731cbe 358 else if (card == 12) x = 'Q';
wjenkins7 0:b9eebf731cbe 359 else if (card == 13) x = 'K';
wjenkins7 0:b9eebf731cbe 360 else if (card == 1) x = 'A';
wjenkins7 0:b9eebf731cbe 361 if(card!=10)lcd2.printf(" %c %c", x, y);
wjenkins7 0:b9eebf731cbe 362 }
wjenkins7 0:b9eebf731cbe 363
wjenkins7 0:b9eebf731cbe 364 if(n != -5) {
wjenkins7 0:b9eebf731cbe 365 lcd2.locate(5,8);
wjenkins7 0:b9eebf731cbe 366 if(suit == 1) {
wjenkins7 0:b9eebf731cbe 367 y = 'S';
wjenkins7 0:b9eebf731cbe 368 } else if(suit == 2) {
wjenkins7 0:b9eebf731cbe 369 y = 'C';
wjenkins7 0:b9eebf731cbe 370 } else if(suit == 3) {
wjenkins7 0:b9eebf731cbe 371 y = 'H';
wjenkins7 0:b9eebf731cbe 372 } else y = 'D';
wjenkins7 0:b9eebf731cbe 373 if((y=='S')||(y=='C'))lcd2.foreground(0x000000);
wjenkins7 0:b9eebf731cbe 374 if((y=='H')||(y=='D'))lcd2.foreground(0xFF0000);
wjenkins7 0:b9eebf731cbe 375 if(card==2) x = '2';
wjenkins7 0:b9eebf731cbe 376 else if(card == 3) x = '3';
wjenkins7 0:b9eebf731cbe 377 else if(card == 4) x = '4';
wjenkins7 0:b9eebf731cbe 378 else if(card == 5) x = '5';
wjenkins7 0:b9eebf731cbe 379 else if(card == 6) x = '6';
wjenkins7 0:b9eebf731cbe 380 else if(card == 7) x = '7';
wjenkins7 0:b9eebf731cbe 381 else if(card == 8) x = '8';
wjenkins7 0:b9eebf731cbe 382 else if(card == 9) x = '9';
wjenkins7 0:b9eebf731cbe 383 else if(card == 10) {
wjenkins7 0:b9eebf731cbe 384 x = '1';
wjenkins7 0:b9eebf731cbe 385 w = '0';
wjenkins7 0:b9eebf731cbe 386 lcd2.printf("%c %c%c", x, w, y);
wjenkins7 0:b9eebf731cbe 387 } else if(card == 11) x = 'J';
wjenkins7 0:b9eebf731cbe 388 else if (card == 12) x = 'Q';
wjenkins7 0:b9eebf731cbe 389 else if (card == 13) x = 'K';
wjenkins7 0:b9eebf731cbe 390 else if (card == 1) x = 'A';
wjenkins7 0:b9eebf731cbe 391 if(card!=10)lcd2.printf(" %c %c", x, y);
wjenkins7 0:b9eebf731cbe 392 }
wjenkins7 0:b9eebf731cbe 393 break;
wjenkins7 0:b9eebf731cbe 394 case 2:
wjenkins7 0:b9eebf731cbe 395 lcd1.cls();
wjenkins7 0:b9eebf731cbe 396 break;
wjenkins7 0:b9eebf731cbe 397 case 3:
wjenkins7 0:b9eebf731cbe 398 lcd2.cls();
wjenkins7 0:b9eebf731cbe 399 break;
wjenkins7 0:b9eebf731cbe 400 default:
wjenkins7 0:b9eebf731cbe 401 lcd2.cls();
wjenkins7 0:b9eebf731cbe 402 lcd1.cls();
wjenkins7 0:b9eebf731cbe 403 break;
wjenkins7 0:b9eebf731cbe 404
wjenkins7 0:b9eebf731cbe 405 }
wjenkins7 0:b9eebf731cbe 406 wait(rand()%1);
wjenkins7 0:b9eebf731cbe 407 }
wjenkins7 0:b9eebf731cbe 408
wjenkins7 0:b9eebf731cbe 409 int read_keypad(int n)
wjenkins7 0:b9eebf731cbe 410 {
wjenkins7 0:b9eebf731cbe 411
wjenkins7 0:b9eebf731cbe 412 pc.printf("\nHello from the mbed & mpr121\n\r");
wjenkins7 0:b9eebf731cbe 413
wjenkins7 0:b9eebf731cbe 414 Timer t;
wjenkins7 0:b9eebf731cbe 415 //float s;
wjenkins7 0:b9eebf731cbe 416 //int turn;
wjenkins7 0:b9eebf731cbe 417 unsigned char dataArray[2];
wjenkins7 0:b9eebf731cbe 418 unsigned int Amount[6];
wjenkins7 0:b9eebf731cbe 419 int max = 6;
wjenkins7 0:b9eebf731cbe 420 unsigned int Total = 0;
wjenkins7 0:b9eebf731cbe 421 int key = 0;
wjenkins7 0:b9eebf731cbe 422 int count = 0;
wjenkins7 0:b9eebf731cbe 423 //unsigned int card[2] = {3,12};
wjenkins7 0:b9eebf731cbe 424 //unsigned char suit[2] = {'S','H'};
wjenkins7 0:b9eebf731cbe 425
wjenkins7 0:b9eebf731cbe 426 t.reset();
wjenkins7 0:b9eebf731cbe 427 t.start();
wjenkins7 0:b9eebf731cbe 428
wjenkins7 0:b9eebf731cbe 429 while(1) {
wjenkins7 0:b9eebf731cbe 430 //pc.printf("\n Entered value is:");
wjenkins7 0:b9eebf731cbe 431 if(t.read() == 60.0) {
wjenkins7 0:b9eebf731cbe 432 //print_on_lcd(-4, 0, 0, n);
wjenkins7 0:b9eebf731cbe 433 t.stop();
wjenkins7 0:b9eebf731cbe 434 return 0;
wjenkins7 0:b9eebf731cbe 435 }
wjenkins7 0:b9eebf731cbe 436 if((n == 0)||(n == 1)) {
wjenkins7 0:b9eebf731cbe 437 if(n == 0) {
wjenkins7 0:b9eebf731cbe 438 dataArray[0] = mpr1.read(0x00);
wjenkins7 0:b9eebf731cbe 439 dataArray[1] = mpr1.read(0x01);
wjenkins7 0:b9eebf731cbe 440 } else if(n == 1) {
wjenkins7 0:b9eebf731cbe 441 dataArray[0] = mpr2.read(0x00);
wjenkins7 0:b9eebf731cbe 442 dataArray[1] = mpr2.read(0x01);
wjenkins7 0:b9eebf731cbe 443 }
wjenkins7 0:b9eebf731cbe 444 if(dataArray[0] != 0) {
wjenkins7 0:b9eebf731cbe 445 switch(dataArray[0]) {
wjenkins7 0:b9eebf731cbe 446 case 8:
wjenkins7 0:b9eebf731cbe 447 if(count == max) {
wjenkins7 0:b9eebf731cbe 448 pc.printf("Exceeds limit, enter new value \r\n");
wjenkins7 0:b9eebf731cbe 449 //print_on_lcd(-3, 0, 0, n);
wjenkins7 0:b9eebf731cbe 450 for(int i=0; i<6; i++) {
wjenkins7 0:b9eebf731cbe 451 Amount[i] = 0;
wjenkins7 0:b9eebf731cbe 452 }
wjenkins7 0:b9eebf731cbe 453 count = 0;
wjenkins7 0:b9eebf731cbe 454 break;
wjenkins7 0:b9eebf731cbe 455 }
wjenkins7 0:b9eebf731cbe 456 pc.printf("MPR value: %d \r\n", 1);
wjenkins7 0:b9eebf731cbe 457 //print_on_lcd(1);
wjenkins7 0:b9eebf731cbe 458 Amount[count] = 1;
wjenkins7 0:b9eebf731cbe 459 count++;
wjenkins7 0:b9eebf731cbe 460 break;
wjenkins7 0:b9eebf731cbe 461 case 128:
wjenkins7 0:b9eebf731cbe 462 if(count == max) {
wjenkins7 0:b9eebf731cbe 463 pc.printf("Exceeds limit, enter new value \r\n");
wjenkins7 0:b9eebf731cbe 464 //print_on_lcd(-3, 0, 0, n);
wjenkins7 0:b9eebf731cbe 465 for(int i=0; i<6; i++) {
wjenkins7 0:b9eebf731cbe 466 Amount[i] = 0;
wjenkins7 0:b9eebf731cbe 467 }
wjenkins7 0:b9eebf731cbe 468 count = 0;
wjenkins7 0:b9eebf731cbe 469 break;
wjenkins7 0:b9eebf731cbe 470 }
wjenkins7 0:b9eebf731cbe 471 pc.printf("MPR value: %d \r\n", 2);
wjenkins7 0:b9eebf731cbe 472 // print_on_lcd(2);
wjenkins7 0:b9eebf731cbe 473 Amount[count] = 2;
wjenkins7 0:b9eebf731cbe 474 count++;
wjenkins7 0:b9eebf731cbe 475 break;
wjenkins7 0:b9eebf731cbe 476 case 4:
wjenkins7 0:b9eebf731cbe 477 if(count == max) {
wjenkins7 0:b9eebf731cbe 478 pc.printf("Exceeds limit, enter new value \r\n");
wjenkins7 0:b9eebf731cbe 479 //print_on_lcd(-3, 0, 0, n);
wjenkins7 0:b9eebf731cbe 480 for(int i=0; i<6; i++) {
wjenkins7 0:b9eebf731cbe 481 Amount[i] = 0;
wjenkins7 0:b9eebf731cbe 482 }
wjenkins7 0:b9eebf731cbe 483 count = 0;
wjenkins7 0:b9eebf731cbe 484 break;
wjenkins7 0:b9eebf731cbe 485 }
wjenkins7 0:b9eebf731cbe 486 pc.printf("MPR value: %d \r\n", 4);
wjenkins7 0:b9eebf731cbe 487 // print_on_lcd(4);
wjenkins7 0:b9eebf731cbe 488 Amount[count] = 4;
wjenkins7 0:b9eebf731cbe 489 count++;
wjenkins7 0:b9eebf731cbe 490 break;
wjenkins7 0:b9eebf731cbe 491 case 64:
wjenkins7 0:b9eebf731cbe 492 if(count == max) {
wjenkins7 0:b9eebf731cbe 493 pc.printf("Exceeds limit, enter new value \r\n");
wjenkins7 0:b9eebf731cbe 494 //print_on_lcd(-3, 0, 0, n);
wjenkins7 0:b9eebf731cbe 495 for(int i=0; i<6; i++) {
wjenkins7 0:b9eebf731cbe 496 Amount[i] = 0;
wjenkins7 0:b9eebf731cbe 497 }
wjenkins7 0:b9eebf731cbe 498 count = 0;
wjenkins7 0:b9eebf731cbe 499 break;
wjenkins7 0:b9eebf731cbe 500 }
wjenkins7 0:b9eebf731cbe 501 pc.printf("MPR value: %d \r\n", 5);
wjenkins7 0:b9eebf731cbe 502 Amount[count] = 5;
wjenkins7 0:b9eebf731cbe 503 // print_on_lcd(5);
wjenkins7 0:b9eebf731cbe 504 count++;
wjenkins7 0:b9eebf731cbe 505 break;
wjenkins7 0:b9eebf731cbe 506 case 2:
wjenkins7 0:b9eebf731cbe 507 if(count == max) {
wjenkins7 0:b9eebf731cbe 508 pc.printf("Exceeds limit, enter new value \r\n");
wjenkins7 0:b9eebf731cbe 509 //print_on_lcd(-3, 0, 0, n);
wjenkins7 0:b9eebf731cbe 510 for(int i=0; i<6; i++) {
wjenkins7 0:b9eebf731cbe 511 Amount[i] = 0;
wjenkins7 0:b9eebf731cbe 512 }
wjenkins7 0:b9eebf731cbe 513 count = 0;
wjenkins7 0:b9eebf731cbe 514 break;
wjenkins7 0:b9eebf731cbe 515 }
wjenkins7 0:b9eebf731cbe 516 pc.printf("MPR value: %d \r\n", 7);
wjenkins7 0:b9eebf731cbe 517 Amount[count] = 7;//print_on_lcd(7);
wjenkins7 0:b9eebf731cbe 518 count++;
wjenkins7 0:b9eebf731cbe 519 break;
wjenkins7 0:b9eebf731cbe 520 case 32:
wjenkins7 0:b9eebf731cbe 521 if(count == max) {
wjenkins7 0:b9eebf731cbe 522 pc.printf("Exceeds limit, enter new value \r\n");
wjenkins7 0:b9eebf731cbe 523 //print_on_lcd(-3, 0, 0, n);
wjenkins7 0:b9eebf731cbe 524 for(int i=0; i<6; i++) {
wjenkins7 0:b9eebf731cbe 525 Amount[i] = 0;
wjenkins7 0:b9eebf731cbe 526 }
wjenkins7 0:b9eebf731cbe 527 count = 0;
wjenkins7 0:b9eebf731cbe 528 break;
wjenkins7 0:b9eebf731cbe 529 }
wjenkins7 0:b9eebf731cbe 530 pc.printf("MPR value: %d \r\n", 8);//print_on_lcd(8);
wjenkins7 0:b9eebf731cbe 531 Amount[count] = 8;
wjenkins7 0:b9eebf731cbe 532 count++;
wjenkins7 0:b9eebf731cbe 533 break;
wjenkins7 0:b9eebf731cbe 534 case 1:
wjenkins7 0:b9eebf731cbe 535
wjenkins7 0:b9eebf731cbe 536 if(count != 0) {
wjenkins7 0:b9eebf731cbe 537 while( count != 0) {
wjenkins7 0:b9eebf731cbe 538 Total += Amount[key]*(pow( 10, (float) (count-1) ));
wjenkins7 0:b9eebf731cbe 539 count--;
wjenkins7 0:b9eebf731cbe 540 key++;
wjenkins7 0:b9eebf731cbe 541 }
wjenkins7 0:b9eebf731cbe 542 pc.printf("Total is: %d \r\n",Total);
wjenkins7 0:b9eebf731cbe 543 //print_on_lcd(Total, 0, 0, n);
wjenkins7 0:b9eebf731cbe 544 for(int i=0; i<6; i++) {
wjenkins7 0:b9eebf731cbe 545 Amount[i] = 0;
wjenkins7 0:b9eebf731cbe 546 }
wjenkins7 0:b9eebf731cbe 547 t.stop();
wjenkins7 0:b9eebf731cbe 548 return Total;
wjenkins7 0:b9eebf731cbe 549 } else {
wjenkins7 0:b9eebf731cbe 550 pc.printf("MPR value: %s \r\n", "Call");
wjenkins7 0:b9eebf731cbe 551 //print_on_lcd(-2, 0, 0, n);
wjenkins7 0:b9eebf731cbe 552 t.stop();
wjenkins7 0:b9eebf731cbe 553 return -2;
wjenkins7 0:b9eebf731cbe 554 }
wjenkins7 0:b9eebf731cbe 555 case 16:
wjenkins7 0:b9eebf731cbe 556 if(count == max) {
wjenkins7 0:b9eebf731cbe 557 pc.printf("Exceeds limit, enter new value \r\n");
wjenkins7 0:b9eebf731cbe 558 //print_on_lcd(-3, 0, 0, n);
wjenkins7 0:b9eebf731cbe 559 for(int i=0; i<6; i++) {
wjenkins7 0:b9eebf731cbe 560 Amount[i] = 0;
wjenkins7 0:b9eebf731cbe 561 }
wjenkins7 0:b9eebf731cbe 562 count = 0;
wjenkins7 0:b9eebf731cbe 563 break;
wjenkins7 0:b9eebf731cbe 564 }
wjenkins7 0:b9eebf731cbe 565 pc.printf("MPR value: %d \r\n", 0);
wjenkins7 0:b9eebf731cbe 566 Amount[count] = 0;
wjenkins7 0:b9eebf731cbe 567 count++;
wjenkins7 0:b9eebf731cbe 568 break;
wjenkins7 0:b9eebf731cbe 569 }
wjenkins7 0:b9eebf731cbe 570 wait(0.5);
wjenkins7 0:b9eebf731cbe 571 dataArray[0] = 0;
wjenkins7 0:b9eebf731cbe 572 } else {
wjenkins7 0:b9eebf731cbe 573 if(dataArray[1] != 0) {
wjenkins7 0:b9eebf731cbe 574 switch(dataArray[1]) {
wjenkins7 0:b9eebf731cbe 575 case 8:
wjenkins7 0:b9eebf731cbe 576 if(count == max) {
wjenkins7 0:b9eebf731cbe 577 pc.printf("Exceeds limit, enter new value \r\n");
wjenkins7 0:b9eebf731cbe 578 //print_on_lcd(-3, 0, 0, n);
wjenkins7 0:b9eebf731cbe 579 for(int i=0; i<6; i++) {
wjenkins7 0:b9eebf731cbe 580 Amount[i] = 0;
wjenkins7 0:b9eebf731cbe 581 }
wjenkins7 0:b9eebf731cbe 582 count = 0;
wjenkins7 0:b9eebf731cbe 583 break;
wjenkins7 0:b9eebf731cbe 584 }
wjenkins7 0:b9eebf731cbe 585 pc.printf("MPR value: %d \r\n", 3);
wjenkins7 0:b9eebf731cbe 586 Amount[count] = 3;
wjenkins7 0:b9eebf731cbe 587 count++;
wjenkins7 0:b9eebf731cbe 588 break;
wjenkins7 0:b9eebf731cbe 589 case 4:
wjenkins7 0:b9eebf731cbe 590 if(count == max) {
wjenkins7 0:b9eebf731cbe 591 pc.printf("Exceeds limit, enter new value \r\n");
wjenkins7 0:b9eebf731cbe 592 //print_on_lcd(-3, 0, 0, n);
wjenkins7 0:b9eebf731cbe 593 for(int i=0; i<6; i++) {
wjenkins7 0:b9eebf731cbe 594 Amount[i] = 0;
wjenkins7 0:b9eebf731cbe 595 }
wjenkins7 0:b9eebf731cbe 596 count = 0;
wjenkins7 0:b9eebf731cbe 597 break;
wjenkins7 0:b9eebf731cbe 598 }
wjenkins7 0:b9eebf731cbe 599 pc.printf("MPR value: %d \r\n", 6);
wjenkins7 0:b9eebf731cbe 600 Amount[count] = 6;
wjenkins7 0:b9eebf731cbe 601 count++;
wjenkins7 0:b9eebf731cbe 602 break;
wjenkins7 0:b9eebf731cbe 603 case 2:
wjenkins7 0:b9eebf731cbe 604 if(count == max) {
wjenkins7 0:b9eebf731cbe 605 pc.printf("Exceeds limit, enter new value \r\n");
wjenkins7 0:b9eebf731cbe 606 //print_on_lcd(-3, 0, 0, n);
wjenkins7 0:b9eebf731cbe 607 for(int i=0; i<6; i++) {
wjenkins7 0:b9eebf731cbe 608 Amount[i] = 0;
wjenkins7 0:b9eebf731cbe 609 }
wjenkins7 0:b9eebf731cbe 610 count = 0;
wjenkins7 0:b9eebf731cbe 611 break;
wjenkins7 0:b9eebf731cbe 612 }
wjenkins7 0:b9eebf731cbe 613 pc.printf("MPR value: %d \r\n", 9);
wjenkins7 0:b9eebf731cbe 614 Amount[count] = 9;
wjenkins7 0:b9eebf731cbe 615 count++;
wjenkins7 0:b9eebf731cbe 616 break;
wjenkins7 0:b9eebf731cbe 617 case 1:
wjenkins7 0:b9eebf731cbe 618 if(count != 0) {
wjenkins7 0:b9eebf731cbe 619 while( count != 0) {
wjenkins7 0:b9eebf731cbe 620 Total += Amount[key]*(pow( 10, (float) (count-1) ));
wjenkins7 0:b9eebf731cbe 621 count--;
wjenkins7 0:b9eebf731cbe 622 key++;
wjenkins7 0:b9eebf731cbe 623 }
wjenkins7 0:b9eebf731cbe 624 pc.printf("Total is: %d \r\n",Total);
wjenkins7 0:b9eebf731cbe 625 //print_on_lcd(Total, 0, 0, n);
wjenkins7 0:b9eebf731cbe 626 for(int i=0; i<6; i++) {
wjenkins7 0:b9eebf731cbe 627 Amount[i] = 0;
wjenkins7 0:b9eebf731cbe 628 }
wjenkins7 0:b9eebf731cbe 629 t.stop();
wjenkins7 0:b9eebf731cbe 630 return Total;
wjenkins7 0:b9eebf731cbe 631 } else {
wjenkins7 0:b9eebf731cbe 632 pc.printf("MPR value: %s \r\n", "Fold");
wjenkins7 0:b9eebf731cbe 633 //print_on_lcd(-1, 0, 0, n);
wjenkins7 0:b9eebf731cbe 634 for(int i=0; i<6; i++) {
wjenkins7 0:b9eebf731cbe 635 Amount[i] = 0;
wjenkins7 0:b9eebf731cbe 636 }
wjenkins7 0:b9eebf731cbe 637 count = 0;
wjenkins7 0:b9eebf731cbe 638 t.stop();
wjenkins7 0:b9eebf731cbe 639 return 0;
wjenkins7 0:b9eebf731cbe 640 }
wjenkins7 0:b9eebf731cbe 641 }
wjenkins7 0:b9eebf731cbe 642 wait(0.5);
wjenkins7 0:b9eebf731cbe 643 dataArray[1] = 0;
wjenkins7 0:b9eebf731cbe 644 }
wjenkins7 0:b9eebf731cbe 645 }
wjenkins7 0:b9eebf731cbe 646 } else {
wjenkins7 0:b9eebf731cbe 647 }
wjenkins7 0:b9eebf731cbe 648 }
wjenkins7 0:b9eebf731cbe 649 }
wjenkins7 0:b9eebf731cbe 650
wjenkins7 0:b9eebf731cbe 651 int checkcard ( int suit, int face, int reset)
wjenkins7 0:b9eebf731cbe 652 {
wjenkins7 0:b9eebf731cbe 653 int i;
wjenkins7 0:b9eebf731cbe 654
wjenkins7 0:b9eebf731cbe 655 switch(z) {
wjenkins7 0:b9eebf731cbe 656 case 0:
wjenkins7 0:b9eebf731cbe 657 cards[0][0]=suit;
wjenkins7 0:b9eebf731cbe 658 cards[0][1]=face;
wjenkins7 0:b9eebf731cbe 659 z++;
wjenkins7 0:b9eebf731cbe 660 break;
wjenkins7 0:b9eebf731cbe 661 default:
wjenkins7 0:b9eebf731cbe 662 for(i=0; i<z; i++) {
wjenkins7 0:b9eebf731cbe 663 if((cards[i][0]==suit)&&(cards[i][1]==face)) {
wjenkins7 0:b9eebf731cbe 664 return 1;
wjenkins7 0:b9eebf731cbe 665 }
wjenkins7 0:b9eebf731cbe 666 }
wjenkins7 0:b9eebf731cbe 667 cards[z][0]=suit;
wjenkins7 0:b9eebf731cbe 668 cards[z][1]=face;
wjenkins7 0:b9eebf731cbe 669 z++;
wjenkins7 0:b9eebf731cbe 670 break;
wjenkins7 0:b9eebf731cbe 671 }
wjenkins7 0:b9eebf731cbe 672 if(reset==1) {
wjenkins7 0:b9eebf731cbe 673 z=0;
wjenkins7 0:b9eebf731cbe 674 }
wjenkins7 0:b9eebf731cbe 675 return 0;
wjenkins7 0:b9eebf731cbe 676 }
wjenkins7 0:b9eebf731cbe 677
wjenkins7 0:b9eebf731cbe 678 //Main Poker Program
wjenkins7 0:b9eebf731cbe 679 //Main Poker Program
wjenkins7 0:b9eebf731cbe 680 int main()
wjenkins7 0:b9eebf731cbe 681 {
wjenkins7 0:b9eebf731cbe 682 //initialize variables
wjenkins7 0:b9eebf731cbe 683 int pot=0, bet, bet2, round, check, temp, hand, suit, ID=0, blind=-1;
wjenkins7 0:b9eebf731cbe 684 int i, k, j, p=0, r, n, t;
wjenkins7 0:b9eebf731cbe 685
wjenkins7 0:b9eebf731cbe 686 //seed random number generator
wjenkins7 0:b9eebf731cbe 687
wjenkins7 0:b9eebf731cbe 688 srand(time(NULL));
wjenkins7 0:b9eebf731cbe 689
wjenkins7 0:b9eebf731cbe 690 //ask how many players
wjenkins7 0:b9eebf731cbe 691 print_on_dealerlcd( 0, 0, 0, 4);
wjenkins7 0:b9eebf731cbe 692 lcd1.reset();
wjenkins7 0:b9eebf731cbe 693 lcd1.foreground(0x000000);
wjenkins7 0:b9eebf731cbe 694 lcd1.background(0x2b8135);
wjenkins7 0:b9eebf731cbe 695 lcd1.fill(0, 0, 136, 136, 0x2b8135);
wjenkins7 0:b9eebf731cbe 696 lcd1.locate(0,1);
wjenkins7 0:b9eebf731cbe 697
wjenkins7 0:b9eebf731cbe 698 lcd2.reset();
wjenkins7 0:b9eebf731cbe 699 lcd2.foreground(0x000000);
wjenkins7 0:b9eebf731cbe 700 lcd2.background(0x2b8135);
wjenkins7 0:b9eebf731cbe 701 lcd2.fill(0, 0, 136, 136, 0x2b8135);
wjenkins7 0:b9eebf731cbe 702 lcd2.locate(0,1);
wjenkins7 0:b9eebf731cbe 703
wjenkins7 0:b9eebf731cbe 704 while(p<2) {
wjenkins7 0:b9eebf731cbe 705 lcd1.printf("How many players?");
wjenkins7 0:b9eebf731cbe 706 pc.printf("\nAmount of players?");
wjenkins7 0:b9eebf731cbe 707 p=read_keypad(0);
wjenkins7 0:b9eebf731cbe 708 //p=2;
wjenkins7 0:b9eebf731cbe 709 if(p<2)pc.printf("\nnot enough players...");
wjenkins7 0:b9eebf731cbe 710
wjenkins7 0:b9eebf731cbe 711 }
wjenkins7 0:b9eebf731cbe 712 int playermoney[p];
wjenkins7 0:b9eebf731cbe 713
wjenkins7 0:b9eebf731cbe 714 //ask how much each player should start out with
wjenkins7 0:b9eebf731cbe 715 //while((pot<100)||(pot>1000000/p)) {
wjenkins7 0:b9eebf731cbe 716 lcd1.cls();
wjenkins7 0:b9eebf731cbe 717 lcd1.locate(0,1);
wjenkins7 0:b9eebf731cbe 718 lcd1.printf("Money each player starts with?");
wjenkins7 0:b9eebf731cbe 719 pc.printf("Money each player starts with?\n");
wjenkins7 0:b9eebf731cbe 720 pc.printf("\nbetween $100-$%d",1000000/p);
wjenkins7 0:b9eebf731cbe 721 pot=read_keypad(0);
wjenkins7 0:b9eebf731cbe 722 //pot=2000;
wjenkins7 0:b9eebf731cbe 723 //}
wjenkins7 0:b9eebf731cbe 724 for(k=0; k<p; k++) {
wjenkins7 0:b9eebf731cbe 725 playermoney[k]=pot;
wjenkins7 0:b9eebf731cbe 726 pc.printf("player %d\n", k+1);
wjenkins7 0:b9eebf731cbe 727 }
wjenkins7 0:b9eebf731cbe 728
wjenkins7 0:b9eebf731cbe 729 //ask size of blind
wjenkins7 0:b9eebf731cbe 730 while((blind<0)||(blind>pot/16)) {
wjenkins7 0:b9eebf731cbe 731 lcd1.cls();
wjenkins7 0:b9eebf731cbe 732 lcd1.locate(0,1);
wjenkins7 0:b9eebf731cbe 733 lcd1.printf("Size of large");
wjenkins7 0:b9eebf731cbe 734 lcd1.locate(0,3);
wjenkins7 0:b9eebf731cbe 735 lcd1.printf("blind?");
wjenkins7 0:b9eebf731cbe 736 pc.printf("\nSize of large blind?");
wjenkins7 0:b9eebf731cbe 737 lcd1.locate(0,5);
wjenkins7 0:b9eebf731cbe 738 lcd1.printf("Between $0-$%d",pot/16);
wjenkins7 0:b9eebf731cbe 739 blind=read_keypad(0);
wjenkins7 0:b9eebf731cbe 740 //blind=20;
wjenkins7 0:b9eebf731cbe 741 }
wjenkins7 0:b9eebf731cbe 742 lcd1.cls();
wjenkins7 0:b9eebf731cbe 743
wjenkins7 0:b9eebf731cbe 744 pot=0;
wjenkins7 0:b9eebf731cbe 745
wjenkins7 0:b9eebf731cbe 746 //determine hands played to see who should be dealer
wjenkins7 0:b9eebf731cbe 747 for(hand=0; p>1; hand++) {
wjenkins7 0:b9eebf731cbe 748 int playerbet[p], playersuit[p][2], playerface[p][2], communitys[5], highcard[p], playerscore[p], AB[p], AP;
wjenkins7 0:b9eebf731cbe 749 int communityf[5], handface[7], handsuit[7], spade, heart, club, diamond, pot=0, count[14], m=0;
wjenkins7 0:b9eebf731cbe 750 i=checkcard(0,0,1);
wjenkins7 0:b9eebf731cbe 751 pc.printf("\n hand %d",hand);
wjenkins7 0:b9eebf731cbe 752 for(k=0; k<p; k++) {
wjenkins7 0:b9eebf731cbe 753 AB[k]=0;
wjenkins7 0:b9eebf731cbe 754 }
wjenkins7 0:b9eebf731cbe 755 AP=p;
wjenkins7 0:b9eebf731cbe 756 t=secondary_players(0, 0, 0);
wjenkins7 0:b9eebf731cbe 757 print_on_lcd(0, 0, 0, -10);
wjenkins7 0:b9eebf731cbe 758
wjenkins7 0:b9eebf731cbe 759
wjenkins7 0:b9eebf731cbe 760 for(round=1; round<5; round++) {
wjenkins7 0:b9eebf731cbe 761 for(k=0; k<p; k++) {
wjenkins7 0:b9eebf731cbe 762 playerbet[k]=0;
wjenkins7 0:b9eebf731cbe 763 }
wjenkins7 0:b9eebf731cbe 764 if(AP>1) {
wjenkins7 0:b9eebf731cbe 765 switch(round) {
wjenkins7 0:b9eebf731cbe 766 //first round lay players cards
wjenkins7 0:b9eebf731cbe 767 case 1 :
wjenkins7 0:b9eebf731cbe 768 print_on_dealerlcd( 0, 0, 0, 4);
wjenkins7 0:b9eebf731cbe 769 for (r=0; r<p; r++) {
wjenkins7 0:b9eebf731cbe 770 for (k=0; k<2; k++) {
wjenkins7 0:b9eebf731cbe 771 playersuit[r][k]= (rand()%4)+1;
wjenkins7 0:b9eebf731cbe 772 playerface[r][k]= (rand()%13)+1;
wjenkins7 0:b9eebf731cbe 773 check = checkcard( playersuit[r][k], playerface[r][k], 0);
wjenkins7 0:b9eebf731cbe 774 pc.printf("\nCheck 1= %d",check);
wjenkins7 0:b9eebf731cbe 775 if(check==1) {
wjenkins7 0:b9eebf731cbe 776 k--;
wjenkins7 0:b9eebf731cbe 777 } else {
wjenkins7 0:b9eebf731cbe 778 if(r<2) {
wjenkins7 0:b9eebf731cbe 779 print_on_lcd(k-6, playersuit[r][k], playerface[r][k], r);
wjenkins7 0:b9eebf731cbe 780 } else {
wjenkins7 0:b9eebf731cbe 781 t=secondary_players(r, playersuit[r][k], playerface[r][k]);
wjenkins7 0:b9eebf731cbe 782 }
wjenkins7 0:b9eebf731cbe 783 pc.printf("\n operation:%d\t suit:%d\t face:%d\t player%d", k-6, playersuit[r][k], playerface[r][k], r+1);
wjenkins7 0:b9eebf731cbe 784 }
wjenkins7 0:b9eebf731cbe 785 }
wjenkins7 0:b9eebf731cbe 786 }
wjenkins7 0:b9eebf731cbe 787 break;
wjenkins7 0:b9eebf731cbe 788
wjenkins7 0:b9eebf731cbe 789 //second round lay 3 cards on table
wjenkins7 0:b9eebf731cbe 790 case 2 :
wjenkins7 0:b9eebf731cbe 791 for(k=0; k<3; k++) {
wjenkins7 0:b9eebf731cbe 792 communitys[k]=(rand()%4)+1;
wjenkins7 0:b9eebf731cbe 793 communityf[k]=(rand()%13)+1;
wjenkins7 0:b9eebf731cbe 794 pc.printf("\n Amount:%d\t card:%d\t face:%d\t suit:%d\t Operation:%d ", 0, k, communityf[k], communitys[k], 1);
wjenkins7 0:b9eebf731cbe 795 //function to make sure no cards are the same
wjenkins7 0:b9eebf731cbe 796 check = checkcard ( communitys[k], communityf[k], 0);
wjenkins7 0:b9eebf731cbe 797 pc.printf("\nCheck 2= %d",check);
wjenkins7 0:b9eebf731cbe 798 if(check==1) {
wjenkins7 0:b9eebf731cbe 799 k--;
wjenkins7 0:b9eebf731cbe 800 } else {
wjenkins7 0:b9eebf731cbe 801 print_on_dealerlcd( k, communityf[k], communitys[k], 1);
wjenkins7 0:b9eebf731cbe 802 pc.printf("\n Amount:%d\t card:%d\t face:%d\t suit:%d\t Operation:%d ", 0, k, communityf[k], communitys[k], 1);
wjenkins7 0:b9eebf731cbe 803 wait(rand()%1);
wjenkins7 0:b9eebf731cbe 804 }
wjenkins7 0:b9eebf731cbe 805 }
wjenkins7 0:b9eebf731cbe 806 break;
wjenkins7 0:b9eebf731cbe 807
wjenkins7 0:b9eebf731cbe 808 //third round lay single card on table
wjenkins7 0:b9eebf731cbe 809 case 3 :
wjenkins7 0:b9eebf731cbe 810 for(k=0; k<1; k++) {
wjenkins7 0:b9eebf731cbe 811 communitys[3]=(rand()%4)+1;
wjenkins7 0:b9eebf731cbe 812 communityf[3]=(rand()%13)+1;
wjenkins7 0:b9eebf731cbe 813 check = checkcard ( communitys[3], communityf[3], 0);
wjenkins7 0:b9eebf731cbe 814 pc.printf("\n Amount:%d\t card:%d\t face:%d\t suit:%d\t Operation:%d ", 0, k, communityf[3], communitys[3], 1);
wjenkins7 0:b9eebf731cbe 815 pc.printf("\nCheck 3= %d",check);
wjenkins7 0:b9eebf731cbe 816 if(check==1) {
wjenkins7 0:b9eebf731cbe 817 k--;
wjenkins7 0:b9eebf731cbe 818 } else {
wjenkins7 0:b9eebf731cbe 819 print_on_dealerlcd( 3, communityf[3], communitys[3], 1);
wjenkins7 0:b9eebf731cbe 820 pc.printf("\n Amount:%d\t card:%d\t face:%d\t suit:%d\t Operation:%d ", 0, 3, communityf[3], communitys[3], 1);
wjenkins7 0:b9eebf731cbe 821 wait(rand()%1);
wjenkins7 0:b9eebf731cbe 822 }
wjenkins7 0:b9eebf731cbe 823 }
wjenkins7 0:b9eebf731cbe 824 break;
wjenkins7 0:b9eebf731cbe 825
wjenkins7 0:b9eebf731cbe 826 //fourth round lay single card on table
wjenkins7 0:b9eebf731cbe 827 case 4 :
wjenkins7 0:b9eebf731cbe 828 for(k=0; k<1; k++) {
wjenkins7 0:b9eebf731cbe 829 communitys[4]=(rand()%4)+1;
wjenkins7 0:b9eebf731cbe 830 communityf[4]=(rand()%13)+1;
wjenkins7 0:b9eebf731cbe 831 check = checkcard ( communitys[4], communityf[4], 0);
wjenkins7 0:b9eebf731cbe 832 if(check==1) {
wjenkins7 0:b9eebf731cbe 833 k--;
wjenkins7 0:b9eebf731cbe 834 pc.printf("\nCheck 4= %d",check);
wjenkins7 0:b9eebf731cbe 835 } else {
wjenkins7 0:b9eebf731cbe 836 print_on_dealerlcd( 4, communityf[4], communitys[4], 1);
wjenkins7 0:b9eebf731cbe 837 wait(rand()%1);
wjenkins7 0:b9eebf731cbe 838 pc.printf("\n Amount:%d\t card:%d\t face:%d \t suit:%d\t Operation:%d ", 0, 4, communityf[4], communitys[4], 1);
wjenkins7 0:b9eebf731cbe 839 }
wjenkins7 0:b9eebf731cbe 840 }
wjenkins7 0:b9eebf731cbe 841 break;
wjenkins7 0:b9eebf731cbe 842 }
wjenkins7 0:b9eebf731cbe 843
wjenkins7 0:b9eebf731cbe 844 //take bets from each player
wjenkins7 0:b9eebf731cbe 845 if(round!=1) bet=0;
wjenkins7 0:b9eebf731cbe 846 if(round==1) bet=blind;
wjenkins7 0:b9eebf731cbe 847 temp = hand%p;
wjenkins7 0:b9eebf731cbe 848 pc.printf("\ntemp:%d",temp);
wjenkins7 0:b9eebf731cbe 849 n=0;
wjenkins7 0:b9eebf731cbe 850 r=0;
wjenkins7 0:b9eebf731cbe 851 bet2=0;
wjenkins7 0:b9eebf731cbe 852 ID = temp;
wjenkins7 0:b9eebf731cbe 853 while(r<p) {
wjenkins7 0:b9eebf731cbe 854 while(ID <= (p-1) ) {
wjenkins7 0:b9eebf731cbe 855 if(AP>1) {
wjenkins7 0:b9eebf731cbe 856 if((m==1)&&(blind!=0)) {
wjenkins7 0:b9eebf731cbe 857 print_on_lcd(playermoney[ID]-blind/2, ID, 0, -9);
wjenkins7 0:b9eebf731cbe 858 } else {
wjenkins7 0:b9eebf731cbe 859 print_on_lcd(playermoney[ID], ID, 0, -9);
wjenkins7 0:b9eebf731cbe 860 }
wjenkins7 0:b9eebf731cbe 861 print_on_dealerlcd( ID, 0, 0, 2);
wjenkins7 0:b9eebf731cbe 862 pc.printf("\nr=%d",r);
wjenkins7 0:b9eebf731cbe 863 pc.printf("\nstart while");
wjenkins7 0:b9eebf731cbe 864 if(AB[ID]!=1) {
wjenkins7 0:b9eebf731cbe 865 //ID = temp;
wjenkins7 0:b9eebf731cbe 866 //for(ID=hand%p; ID<p; ID++) {
wjenkins7 0:b9eebf731cbe 867 pc.printf("\nin while");
wjenkins7 0:b9eebf731cbe 868 if((round==1)||(playerbet[ID]!=0)) {
wjenkins7 0:b9eebf731cbe 869 if((round==1)&&(m==0)&&(blind!=0))playerbet[ID]=bet;
wjenkins7 0:b9eebf731cbe 870 if((round==1)&&(m==1)&&(blind!=0))playerbet[ID]=bet/2;
wjenkins7 0:b9eebf731cbe 871 }
wjenkins7 0:b9eebf731cbe 872 if(playerbet[ID]==-2)playerbet[ID]=0;
wjenkins7 0:b9eebf731cbe 873 pc.printf("\npot:%d player%dmoney:%d",pot, ID+1, playermoney[ID]);
wjenkins7 0:b9eebf731cbe 874 pc.printf("\nplayer%d bet?", ID+1);
wjenkins7 0:b9eebf731cbe 875 if(ID>1) {
wjenkins7 0:b9eebf731cbe 876 if((m==0)&&(blind!=0)) {
wjenkins7 0:b9eebf731cbe 877 n=-2;
wjenkins7 0:b9eebf731cbe 878 } else {
wjenkins7 0:b9eebf731cbe 879 n = secondary_players(ID, playermoney[ID],0);
wjenkins7 0:b9eebf731cbe 880 }
wjenkins7 0:b9eebf731cbe 881 } else {
wjenkins7 0:b9eebf731cbe 882 if((m==0)&&(blind!=0)) {
wjenkins7 0:b9eebf731cbe 883 n=-2;
wjenkins7 0:b9eebf731cbe 884 } else {
wjenkins7 0:b9eebf731cbe 885 print_on_lcd(bet-playerbet[ID], ID, 0, -8);
wjenkins7 0:b9eebf731cbe 886 n=read_keypad(ID);
wjenkins7 0:b9eebf731cbe 887 }
wjenkins7 0:b9eebf731cbe 888 }
wjenkins7 0:b9eebf731cbe 889 pc.printf("\nbet:%d player%dbet:%d",bet, ID+1,playerbet[ID]);
wjenkins7 0:b9eebf731cbe 890 switch(n) {
wjenkins7 0:b9eebf731cbe 891 case -2:
wjenkins7 0:b9eebf731cbe 892 if(bet > 0) {
wjenkins7 0:b9eebf731cbe 893 if((blind!=0)&&(m==0)) {
wjenkins7 0:b9eebf731cbe 894 if(playermoney[ID]>playerbet[ID]) {
wjenkins7 0:b9eebf731cbe 895 pot+=playerbet[ID];
wjenkins7 0:b9eebf731cbe 896 playermoney[ID]-=playerbet[ID];
wjenkins7 0:b9eebf731cbe 897 print_on_dealerlcd( pot, 0, 0, 3);
wjenkins7 0:b9eebf731cbe 898 r--;
wjenkins7 0:b9eebf731cbe 899 }
wjenkins7 0:b9eebf731cbe 900 } else if((blind!=0)&&(m==1)) {
wjenkins7 0:b9eebf731cbe 901 if(playermoney[ID]>blind) {
wjenkins7 0:b9eebf731cbe 902 pot+=blind;
wjenkins7 0:b9eebf731cbe 903 playermoney[ID]-=blind;
wjenkins7 0:b9eebf731cbe 904 print_on_dealerlcd( pot, 0, 0, 3);
wjenkins7 0:b9eebf731cbe 905 }
wjenkins7 0:b9eebf731cbe 906 } else if(playerbet[ID]==0) {
wjenkins7 0:b9eebf731cbe 907 if(bet<=playermoney[ID]) {
wjenkins7 0:b9eebf731cbe 908 playerbet[ID] = bet;
wjenkins7 0:b9eebf731cbe 909 pot += playerbet[ID];
wjenkins7 0:b9eebf731cbe 910 playermoney[ID] -= bet;
wjenkins7 0:b9eebf731cbe 911 print_on_dealerlcd( pot, 0, 0, 3);
wjenkins7 0:b9eebf731cbe 912 } else {
wjenkins7 0:b9eebf731cbe 913 playerbet[ID]=0;
wjenkins7 0:b9eebf731cbe 914 AB[ID]=1;
wjenkins7 0:b9eebf731cbe 915 AP--;
wjenkins7 0:b9eebf731cbe 916 if(ID<2) {
wjenkins7 0:b9eebf731cbe 917 print_on_lcd(0, 0, 0, ID+2);
wjenkins7 0:b9eebf731cbe 918 } else {
wjenkins7 0:b9eebf731cbe 919 t=secondary_players(ID, 0, 0);
wjenkins7 0:b9eebf731cbe 920 }
wjenkins7 0:b9eebf731cbe 921 }
wjenkins7 0:b9eebf731cbe 922 } else if(playerbet[ID]!=0) {
wjenkins7 0:b9eebf731cbe 923 //if(m==1)playerbet[ID]=bet;
wjenkins7 0:b9eebf731cbe 924 if(((bet-playerbet[ID])<=playermoney[ID])&&(playerbet[ID]<=bet)) {
wjenkins7 0:b9eebf731cbe 925 bet2 = bet-playerbet[ID];
wjenkins7 0:b9eebf731cbe 926 pot += bet2 ;
wjenkins7 0:b9eebf731cbe 927 playerbet[ID] = bet;
wjenkins7 0:b9eebf731cbe 928 playermoney[ID] -= bet2;
wjenkins7 0:b9eebf731cbe 929 pc.printf("\ntest");
wjenkins7 0:b9eebf731cbe 930 print_on_dealerlcd( pot, 0, 0, 3);
wjenkins7 0:b9eebf731cbe 931 } else {
wjenkins7 0:b9eebf731cbe 932 playerbet[ID]=0;
wjenkins7 0:b9eebf731cbe 933 AB[ID]=1;
wjenkins7 0:b9eebf731cbe 934 AP--;
wjenkins7 0:b9eebf731cbe 935 if(ID<2) {
wjenkins7 0:b9eebf731cbe 936 print_on_lcd(0, 0, 0, ID+2);
wjenkins7 0:b9eebf731cbe 937 } else {
wjenkins7 0:b9eebf731cbe 938 t=secondary_players(ID, 0, 0);
wjenkins7 0:b9eebf731cbe 939 }
wjenkins7 0:b9eebf731cbe 940 }
wjenkins7 0:b9eebf731cbe 941 }
wjenkins7 0:b9eebf731cbe 942 }
wjenkins7 0:b9eebf731cbe 943 if(bet ==0)playerbet[ID]=-2;
wjenkins7 0:b9eebf731cbe 944 break;
wjenkins7 0:b9eebf731cbe 945 case 0:
wjenkins7 0:b9eebf731cbe 946 if(bet==0) {
wjenkins7 0:b9eebf731cbe 947 playerbet[ID]=-2;
wjenkins7 0:b9eebf731cbe 948 pc.printf("\n#01 bet:%d player%dbet:%d",bet, ID+1,playerbet[ID]);
wjenkins7 0:b9eebf731cbe 949 break;
wjenkins7 0:b9eebf731cbe 950 }
wjenkins7 0:b9eebf731cbe 951 playerbet[ID]=0;
wjenkins7 0:b9eebf731cbe 952 if((m==1)&&(blind!=0)) {
wjenkins7 0:b9eebf731cbe 953 playermoney[ID] -= bet/2;
wjenkins7 0:b9eebf731cbe 954 pot += bet/2;
wjenkins7 0:b9eebf731cbe 955 print_on_dealerlcd( pot, 0, 0, 3);
wjenkins7 0:b9eebf731cbe 956 }
wjenkins7 0:b9eebf731cbe 957 AB[ID]=1;
wjenkins7 0:b9eebf731cbe 958 AP--;
wjenkins7 0:b9eebf731cbe 959 if(ID<2) {
wjenkins7 0:b9eebf731cbe 960 print_on_lcd(0, 0, 0, ID+2);
wjenkins7 0:b9eebf731cbe 961 } else {
wjenkins7 0:b9eebf731cbe 962 t=secondary_players(ID, 0, 0);
wjenkins7 0:b9eebf731cbe 963 }
wjenkins7 0:b9eebf731cbe 964 pc.printf("\n#02 bet:%d player%dbet:%d",bet, ID+1,playerbet[ID]);
wjenkins7 0:b9eebf731cbe 965 break;
wjenkins7 0:b9eebf731cbe 966 default:
wjenkins7 0:b9eebf731cbe 967 if(playerbet[ID]==0) {
wjenkins7 0:b9eebf731cbe 968 playerbet[ID]=n;
wjenkins7 0:b9eebf731cbe 969 if((playerbet[ID]<=playermoney[ID])&&(playerbet[ID]>=bet)) {
wjenkins7 0:b9eebf731cbe 970 //function to ask for bets and check bet amount
wjenkins7 0:b9eebf731cbe 971 playermoney[ID] -= playerbet[ID];
wjenkins7 0:b9eebf731cbe 972 pot += playerbet[ID];
wjenkins7 0:b9eebf731cbe 973 bet = playerbet[ID];
wjenkins7 0:b9eebf731cbe 974 print_on_dealerlcd( pot, 0, 0, 3);
wjenkins7 0:b9eebf731cbe 975 r=0;
wjenkins7 0:b9eebf731cbe 976 } else {
wjenkins7 0:b9eebf731cbe 977 pc.printf("\nplayer bet Incorrect!");
wjenkins7 0:b9eebf731cbe 978 ID--;
wjenkins7 0:b9eebf731cbe 979 r--;
wjenkins7 0:b9eebf731cbe 980 }
wjenkins7 0:b9eebf731cbe 981 pc.printf("\ndef bet:%d player%dbet:%d",bet, ID+1,playerbet[ID]);
wjenkins7 0:b9eebf731cbe 982 } else if(playerbet[ID]!=0) {
wjenkins7 0:b9eebf731cbe 983 pc.printf("\ndef1 bet:%d player%dbet:%d pot:%d",bet, ID+1,playerbet[ID], pot);
wjenkins7 0:b9eebf731cbe 984 if((n<=playermoney[ID])&&(n>=bet-playerbet[ID])) {
wjenkins7 0:b9eebf731cbe 985 pot += n;
wjenkins7 0:b9eebf731cbe 986 playerbet[ID] += n;
wjenkins7 0:b9eebf731cbe 987 bet = playerbet[ID];
wjenkins7 0:b9eebf731cbe 988 playermoney[ID] -= n;
wjenkins7 0:b9eebf731cbe 989 r=0;
wjenkins7 0:b9eebf731cbe 990 print_on_dealerlcd( pot, 0, 0, 3);
wjenkins7 0:b9eebf731cbe 991 } else {
wjenkins7 0:b9eebf731cbe 992 pc.printf("\nplayer bet Incorrect!");
wjenkins7 0:b9eebf731cbe 993 ID--;
wjenkins7 0:b9eebf731cbe 994 r--;
wjenkins7 0:b9eebf731cbe 995 }
wjenkins7 0:b9eebf731cbe 996 }
wjenkins7 0:b9eebf731cbe 997 }
wjenkins7 0:b9eebf731cbe 998
wjenkins7 0:b9eebf731cbe 999
wjenkins7 0:b9eebf731cbe 1000
wjenkins7 0:b9eebf731cbe 1001 }
wjenkins7 0:b9eebf731cbe 1002 }
wjenkins7 0:b9eebf731cbe 1003 print_on_lcd(bet-playerbet[ID], ID, 0, -8);
wjenkins7 0:b9eebf731cbe 1004 if(ID<2)print_on_lcd(playermoney[ID], ID, 0, -9);
wjenkins7 0:b9eebf731cbe 1005 r++;
wjenkins7 0:b9eebf731cbe 1006 ID++;
wjenkins7 0:b9eebf731cbe 1007 m++;
wjenkins7 0:b9eebf731cbe 1008 pc.printf("\nincrement");
wjenkins7 0:b9eebf731cbe 1009 if(r>=p)break;
wjenkins7 0:b9eebf731cbe 1010 }
wjenkins7 0:b9eebf731cbe 1011
wjenkins7 0:b9eebf731cbe 1012 for(ID=0; ID<temp; ID++) {
wjenkins7 0:b9eebf731cbe 1013 if(AP>1) {
wjenkins7 0:b9eebf731cbe 1014 if((m=1)&&(blind!=0)) {
wjenkins7 0:b9eebf731cbe 1015 print_on_lcd(playermoney[ID]-blind/2, ID, 0, -9);
wjenkins7 0:b9eebf731cbe 1016 } else {
wjenkins7 0:b9eebf731cbe 1017 print_on_lcd(playermoney[ID], ID, 0, -9);
wjenkins7 0:b9eebf731cbe 1018 }
wjenkins7 0:b9eebf731cbe 1019 print_on_dealerlcd( ID, 0, 0, 2);
wjenkins7 0:b9eebf731cbe 1020 pc.printf("\nr=%d",r);
wjenkins7 0:b9eebf731cbe 1021 pc.printf("\nstart for");
wjenkins7 0:b9eebf731cbe 1022 if(AB[ID]!=1) {
wjenkins7 0:b9eebf731cbe 1023 //ID = temp;
wjenkins7 0:b9eebf731cbe 1024 //for(ID=hand%p; ID<p; ID++) {
wjenkins7 0:b9eebf731cbe 1025 pc.printf("\nin for");
wjenkins7 0:b9eebf731cbe 1026 if((round==1)||(playerbet[ID]!=0)) {
wjenkins7 0:b9eebf731cbe 1027 if((round==1)&&(m==0)&&(blind!=0))playerbet[ID]=bet;
wjenkins7 0:b9eebf731cbe 1028 if((round==1)&&(m==1)&&(blind!=0))playerbet[ID]=bet/2;
wjenkins7 0:b9eebf731cbe 1029 }
wjenkins7 0:b9eebf731cbe 1030 if(playerbet[ID]==-2)playerbet[ID]=0;
wjenkins7 0:b9eebf731cbe 1031 pc.printf("\npot:%d player%dmoney:%d",pot, ID+1, playermoney[ID]);
wjenkins7 0:b9eebf731cbe 1032 pc.printf("\nplayer%d bet?", ID+1);
wjenkins7 0:b9eebf731cbe 1033 if(ID>1) {
wjenkins7 0:b9eebf731cbe 1034 if((m==0)&&(blind!=0)) {
wjenkins7 0:b9eebf731cbe 1035 n=-2;
wjenkins7 0:b9eebf731cbe 1036 } else {
wjenkins7 0:b9eebf731cbe 1037 n = secondary_players(ID, playermoney[ID],0);
wjenkins7 0:b9eebf731cbe 1038 }
wjenkins7 0:b9eebf731cbe 1039 } else {
wjenkins7 0:b9eebf731cbe 1040 if((m==0)&&(blind!=0)) {
wjenkins7 0:b9eebf731cbe 1041 n=-2;
wjenkins7 0:b9eebf731cbe 1042 } else {
wjenkins7 0:b9eebf731cbe 1043 print_on_lcd(bet-playerbet[ID], ID, 0, -8);
wjenkins7 0:b9eebf731cbe 1044 n=read_keypad(ID);
wjenkins7 0:b9eebf731cbe 1045 }
wjenkins7 0:b9eebf731cbe 1046 }
wjenkins7 0:b9eebf731cbe 1047 pc.printf("\nbet:%d player%dbet:%d",bet, ID+1,playerbet[ID]);
wjenkins7 0:b9eebf731cbe 1048 switch(n) {
wjenkins7 0:b9eebf731cbe 1049 case -2:
wjenkins7 0:b9eebf731cbe 1050 if(bet > 0) {
wjenkins7 0:b9eebf731cbe 1051 if((blind!=0)&&(m==0)) {
wjenkins7 0:b9eebf731cbe 1052 if(playermoney[ID]>playerbet[ID]) {
wjenkins7 0:b9eebf731cbe 1053 pot+=playerbet[ID];
wjenkins7 0:b9eebf731cbe 1054 playermoney[ID]-=playerbet[ID];
wjenkins7 0:b9eebf731cbe 1055 print_on_dealerlcd( pot, 0, 0, 3);
wjenkins7 0:b9eebf731cbe 1056 r--;
wjenkins7 0:b9eebf731cbe 1057 }
wjenkins7 0:b9eebf731cbe 1058 } else if((blind!=0)&&(m==1)) {
wjenkins7 0:b9eebf731cbe 1059 if(playermoney[ID]>blind) {
wjenkins7 0:b9eebf731cbe 1060 pot+=blind;
wjenkins7 0:b9eebf731cbe 1061 playermoney[ID]-=blind;
wjenkins7 0:b9eebf731cbe 1062 print_on_dealerlcd( pot, 0, 0, 3);
wjenkins7 0:b9eebf731cbe 1063 }
wjenkins7 0:b9eebf731cbe 1064 } else if(playerbet[ID]==0) {
wjenkins7 0:b9eebf731cbe 1065 if(bet<=playermoney[ID]) {
wjenkins7 0:b9eebf731cbe 1066 playerbet[ID] = bet;
wjenkins7 0:b9eebf731cbe 1067 pot += playerbet[ID];
wjenkins7 0:b9eebf731cbe 1068 playermoney[ID] -= bet;
wjenkins7 0:b9eebf731cbe 1069 print_on_dealerlcd( pot, 0, 0, 3);
wjenkins7 0:b9eebf731cbe 1070 } else {
wjenkins7 0:b9eebf731cbe 1071 playerbet[ID]=0;
wjenkins7 0:b9eebf731cbe 1072 AB[ID]=1;
wjenkins7 0:b9eebf731cbe 1073 AP--;
wjenkins7 0:b9eebf731cbe 1074 if(ID<2) {
wjenkins7 0:b9eebf731cbe 1075 print_on_lcd(0, 0, 0, ID+2);
wjenkins7 0:b9eebf731cbe 1076 } else {
wjenkins7 0:b9eebf731cbe 1077 t=secondary_players(ID, 0, 0);
wjenkins7 0:b9eebf731cbe 1078 }
wjenkins7 0:b9eebf731cbe 1079 }
wjenkins7 0:b9eebf731cbe 1080 } else if(playerbet[ID]!=0) {
wjenkins7 0:b9eebf731cbe 1081 //if(m==1)playerbet[ID]=bet;
wjenkins7 0:b9eebf731cbe 1082 if(((bet-playerbet[ID])<=playermoney[ID])&&(playerbet[ID]<=bet)) {
wjenkins7 0:b9eebf731cbe 1083 bet2 = bet-playerbet[ID];
wjenkins7 0:b9eebf731cbe 1084 pot += bet2 ;
wjenkins7 0:b9eebf731cbe 1085 playerbet[ID] = bet;
wjenkins7 0:b9eebf731cbe 1086 playermoney[ID] -= bet2;
wjenkins7 0:b9eebf731cbe 1087 pc.printf("\ntest");
wjenkins7 0:b9eebf731cbe 1088 print_on_dealerlcd( pot, 0, 0, 3);
wjenkins7 0:b9eebf731cbe 1089 } else {
wjenkins7 0:b9eebf731cbe 1090 playerbet[ID]=0;
wjenkins7 0:b9eebf731cbe 1091 AB[ID]=1;
wjenkins7 0:b9eebf731cbe 1092 AP--;
wjenkins7 0:b9eebf731cbe 1093 if(ID<2) {
wjenkins7 0:b9eebf731cbe 1094 print_on_lcd(0, 0, 0, ID+2);
wjenkins7 0:b9eebf731cbe 1095 } else {
wjenkins7 0:b9eebf731cbe 1096 t=secondary_players(ID, 0, 0);
wjenkins7 0:b9eebf731cbe 1097 }
wjenkins7 0:b9eebf731cbe 1098 }
wjenkins7 0:b9eebf731cbe 1099 }
wjenkins7 0:b9eebf731cbe 1100 }
wjenkins7 0:b9eebf731cbe 1101 if(bet ==0)playerbet[ID]=-2;
wjenkins7 0:b9eebf731cbe 1102 break;
wjenkins7 0:b9eebf731cbe 1103 case 0:
wjenkins7 0:b9eebf731cbe 1104 if(bet==0) {
wjenkins7 0:b9eebf731cbe 1105 playerbet[ID]=-2;
wjenkins7 0:b9eebf731cbe 1106 pc.printf("\n#01 bet:%d player%dbet:%d",bet, ID+1,playerbet[ID]);
wjenkins7 0:b9eebf731cbe 1107 break;
wjenkins7 0:b9eebf731cbe 1108 }
wjenkins7 0:b9eebf731cbe 1109 playerbet[ID]=0;
wjenkins7 0:b9eebf731cbe 1110 if((m==1)&&(blind!=0)) {
wjenkins7 0:b9eebf731cbe 1111 playermoney[ID] -= bet/2;
wjenkins7 0:b9eebf731cbe 1112 pot += bet/2;
wjenkins7 0:b9eebf731cbe 1113 print_on_dealerlcd( pot, 0, 0, 3);
wjenkins7 0:b9eebf731cbe 1114 }
wjenkins7 0:b9eebf731cbe 1115 AB[ID]=1;
wjenkins7 0:b9eebf731cbe 1116 AP--;
wjenkins7 0:b9eebf731cbe 1117 if(ID<2) {
wjenkins7 0:b9eebf731cbe 1118 print_on_lcd(0, 0, 0, ID+2);
wjenkins7 0:b9eebf731cbe 1119 } else {
wjenkins7 0:b9eebf731cbe 1120 t=secondary_players(ID, 0, 0);
wjenkins7 0:b9eebf731cbe 1121 }
wjenkins7 0:b9eebf731cbe 1122 pc.printf("\n#02 bet:%d player%dbet:%d",bet, ID+1,playerbet[ID]);
wjenkins7 0:b9eebf731cbe 1123 break;
wjenkins7 0:b9eebf731cbe 1124 default:
wjenkins7 0:b9eebf731cbe 1125 if(playerbet[ID]==0) {
wjenkins7 0:b9eebf731cbe 1126 playerbet[ID]=n;
wjenkins7 0:b9eebf731cbe 1127 if((playerbet[ID]<=playermoney[ID])&&(playerbet[ID]>=bet)) {
wjenkins7 0:b9eebf731cbe 1128 //function to ask for bets and check bet amount
wjenkins7 0:b9eebf731cbe 1129 playermoney[ID] -= playerbet[ID];
wjenkins7 0:b9eebf731cbe 1130 pot += playerbet[ID];
wjenkins7 0:b9eebf731cbe 1131 bet = playerbet[ID];
wjenkins7 0:b9eebf731cbe 1132 print_on_dealerlcd( pot, 0, 0, 3);
wjenkins7 0:b9eebf731cbe 1133 r=0;
wjenkins7 0:b9eebf731cbe 1134 } else {
wjenkins7 0:b9eebf731cbe 1135 pc.printf("\nplayer bet Incorrect!");
wjenkins7 0:b9eebf731cbe 1136 ID--;
wjenkins7 0:b9eebf731cbe 1137 r--;
wjenkins7 0:b9eebf731cbe 1138 }
wjenkins7 0:b9eebf731cbe 1139 pc.printf("\ndef bet:%d player%dbet:%d",bet, ID+1,playerbet[ID]);
wjenkins7 0:b9eebf731cbe 1140 } else if(playerbet[ID]!=0) {
wjenkins7 0:b9eebf731cbe 1141 pc.printf("\ndef1 bet:%d player%dbet:%d pot:%d",bet, ID+1,playerbet[ID], pot);
wjenkins7 0:b9eebf731cbe 1142 if((n<=playermoney[ID])&&(n>=bet-playerbet[ID])) {
wjenkins7 0:b9eebf731cbe 1143 pot += n;
wjenkins7 0:b9eebf731cbe 1144 playerbet[ID] += n;
wjenkins7 0:b9eebf731cbe 1145 bet = playerbet[ID];
wjenkins7 0:b9eebf731cbe 1146 playermoney[ID] -= n;
wjenkins7 0:b9eebf731cbe 1147 r=0;
wjenkins7 0:b9eebf731cbe 1148 print_on_dealerlcd( pot, 0, 0, 3);
wjenkins7 0:b9eebf731cbe 1149 } else {
wjenkins7 0:b9eebf731cbe 1150 pc.printf("\nplayer bet Incorrect!");
wjenkins7 0:b9eebf731cbe 1151 ID--;
wjenkins7 0:b9eebf731cbe 1152 r--;
wjenkins7 0:b9eebf731cbe 1153 }
wjenkins7 0:b9eebf731cbe 1154 }
wjenkins7 0:b9eebf731cbe 1155 }
wjenkins7 0:b9eebf731cbe 1156
wjenkins7 0:b9eebf731cbe 1157
wjenkins7 0:b9eebf731cbe 1158
wjenkins7 0:b9eebf731cbe 1159 }
wjenkins7 0:b9eebf731cbe 1160 }
wjenkins7 0:b9eebf731cbe 1161 print_on_lcd(bet-playerbet[ID], ID, 0, -8);
wjenkins7 0:b9eebf731cbe 1162 if(ID<2)print_on_lcd(playermoney[ID], ID, 0, -9);
wjenkins7 0:b9eebf731cbe 1163 r++;
wjenkins7 0:b9eebf731cbe 1164 //ID++;
wjenkins7 0:b9eebf731cbe 1165 m++;
wjenkins7 0:b9eebf731cbe 1166 pc.printf("\nincrement");
wjenkins7 0:b9eebf731cbe 1167 if(r>=p)break;
wjenkins7 0:b9eebf731cbe 1168 }
wjenkins7 0:b9eebf731cbe 1169 }
wjenkins7 0:b9eebf731cbe 1170
wjenkins7 0:b9eebf731cbe 1171 }
wjenkins7 0:b9eebf731cbe 1172 }
wjenkins7 0:b9eebf731cbe 1173
wjenkins7 0:b9eebf731cbe 1174 //determine player's score
wjenkins7 0:b9eebf731cbe 1175 if(AP==1) {
wjenkins7 0:b9eebf731cbe 1176 for(k=0; k<p; k++) {
wjenkins7 0:b9eebf731cbe 1177 if(AB[k]==1)playerscore[k]=0;
wjenkins7 0:b9eebf731cbe 1178 if(AB[k]!=1)playerscore[k]=10;
wjenkins7 0:b9eebf731cbe 1179 }
wjenkins7 0:b9eebf731cbe 1180 }
wjenkins7 0:b9eebf731cbe 1181 if(AP>1) {
wjenkins7 0:b9eebf731cbe 1182 for (k=0; k<p; k++) {
wjenkins7 0:b9eebf731cbe 1183 spade=0;
wjenkins7 0:b9eebf731cbe 1184 heart=0;
wjenkins7 0:b9eebf731cbe 1185 diamond=0;
wjenkins7 0:b9eebf731cbe 1186 club=0;
wjenkins7 0:b9eebf731cbe 1187 suit=0;
wjenkins7 0:b9eebf731cbe 1188 for(i=0; i<14; i++) {
wjenkins7 0:b9eebf731cbe 1189 count[i]=0;
wjenkins7 0:b9eebf731cbe 1190 }
wjenkins7 0:b9eebf731cbe 1191 playerscore[k]=0;
wjenkins7 0:b9eebf731cbe 1192 if(playerbet[k]==0) {
wjenkins7 0:b9eebf731cbe 1193 playerscore[k]=0;
wjenkins7 0:b9eebf731cbe 1194 } else {
wjenkins7 0:b9eebf731cbe 1195 for (j=0; j<5; j++) {
wjenkins7 0:b9eebf731cbe 1196 handface[j] = communityf[j];
wjenkins7 0:b9eebf731cbe 1197 handsuit[j] = communitys[j];
wjenkins7 0:b9eebf731cbe 1198 }
wjenkins7 0:b9eebf731cbe 1199 handface[5] = playerface[k][0];
wjenkins7 0:b9eebf731cbe 1200 handface[6] = playerface[k][1];
wjenkins7 0:b9eebf731cbe 1201 handsuit[5] = playersuit[k][0];
wjenkins7 0:b9eebf731cbe 1202 handsuit[6] = playersuit[k][1];
wjenkins7 0:b9eebf731cbe 1203 if(playerface[k][0]>=playerface[k][1]) {
wjenkins7 0:b9eebf731cbe 1204 highcard[k]=playerface[k][0];
wjenkins7 0:b9eebf731cbe 1205 } else {
wjenkins7 0:b9eebf731cbe 1206 highcard[k]=playerface[k][1];
wjenkins7 0:b9eebf731cbe 1207 }
wjenkins7 0:b9eebf731cbe 1208 for(j=0; j<7; j++) {
wjenkins7 0:b9eebf731cbe 1209 pc.printf("\nplayer%d face:%d", k+1, handface[j]);
wjenkins7 0:b9eebf731cbe 1210 }
wjenkins7 0:b9eebf731cbe 1211 pc.printf("\nplayer%d highcard:%d",k+1, highcard[k]);
wjenkins7 0:b9eebf731cbe 1212
wjenkins7 0:b9eebf731cbe 1213 //player score ranking
wjenkins7 0:b9eebf731cbe 1214 //Straight Flush = 9
wjenkins7 0:b9eebf731cbe 1215 //Four of a kind = 8
wjenkins7 0:b9eebf731cbe 1216 //Full House = 7
wjenkins7 0:b9eebf731cbe 1217 //Flush = 6
wjenkins7 0:b9eebf731cbe 1218 //Straight = 5
wjenkins7 0:b9eebf731cbe 1219 //Threee of a kind = 4
wjenkins7 0:b9eebf731cbe 1220 //Two pair = 3
wjenkins7 0:b9eebf731cbe 1221 //One Pair = 2
wjenkins7 0:b9eebf731cbe 1222 //High Card = 1
wjenkins7 0:b9eebf731cbe 1223 //determine how many cards of each suit and face value there are
wjenkins7 0:b9eebf731cbe 1224 for(i=0; i<7; i++) {
wjenkins7 0:b9eebf731cbe 1225 if(handsuit[i] == 1)spade++;
wjenkins7 0:b9eebf731cbe 1226 if(handsuit[i] == 2)club++;
wjenkins7 0:b9eebf731cbe 1227 if(handsuit[i] == 3)heart++;
wjenkins7 0:b9eebf731cbe 1228 if(handsuit[i] == 4)diamond++;
wjenkins7 0:b9eebf731cbe 1229 }
wjenkins7 0:b9eebf731cbe 1230 for(r=0; r<7; r++) {
wjenkins7 0:b9eebf731cbe 1231 for(j=0; j<13; j++) {
wjenkins7 0:b9eebf731cbe 1232 if(handface[r]==j+1)count[j]++;
wjenkins7 0:b9eebf731cbe 1233 }
wjenkins7 0:b9eebf731cbe 1234 }
wjenkins7 0:b9eebf731cbe 1235 for(j=0; j<14; j++) {
wjenkins7 0:b9eebf731cbe 1236 pc.printf("\nplayer%d r=%d count=%d",k+1,j,count[j]);
wjenkins7 0:b9eebf731cbe 1237 }
wjenkins7 0:b9eebf731cbe 1238 count[13]=count[0];
wjenkins7 0:b9eebf731cbe 1239
wjenkins7 0:b9eebf731cbe 1240 //determine if four of a kind
wjenkins7 0:b9eebf731cbe 1241 for(r=0; r<13; r++) {
wjenkins7 0:b9eebf731cbe 1242 if(count[r]==4) playerscore[k] = 8;
wjenkins7 0:b9eebf731cbe 1243 }
wjenkins7 0:b9eebf731cbe 1244 pc.printf("\nfour of a kind:%d", playerscore[k]);
wjenkins7 0:b9eebf731cbe 1245 //determine if Full House
wjenkins7 0:b9eebf731cbe 1246 if(playerscore[k]==0) {
wjenkins7 0:b9eebf731cbe 1247 for(i=0; i<7; i++) {
wjenkins7 0:b9eebf731cbe 1248 if(count[i] == 3) {
wjenkins7 0:b9eebf731cbe 1249 for(j=0; j<7; j++) {
wjenkins7 0:b9eebf731cbe 1250 if(count[j] >= 2) {
wjenkins7 0:b9eebf731cbe 1251 playerscore[k]=7;
wjenkins7 0:b9eebf731cbe 1252 }
wjenkins7 0:b9eebf731cbe 1253 }
wjenkins7 0:b9eebf731cbe 1254 }
wjenkins7 0:b9eebf731cbe 1255 }
wjenkins7 0:b9eebf731cbe 1256 }
wjenkins7 0:b9eebf731cbe 1257 //Determine if flush
wjenkins7 0:b9eebf731cbe 1258 if((spade >= 5)&&((playersuit[k][1]== 1)||(playersuit[k][0] == 1))) {
wjenkins7 0:b9eebf731cbe 1259 playerscore[k] = 6;
wjenkins7 0:b9eebf731cbe 1260 suit = 1;
wjenkins7 0:b9eebf731cbe 1261 }
wjenkins7 0:b9eebf731cbe 1262 if((club >= 5)&&((playersuit[k][1]== 2)||(playersuit[k][0]==2))) {
wjenkins7 0:b9eebf731cbe 1263 playerscore[k] = 6;
wjenkins7 0:b9eebf731cbe 1264 suit = 2;
wjenkins7 0:b9eebf731cbe 1265 }
wjenkins7 0:b9eebf731cbe 1266 if((heart >= 5)&&((playersuit[k][1]== 3)||(playersuit[k][0]==3))) {
wjenkins7 0:b9eebf731cbe 1267 playerscore[k] = 6;
wjenkins7 0:b9eebf731cbe 1268 suit = 3;
wjenkins7 0:b9eebf731cbe 1269 }
wjenkins7 0:b9eebf731cbe 1270 if((diamond >= 5)&&((playersuit[k][1]== 2)||(playersuit[k][0]==2))) {
wjenkins7 0:b9eebf731cbe 1271 playerscore[k] = 6;
wjenkins7 0:b9eebf731cbe 1272 suit = 4;
wjenkins7 0:b9eebf731cbe 1273 }
wjenkins7 0:b9eebf731cbe 1274 pc.printf("\nplayer%d suit%d", k+1, suit);
wjenkins7 0:b9eebf731cbe 1275 //Determine if straight or straight flush
wjenkins7 0:b9eebf731cbe 1276 m=0;
wjenkins7 0:b9eebf731cbe 1277 for(i=0; i<14; i++) {
wjenkins7 0:b9eebf731cbe 1278 if((count[i]>=1)&&(count[i+1]>=1)) {
wjenkins7 0:b9eebf731cbe 1279 m++;
wjenkins7 0:b9eebf731cbe 1280 if(m>=4) {
wjenkins7 0:b9eebf731cbe 1281 if(((i-3<playerface[k][1])&&(playerface[k][1]<i+2))||((i-3<playerface[k][0])&&(playerface[k][0]<i+2))) {
wjenkins7 0:b9eebf731cbe 1282 if(playerscore[k]==6) {
wjenkins7 0:b9eebf731cbe 1283 if(((i-3<playerface[k][1])&&(playerface[k][1]<i+2)&&(playersuit[k][1]==suit))||((i-3<playerface[k][0])&&(playerface[k][0]<i+2)&&(playersuit[k][0]==suit))) {
wjenkins7 0:b9eebf731cbe 1284 playerscore[k]=9;
wjenkins7 0:b9eebf731cbe 1285 }
wjenkins7 0:b9eebf731cbe 1286 } else {
wjenkins7 0:b9eebf731cbe 1287 playerscore[k]=5;
wjenkins7 0:b9eebf731cbe 1288 }
wjenkins7 0:b9eebf731cbe 1289 }
wjenkins7 0:b9eebf731cbe 1290 } else {
wjenkins7 0:b9eebf731cbe 1291 m=0;
wjenkins7 0:b9eebf731cbe 1292 }
wjenkins7 0:b9eebf731cbe 1293 }
wjenkins7 0:b9eebf731cbe 1294 }
wjenkins7 0:b9eebf731cbe 1295
wjenkins7 0:b9eebf731cbe 1296
wjenkins7 0:b9eebf731cbe 1297 //Determine if three of a kind, two pair, or pair
wjenkins7 0:b9eebf731cbe 1298 m=0;
wjenkins7 0:b9eebf731cbe 1299 if(playerscore[k]==0) {
wjenkins7 0:b9eebf731cbe 1300 for(i=0; i<13; i++) {
wjenkins7 0:b9eebf731cbe 1301 if(count[i]==3) {
wjenkins7 0:b9eebf731cbe 1302 playerscore[k]=4;
wjenkins7 0:b9eebf731cbe 1303 } else {
wjenkins7 0:b9eebf731cbe 1304 if(count[i]==2) {
wjenkins7 0:b9eebf731cbe 1305 m++;
wjenkins7 0:b9eebf731cbe 1306 }
wjenkins7 0:b9eebf731cbe 1307
wjenkins7 0:b9eebf731cbe 1308 }
wjenkins7 0:b9eebf731cbe 1309 }
wjenkins7 0:b9eebf731cbe 1310 if(m==2)playerscore[k]=3;
wjenkins7 0:b9eebf731cbe 1311 if(m==1)playerscore[k]=2;
wjenkins7 0:b9eebf731cbe 1312 }
wjenkins7 0:b9eebf731cbe 1313
wjenkins7 0:b9eebf731cbe 1314
wjenkins7 0:b9eebf731cbe 1315 //determine if only high card
wjenkins7 0:b9eebf731cbe 1316 if(playerscore[k] == 0) playerscore[k] = 1;
wjenkins7 0:b9eebf731cbe 1317 }
wjenkins7 0:b9eebf731cbe 1318 pc.printf("\nprelim player%d score:%d",k+1,playerscore[k]);
wjenkins7 0:b9eebf731cbe 1319 }
wjenkins7 0:b9eebf731cbe 1320 }
wjenkins7 0:b9eebf731cbe 1321 //determine winner based off player score
wjenkins7 0:b9eebf731cbe 1322 temp=0;
wjenkins7 0:b9eebf731cbe 1323 for(i=0; i<p; i++) {
wjenkins7 0:b9eebf731cbe 1324 if(temp<=playerscore[i]) {
wjenkins7 0:b9eebf731cbe 1325 temp=playerscore[i];
wjenkins7 0:b9eebf731cbe 1326 } else {
wjenkins7 0:b9eebf731cbe 1327 playerscore[i]=0;
wjenkins7 0:b9eebf731cbe 1328 }
wjenkins7 0:b9eebf731cbe 1329 }
wjenkins7 0:b9eebf731cbe 1330 for(i=0; i<p; i++) {
wjenkins7 0:b9eebf731cbe 1331 if(playerscore[i]<temp)playerscore[i]=0;
wjenkins7 0:b9eebf731cbe 1332 }
wjenkins7 0:b9eebf731cbe 1333 //determine amount of winners
wjenkins7 0:b9eebf731cbe 1334 m=0;
wjenkins7 0:b9eebf731cbe 1335 for(i=0; i<p; i++) {
wjenkins7 0:b9eebf731cbe 1336 if(playerscore[i]>0) m++;
wjenkins7 0:b9eebf731cbe 1337 //pc.printf("\n amount of winners:%d", m);
wjenkins7 0:b9eebf731cbe 1338 }
wjenkins7 0:b9eebf731cbe 1339 //Determine high card if multiple winners
wjenkins7 0:b9eebf731cbe 1340 temp=0;
wjenkins7 0:b9eebf731cbe 1341 if(m>1) {
wjenkins7 0:b9eebf731cbe 1342 for(i=0; i<p; i++) {
wjenkins7 0:b9eebf731cbe 1343 if(temp<=highcard[i]) {
wjenkins7 0:b9eebf731cbe 1344 temp=highcard[i];
wjenkins7 0:b9eebf731cbe 1345 } else {
wjenkins7 0:b9eebf731cbe 1346 highcard[i]=0;
wjenkins7 0:b9eebf731cbe 1347 }
wjenkins7 0:b9eebf731cbe 1348 }
wjenkins7 0:b9eebf731cbe 1349 for(i=0; i<p; i++) {
wjenkins7 0:b9eebf731cbe 1350 if(highcard[i]<temp)playerscore[i]=0;
wjenkins7 0:b9eebf731cbe 1351 }
wjenkins7 0:b9eebf731cbe 1352 }
wjenkins7 0:b9eebf731cbe 1353 //determine if two players have the same high card
wjenkins7 0:b9eebf731cbe 1354 m=0;
wjenkins7 0:b9eebf731cbe 1355 for(i=0; i<p; i++) {
wjenkins7 0:b9eebf731cbe 1356 if(playerscore[i]>0) m++;
wjenkins7 0:b9eebf731cbe 1357 //pc.printf("\n amount of winners:%d", m);
wjenkins7 0:b9eebf731cbe 1358 }
wjenkins7 0:b9eebf731cbe 1359 //distribute winnings
wjenkins7 0:b9eebf731cbe 1360 for(i=0; i<p; i++) {
wjenkins7 0:b9eebf731cbe 1361 pc.printf("\n player%dscore=%d",i+1,playerscore[i]);
wjenkins7 0:b9eebf731cbe 1362 if(playerscore[i]>0) {
wjenkins7 0:b9eebf731cbe 1363 playermoney[i] += pot/m ;
wjenkins7 0:b9eebf731cbe 1364 pc.printf("\n player%d won $%d",i+1, pot/m);
wjenkins7 0:b9eebf731cbe 1365 }
wjenkins7 0:b9eebf731cbe 1366 }
wjenkins7 0:b9eebf731cbe 1367 for(i=0; i<p; i++) {
wjenkins7 0:b9eebf731cbe 1368 playerscore[i]=0;
wjenkins7 0:b9eebf731cbe 1369 }
wjenkins7 0:b9eebf731cbe 1370
wjenkins7 0:b9eebf731cbe 1371 //determine if player is out of money
wjenkins7 0:b9eebf731cbe 1372 for(i=0; i<p; i++) {
wjenkins7 0:b9eebf731cbe 1373 if(playermoney[i] == 0) p--;
wjenkins7 0:b9eebf731cbe 1374 }
wjenkins7 0:b9eebf731cbe 1375 if(p==1) {
wjenkins7 0:b9eebf731cbe 1376 pc.printf("Play Again?\nFold=No Call=Yes");
wjenkins7 0:b9eebf731cbe 1377 m=read_keypad(0);
wjenkins7 0:b9eebf731cbe 1378 if(m==-2) main();
wjenkins7 0:b9eebf731cbe 1379 if(m==-4) return 0;
wjenkins7 0:b9eebf731cbe 1380 }
wjenkins7 0:b9eebf731cbe 1381 }
wjenkins7 0:b9eebf731cbe 1382 }