william jenkins
/
Mbed_Poker_Primary
Poker code for primary Mbed
main.cpp@0:b9eebf731cbe, 2013-12-11 (annotated)
- Committer:
- wjenkins7
- Date:
- Wed Dec 11 07:04:52 2013 +0000
- Revision:
- 0:b9eebf731cbe
Mbed Poker Primary
Who changed what in which revision?
User | Revision | Line number | New 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 | } |