Difficulty: 20/100
Execute the run.sh
script. It should take a few minutes:
$ ./run.sh
h20-2 (10 10) 8.0e+04 +63.23 (1.1) -171.17 (1.1) -85.32 (0.5) stand
h20-3 (10 10) 8.0e+04 +64.54 (1.1) -171.50 (1.1) -85.50 (0.5) stand
h20-4 (10 10) 8.0e+04 +65.55 (1.1) -170.33 (1.1) -85.50 (0.5) stand
h20-5 (10 10) 8.0e+04 +66.65 (1.1) -171.25 (1.1) -85.51 (0.5) stand
h20-6 (10 10) 8.0e+04 +67.80 (1.1) -171.07 (1.1) -85.59 (0.5) stand
h20-7 (10 10) 8.0e+04 +77.44 (1.1) -170.53 (1.1) -85.44 (0.5) stand
h20-8 (10 10) 8.0e+04 +79.11 (1.1) -170.08 (1.1) -85.02 (0.6) stand
h20-9 (10 10) 8.0e+04 +75.77 (1.1) -170.31 (1.1) -84.87 (0.6) stand
[...]
p2-6 8e+04 +24.78 (2.9) +3.07 (1.0) yes
p2-7 8e+04 +1.48 (2.0) -8.90 (1.0) yes
p2-8 8e+04 -17.57 (2.0) -16.33 (1.0) uncertain
p2-8 3e+05 -17.88 (1.0) -16.10 (0.5) no
p2-9 8e+04 -38.73 (2.0) -24.38 (1.0) no
p2-T 8e+04 -54.45 (1.8) -34.92 (0.9) no
p2-A 8e+04 -67.11 (1.5) -51.59 (0.9) no
A new text file called bs.txt
with the strategy should be created from scratch:
# 2 3 4 5 6 7 8 9 T A
h20 s s s s s s s s s s
h19 s s s s s s s s s s
h18 s s s s s s s s s s
h17 s s s s s s s s s s
h16 s s s s s h h h h h
h15 s s s s s h h h h h
h14 s s s s s h h h h h
h13 s s s s s h h h h h
h12 h h s s s h h h h h
h11 d d d d d d d d d d
h10 d d d d d d d d h h
h9 h d d d d h h h h h
h8 h h h h h h h h h h
h7 h h h h h h h h h h
h6 h h h h h h h h h h
h5 h h h h h h h h h h
h4 h h h h h h h h h h
# 2 3 4 5 6 7 8 9 T A
s20 s s s s s s s s s s
s19 s s s s d s s s s s
s18 d d d d d s s h h h
s17 h d d d d h h h h h
s16 h h d d d h h h h h
s15 h h d d d h h h h h
s14 h h h d d h h h h h
s13 h h h h d h h h h h
s12 h h h h d h h h h h
# 2 3 4 5 6 7 8 9 T A
pA y y y y y y y y y y
pT n n n n n n n n n n
p9 y y y y y n y y n n
p8 y y y y y y y y y y
p7 y y y y y y n n n n
p6 y y y y y n n n n n
p5 n n n n n n n n n n
p4 n n n y y n n n n n
p3 y y y y y y n n n n
p2 y y y y y y n n n n
This is the format that the internal player (i.e. blackjack -i
) can read and undertand.
The script computes the expected value of each combination
The results are given as the expected value in percentage with the uncertainty (one standard deviation) in the last significant digit.
Hand | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | T | A |
+48(2) +8(1) |
+52(2) +10(1) |
+57(2) +12(1) |
+61(2) +16(1) |
+66(2) +20(2) |
+47(2) +16(1) |
+35(2) +10(1) |
+23(2) -0(1) |
+9(2) -14(1) |
-24(2) -35.4(9) |
-4(4) +63.3(7) |
+5(4) +64.3(7) |
+15(4) +65.6(7) |
+28(4) +66.8(7) |
+38(4) +67.9(7) |
+9(3) +77.5(6) |
-23(2) +79.0(6) |
-61(3) +76.2(6) |
-76(3) +43.6(7) |
-86(2) +11(1) |
+20(2) +11(1) |
+26(2) +14(1) |
+33(2) +16(1) |
+39(2) +19(1) |
+47(2) +23(1) |
+36.6(9) +40.0(4) |
+24(2) +10.1(8) |
-8(2) -18(1) |
-37(2) -24(1) |
-48.4(8) -46.8(4) |
+8(2) -29(1) |
+15(2) -24(1) |
+21(2) -21(1) |
+30(2) -16(1) |
+39(3) -12(1) |
+32(2) -41.8(9) |
-3(2) -45.6(9) |
-39(2) -50.7(9) |
-51(2) -57.3(8) |
-66.5(8) -68.4(4) |
-13(3) -28(1) |
-6(3) -24(1) |
+7(3) -21(1) |
+16(3) -16(1) |
+25(3) -12(1) |
-4(2) -32(1) |
-39(1) -36.9(5) |
-57(2) -43.2(9) |
-68(2) -51.0(9) |
-82(2) -63.0(8) |
-20(2) -25(1) |
-13(3) -23(1) |
-1(3) -21(1) |
+9(3) -16(1) |
+18(3) -12(1) |
-26(2) -21(1) |
-42(2) -27(1) |
-61(2) -34(1) |
-74(2) -43.0(9) |
-81(2) -57.5(8) |
-29(2) +36(2) |
-21(2) +41(2) |
-14(3) +46(2) |
-2(3) +51(2) |
+8(3) +55(2) |
-30(2) +39(2) |
-46(2) +30(2) |
-63(2) +15(2) |
-76(2) -5(1) |
-83(1) -29(1) |
-18(2) -2(1) |
-10(3) -0(1) |
-2(3) +4(1) |
+8.3(7) +6.9(3) |
+19(3) +9(1) |
-17(2) +8(1) |
-32(2) -6(1) |
-52(2) -21(1) |
-65(2) -31(1) |
-76(2) -48.9(9) |
-13.55(1) -13.84(1) |
-5(1) -10.6(5) |
+4(3) -8(1) |
+13(3) -3(1) |
+22(3) +0(1) |
-6(2) -15(1) |
-23(1) -21.6(5) |
-43(2) -30(1) |
-59(2) -38.9(9) |
-70(2) -54.1(9) |
-8(2) -12(1) |
-2(2) -8(1) |
+5(3) -4(1) |
+17(3) -1(1) |
+26(3) +3(1) |
+1(2) -9(1) |
-17.8(5) -16.0(2) |
-40(2) -24(1) |
-53(2) -34.2(9) |
-67(2) -51.1(9) |
---|---|---|---|---|---|---|---|---|---|---|---|
Hand | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | T | A | |
s20 |
stand
hit
double
|
+63(2) +18(1) +36(2) |
+65(2) +20(1) +42(2) |
+65(2) +23(1) +46(2) |
+67(2) +26(1) +51(2) |
+68(2) +28(1) +57(2) |
+77(2) +26(1) +40(2) |
+79(2) +19(1) +28(2) |
+76(2) +12(1) +16(2) |
+44(2) -5(1) -8(2) |
+11(2) -28(1) -35(2) |
s19 |
stand
hit
double
|
+38(2) +12(1) +23(2) |
+39(2) +14(1) +29(2) |
+42(2) +18(1) +34(2) |
+44(1) +20.2(5) +40(1) |
+45.3(2) +23.1(1) +46.2(2) |
+62(2) +23(1) +32(2) |
+60(2) +15(1) +20(2) |
+29(2) +1(1) -7(2) |
-2(2) -15(1) -29(2) |
-18(2) -34.4(9) -47(2) |
s18 |
stand
hit
double
|
+11.01(1) +6.00(1) +11.43(1) |
+14(1) +8.8(5) +18(1) |
+16(2) +12(1) +22(2) |
+20(2) +14(1) +29(2) |
+22(2) +16(1) +36(2) |
+40(2) +17(1) +22(2) |
+11(2) +4(1) -2(2) |
-18(2) -10(1) -28(2) |
-24(2) -20(1) -39(2) |
-46(2) -41.6(9) -60(2) |
s17 |
stand
hit
double
|
-15.67(1) -0.59(1) -0.88(1) |
-12(1) +2.4(5) +6(1) |
-8(2) +5(1) +12(2) |
-4(2) +9(1) +19(2) |
-0(2) +10(1) +26(2) |
-11(2) +6(1) -2(2) |
-38(2) -8(1) -25(2) |
-43(2) -14(1) -39(2) |
-46(2) -26(1) -50(2) |
-67(2) -46.6(9) -69(2) |
s16 |
stand
hit
double
|
-29(2) -2(1) -8(2) |
-25(1) +0.3(5) -1(1) |
-21(1) +3.6(5) +6(1) |
-16(2) +7(1) +14(2) |
-13(2) +8(1) +20(2) |
-48(2) -0(1) -18(2) |
-51(2) -7(1) -31(2) |
-54(2) -15(1) -45(2) |
-58(2) -27(1) -56(2) |
-73(2) -44.4(9) -72(2) |
s15 |
stand
hit
double
|
-28(2) -1(1) -7(2) |
-25(2) +3(1) -0(2) |
-20.6(3) +5.6(1) +6.2(3) |
-16(2) +9(1) +14(2) |
-13(2) +10(1) +20(2) |
-48(2) +3(1) -18(2) |
-51(2) -3(1) -32(2) |
-55(2) -11(1) -46(2) |
-57(2) -24(1) -55(2) |
-72(2) -42.4(9) -72(2) |
s14 |
stand
hit
double
|
-28(2) +2(1) -6(2) |
-24(2) +4(1) -1(2) |
-20(2) +8(1) +6(2) |
-16(1) +10.8(5) +12(1) |
-12(2) +12(1) +20(2) |
-48(2) +8(1) -19(2) |
-51(2) +2(1) -32(2) |
-54(2) -8(1) -45(2) |
-57(2) -20(1) -56(2) |
-72(2) -39.8(9) -71(2) |
s13 |
stand
hit
double
|
-29(2) +4(1) -7(2) |
-24(2) +7(1) -0(2) |
-20(2) +10(1) +5(2) |
-16.46(1) +12.88(1) +12.73(1) |
-13(2) +14(1) +19(2) |
-48(2) +12(1) -19(2) |
-51(2) +6(1) -33(2) |
-54(2) -3(1) -46(2) |
-57(2) -17(1) -55(2) |
-72(2) -37.2(9) -72(2) |
s12 |
stand
hit
double
|
-29(2) +7(1) -6(2) |
-25(2) +10(1) -0(2) |
-20(2) +12(1) +6(2) |
-16(2) +15(1) +13(2) |
-12(2) +15(1) +21(2) |
-47(2) +17(1) -18(2) |
-51(2) +9(1) -31(2) |
-54(2) +0(1) -45(2) |
-58(2) -15(1) -57(2) |
-72(2) -35.2(9) -72(2) |
Hand | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | T | A | |
h20 |
stand
hit
double
|
+64(1) -85.6(5) -171(1) |
+65(1) -85.6(5) -171(1) |
+65(1) -85.7(5) -171(1) |
+67(1) -85.5(5) -171(1) |
+68(1) -85.2(5) -171(1) |
+77(1) -85.1(6) -170(1) |
+79(1) -85.0(6) -170(1) |
+76(1) -85.0(6) -170(1) |
+44(1) -86.1(5) -164(1) |
+11(1) -89.6(5) -149(1) |
h19 |
stand
hit
double
|
+37(1) -73.1(7) -146(1) |
+40(1) -73.0(7) -145(1) |
+41(1) -72.8(7) -146(1) |
+44(1) -72.8(7) -144(1) |
+46(1) -72.6(7) -145(1) |
+61(2) -71.5(7) -143(2) |
+60(2) -71.4(7) -143(2) |
+28(2) -71.6(7) -143(2) |
-2(1) -74.9(7) -143(1) |
-18(1) -81.4(6) -131(1) |
h18 |
stand
hit
double
|
+11(2) -62.2(8) -124(2) |
+13(2) -61.5(8) -124(2) |
+17(2) -61.8(8) -124(2) |
+19(2) -61.4(8) -124(2) |
+22(2) -61.4(8) -122(2) |
+39(2) -59.4(8) -118(2) |
+10(2) -58.4(8) -117(2) |
-19(2) -61.5(8) -123(2) |
-24(2) -67.5(8) -128(2) |
-47(1) -74.6(7) -119(1) |
h17 |
stand
hit
double
|
-15(2) -53.9(9) -109(2) |
-12(2) -53.6(9) -106(2) |
-8(2) -52.9(9) -106(2) |
-5(2) -51.7(9) -105(2) |
-1(2) -51.9(9) -104(2) |
-11(2) -48.1(9) -96(2) |
-39(2) -50.4(9) -101(2) |
-43(2) -55.4(8) -111(2) |
-46(2) -61.9(8) -116(2) |
-66(1) -70.8(7) -111(1) |
h16 |
stand
hit
double
|
-29(2) -47.5(9) -95(2) |
-25(2) -46.5(9) -94(2) |
-21(2) -45.5(9) -92(2) |
-16(2) -45.2(9) -90(2) |
-12(2) -44.4(9) -88(2) |
-47(2) -41.3(9) -84(2) |
-51(2) -46.0(9) -92(2) |
-55(2) -50.7(9) -103(2) |
-57.57(1) -57.53(1) -107.34(1) |
-72(1) -68.2(7) -105(1) |
h15 |
stand
hit
double
|
-28(2) -41.5(9) -84(2) |
-25(2) -40.7(9) -81(2) |
-21(2) -39.4(9) -79(2) |
-17(2) -38(1) -78(2) |
-12(2) -38(1) -75(2) |
-48(2) -37.0(9) -75(2) |
-51(2) -41.5(9) -84(2) |
-54(2) -47.3(9) -95(2) |
-58(2) -54.6(9) -100(2) |
-72(2) -65.8(8) -101(2) |
h14 |
stand
hit
double
|
-29(2) -37(1) -72(2) |
-24(2) -35(1) -71(2) |
-20(2) -34(1) -69(2) |
-17(2) -32(1) -64(2) |
-12(2) -31(1) -61(2) |
-48(2) -32(1) -66(2) |
-51(2) -37.6(9) -77(2) |
-54(2) -43.3(9) -88(2) |
-58(2) -50.7(9) -95(2) |
-72(2) -62.8(8) -98(2) |
h13 |
stand
hit
double
|
-29(1) -31.0(5) -62(1) |
-25(2) -29(1) -59(2) |
-21(2) -27(1) -55(2) |
-17(2) -26(1) -50(2) |
-12(2) -24(1) -48(2) |
-48(2) -27(1) -58(2) |
-51(2) -32(1) -70(2) |
-54(2) -38.6(9) -81(2) |
-57(2) -46.5(9) -87(2) |
-72(2) -60.3(8) -92(2) |
h12 |
stand
hit
double
|
-29(2) -25(1) -50(2) |
-25(1) -23.2(5) -47(1) |
-20.5(3) -21.3(1) -42.8(3) |
-17(1) -19.5(5) -39(1) |
-12(2) -17(1) -35(2) |
-47(2) -21(1) -50(2) |
-51(2) -27(1) -62(2) |
-54(2) -34(1) -74(2) |
-58(2) -43.0(9) -82(2) |
-73(2) -57.4(8) -89(2) |
h11 |
stand
hit
double
|
-28(2) +24(1) +47(2) |
-25(2) +26(1) +51(2) |
-20(2) +29(1) +56(2) |
-16(2) +31(1) +61(2) |
-12(2) +33(1) +67(2) |
-47(2) +29(1) +46(2) |
-51(2) +22(1) +35(2) |
-54(2) +16(1) +24(2) |
-58(2) +3(1) +10(2) |
-72.22(1) -23.67(1) -23.56(1) |
h10 |
stand
hit
double
|
-28(2) +18(1) +36(2) |
-24(2) +21(1) +41(2) |
-21(2) +23(1) +47(2) |
-16(2) +26(1) +52(2) |
-12(2) +29(1) +56(2) |
-47(2) +25(1) +38(2) |
-51(2) +20(1) +29(2) |
-54(1) +11.8(5) +15(1) |
-58(2) -6(1) -8(2) |
-72(2) -29(1) -34(2) |
h9 |
stand
hit
double
|
-29(1) +7.6(5) +6(1) |
-25(1) +9.9(5) +12(1) |
-21(2) +12(1) +18(2) |
-16(2) +16(1) +24(2) |
-12(2) +20(1) +31(2) |
-48(2) +17(1) +10(2) |
-51(2) +10(1) -2(2) |
-54(2) -5(1) -30(2) |
-58(2) -22(1) -52(2) |
-72(2) -38.8(9) -61(2) |
h8 |
stand
hit
double
|
-29(2) -2(1) -19(2) |
-26(2) +0(1) -14(2) |
-21(2) +4(1) -8(2) |
-16(2) +8(1) +0(2) |
-12(1) +10.5(5) +7(1) |
-47(2) +9(1) -17(2) |
-52(2) -6(1) -46(2) |
-54(2) -22(1) -72(2) |
-57(2) -31(1) -76(2) |
-72(2) -49.0(9) -88(2) |
h7 |
stand
hit
double
|
-29(2) -11(1) -43(2) |
-24(2) -8(1) -35(2) |
-19(2) -4(1) -28(2) |
-17(2) -1(1) -21(2) |
-12(2) +3(1) -11(2) |
-47(2) -7(1) -60(2) |
-51(2) -20(1) -85(2) |
-54(2) -29(1) -96(2) |
-58(2) -37.1(9) -96(2) |
-72(1) -55.5(8) -105(1) |
h6 |
stand
hit
double
|
-28(2) -16(1) -56(2) |
-24(2) -12(1) -47(2) |
-21(2) -8(1) -39(2) |
-17(2) -5(1) -31(2) |
-12(2) -1(1) -22(2) |
-48(2) -16(1) -90(2) |
-51(2) -24(1) -99(2) |
-54(2) -31(1) -107(2) |
-58(2) -40.0(9) -105(2) |
-72(1) -56.3(8) -112(1) |
h5 |
stand
hit
double
|
-28(2) -14(1) -56(2) |
-25(2) -12(1) -49(2) |
-21(2) -8(1) -43(2) |
-16(2) -4(1) -33(2) |
-12(2) -0(1) -24(2) |
-47(2) -16(1) -94(2) |
-51(2) -22(1) -102(2) |
-54(2) -30(1) -108(2) |
-57(2) -38.8(9) -107(2) |
-72(1) -54.7(8) -114(1) |
h4 |
stand
hit
double
|
-29(2) -13(1) -57(2) |
-25(2) -10(1) -50(2) |
-21(2) -7(1) -41(2) |
-17(2) -3(1) -33(2) |
-12(2) +0(1) -24(2) |
-48(2) -13(1) -95(2) |
-51(2) -20(1) -103(2) |
-54(2) -28(1) -109(2) |
-57(2) -36.6(9) -107(2) |
-72(1) -53.8(9) -113(1) |
Hand | n | Stand [%] | Double [%] | Hit [%] | Play |
---|---|---|---|---|---|
h20-2 | 8.0e+04 | +63.55 (1.1) | -85.62 (0.5) | -171.16 (1.1) | stand |
h20-3 | 8.0e+04 | +64.58 (1.1) | -85.56 (0.5) | -170.56 (1.1) | stand |
h20-4 | 8.0e+04 | +65.30 (1.1) | -85.70 (0.5) | -171.10 (1.1) | stand |
h20-5 | 8.0e+04 | +67.04 (1.1) | -85.52 (0.5) | -171.34 (1.1) | stand |
h20-6 | 8.0e+04 | +67.81 (1.1) | -85.17 (0.5) | -170.61 (1.1) | stand |
h20-7 | 8.0e+04 | +77.12 (1.1) | -85.13 (0.6) | -170.32 (1.1) | stand |
h20-8 | 8.0e+04 | +79.14 (1.1) | -84.99 (0.6) | -170.46 (1.1) | stand |
h20-9 | 8.0e+04 | +75.94 (1.1) | -85.00 (0.6) | -169.53 (1.1) | stand |
h20-T | 8.0e+04 | +43.51 (1.1) | -86.06 (0.5) | -164.02 (1.1) | stand |
h20-A | 8.0e+04 | +10.86 (1.0) | -89.62 (0.5) | -149.06 (1.0) | stand |
h19-2 | 8.0e+04 | +37.41 (1.4) | -73.09 (0.7) | -146.25 (1.4) | stand |
h19-3 | 8.0e+04 | +40.09 (1.4) | -72.96 (0.7) | -145.29 (1.4) | stand |
h19-4 | 8.0e+04 | +41.38 (1.4) | -72.80 (0.7) | -146.07 (1.4) | stand |
h19-5 | 8.0e+04 | +43.76 (1.4) | -72.76 (0.7) | -144.19 (1.4) | stand |
h19-6 | 8.0e+04 | +45.80 (1.4) | -72.62 (0.7) | -145.14 (1.4) | stand |
h19-7 | 8.0e+04 | +61.39 (1.5) | -71.50 (0.7) | -143.39 (1.5) | stand |
h19-8 | 8.0e+04 | +59.58 (1.5) | -71.36 (0.7) | -143.03 (1.5) | stand |
h19-9 | 8.0e+04 | +28.15 (1.5) | -71.59 (0.7) | -143.42 (1.5) | stand |
h19-T | 8.0e+04 | -2.00 (1.3) | -74.91 (0.7) | -142.88 (1.3) | stand |
h19-A | 8.0e+04 | -18.04 (1.2) | -81.43 (0.6) | -131.46 (1.2) | stand |
h18-2 | 8.0e+04 | +11.02 (1.6) | -62.22 (0.8) | -123.71 (1.6) | stand |
h18-3 | 8.0e+04 | +13.20 (1.6) | -61.53 (0.8) | -124.35 (1.6) | stand |
h18-4 | 8.0e+04 | +16.92 (1.6) | -61.80 (0.8) | -123.86 (1.6) | stand |
h18-5 | 8.0e+04 | +19.35 (1.6) | -61.38 (0.8) | -123.62 (1.6) | stand |
h18-6 | 8.0e+04 | +22.36 (1.6) | -61.35 (0.8) | -121.85 (1.6) | stand |
h18-7 | 8.0e+04 | +39.35 (1.7) | -59.36 (0.8) | -118.48 (1.7) | stand |
h18-8 | 8.0e+04 | +10.34 (1.7) | -58.35 (0.8) | -117.43 (1.7) | stand |
h18-9 | 8.0e+04 | -18.74 (1.6) | -61.52 (0.8) | -123.34 (1.6) | stand |
h18-T | 8.0e+04 | -23.84 (1.5) | -67.55 (0.8) | -127.96 (1.5) | stand |
h18-A | 8.0e+04 | -46.97 (1.3) | -74.64 (0.7) | -118.63 (1.3) | stand |
h17-2 | 8.0e+04 | -15.44 (1.7) | -53.93 (0.9) | -108.61 (1.7) | stand |
h17-3 | 8.0e+04 | -12.18 (1.8) | -53.57 (0.9) | -105.83 (1.8) | stand |
h17-4 | 8.0e+04 | -8.33 (1.8) | -52.86 (0.9) | -105.69 (1.8) | stand |
h17-5 | 8.0e+04 | -4.55 (1.8) | -51.66 (0.9) | -105.34 (1.8) | stand |
h17-6 | 8.0e+04 | -1.15 (1.8) | -51.94 (0.9) | -104.07 (1.8) | stand |
h17-7 | 8.0e+04 | -10.79 (1.8) | -48.10 (0.9) | -96.43 (1.8) | stand |
h17-8 | 8.0e+04 | -38.74 (1.8) | -50.44 (0.9) | -101.03 (1.8) | stand |
h17-9 | 8.0e+04 | -42.54 (1.7) | -55.42 (0.8) | -111.46 (1.7) | stand |
h17-T | 8.0e+04 | -46.12 (1.6) | -61.91 (0.8) | -115.53 (1.6) | stand |
h17-A | 8.0e+04 | -66.10 (1.4) | -70.80 (0.7) | -110.62 (1.4) | stand |
h16-2 | 8.0e+04 | -28.62 (1.8) | -47.46 (0.9) | -95.12 (1.8) | stand |
h16-3 | 8.0e+04 | -24.81 (1.8) | -46.52 (0.9) | -93.95 (1.8) | stand |
h16-4 | 8.0e+04 | -20.67 (1.8) | -45.46 (0.9) | -91.92 (1.8) | stand |
h16-5 | 8.0e+04 | -16.48 (1.8) | -45.18 (0.9) | -89.56 (1.8) | stand |
h16-6 | 8.0e+04 | -11.55 (1.9) | -44.39 (0.9) | -87.64 (1.9) | stand |
h16-7 | 8.0e+04 | -47.14 (1.9) | -41.27 (0.9) | -84.33 (1.9) | hit |
h16-8 | 8.0e+04 | -50.94 (1.8) | -45.95 (0.9) | -92.12 (1.8) | hit |
h16-9 | 8.0e+04 | -54.50 (1.7) | -50.71 (0.9) | -102.58 (1.7) | hit |
h16-T | 2.0e+07 | -57.57 (0) | -57.53 (0) | -107.34 (0) | hit |
h16-A | 8.0e+04 | -72.39 (1.4) | -68.19 (0.7) | -105.24 (1.4) | hit |
h15-2 | 8.0e+04 | -28.36 (1.9) | -41.53 (0.9) | -83.65 (1.9) | stand |
h15-3 | 8.0e+04 | -25.21 (1.9) | -40.72 (0.9) | -81.48 (1.9) | stand |
h15-4 | 8.0e+04 | -20.66 (1.9) | -39.38 (0.9) | -78.86 (1.9) | stand |
h15-5 | 8.0e+04 | -16.55 (1.9) | -38.38 (1.0) | -77.57 (1.9) | stand |
h15-6 | 8.0e+04 | -11.88 (1.9) | -37.86 (1.0) | -75.22 (1.9) | stand |
h15-7 | 8.0e+04 | -48.09 (1.9) | -37.04 (0.9) | -75.35 (1.9) | hit |
h15-8 | 8.0e+04 | -50.84 (1.9) | -41.53 (0.9) | -83.94 (1.9) | hit |
h15-9 | 8.0e+04 | -54.38 (1.8) | -47.30 (0.9) | -95.06 (1.8) | hit |
h15-T | 8.0e+04 | -57.73 (1.7) | -54.62 (0.9) | -99.81 (1.7) | hit |
h15-A | 8.0e+04 | -72.00 (1.5) | -65.80 (0.8) | -101.33 (1.5) | hit |
h14-2 | 8.0e+04 | -28.56 (1.9) | -36.62 (1.0) | -72.17 (1.9) | stand |
h14-3 | 8.0e+04 | -24.12 (1.9) | -34.63 (1.0) | -70.90 (1.9) | stand |
h14-4 | 8.0e+04 | -20.48 (1.9) | -33.73 (1.0) | -68.97 (1.9) | stand |
h14-5 | 8.0e+04 | -16.54 (2.0) | -31.93 (1.0) | -64.39 (2.0) | stand |
h14-6 | 8.0e+04 | -12.19 (2.0) | -30.64 (1.0) | -60.75 (2.0) | stand |
h14-7 | 8.0e+04 | -47.85 (1.9) | -32.25 (1.0) | -66.44 (1.9) | hit |
h14-8 | 8.0e+04 | -51.09 (1.9) | -37.59 (0.9) | -76.59 (1.9) | hit |
h14-9 | 8.0e+04 | -54.41 (1.8) | -43.27 (0.9) | -87.80 (1.8) | hit |
h14-T | 8.0e+04 | -57.74 (1.7) | -50.71 (0.9) | -94.55 (1.7) | hit |
h14-A | 8.0e+04 | -72.11 (1.5) | -62.81 (0.8) | -97.57 (1.5) | hit |
h13-2 | 3.2e+05 | -28.58 (1.0) | -30.97 (0.5) | -61.58 (1.0) | stand |
h13-3 | 8.0e+04 | -24.61 (2.0) | -29.17 (1.0) | -58.99 (2.0) | stand |
h13-4 | 8.0e+04 | -21.15 (2.0) | -27.05 (1.0) | -55.31 (2.0) | stand |
h13-5 | 8.0e+04 | -16.88 (2.0) | -26.15 (1.0) | -50.31 (2.0) | stand |
h13-6 | 8.0e+04 | -12.35 (2.0) | -24.12 (1.0) | -47.91 (2.0) | stand |
h13-7 | 8.0e+04 | -47.50 (2.0) | -26.69 (1.0) | -58.47 (2.0) | hit |
h13-8 | 8.0e+04 | -51.33 (1.9) | -32.22 (1.0) | -70.19 (1.9) | hit |
h13-9 | 8.0e+04 | -54.31 (1.9) | -38.57 (0.9) | -80.97 (1.9) | hit |
h13-T | 8.0e+04 | -56.99 (1.8) | -46.49 (0.9) | -87.36 (1.8) | hit |
h13-A | 8.0e+04 | -72.39 (1.5) | -60.33 (0.8) | -92.36 (1.5) | hit |
h12-2 | 8.0e+04 | -28.53 (2.0) | -25.26 (1.0) | -50.10 (2.0) | hit |
h12-3 | 3.2e+05 | -24.74 (1.0) | -23.20 (0.5) | -47.17 (1.0) | hit |
h12-4 | 5.1e+06 | -20.50 (0.3) | -21.34 (0.1) | -42.80 (0.3) | stand |
h12-5 | 3.2e+05 | -16.67 (1.0) | -19.49 (0.5) | -38.59 (1.0) | stand |
h12-6 | 8.0e+04 | -11.57 (2.0) | -17.45 (1.0) | -34.91 (2.0) | stand |
h12-7 | 8.0e+04 | -47.16 (2.0) | -21.22 (1.0) | -49.56 (2.0) | hit |
h12-8 | 8.0e+04 | -51.23 (2.0) | -26.82 (1.0) | -61.96 (2.0) | hit |
h12-9 | 8.0e+04 | -54.02 (1.9) | -33.93 (1.0) | -74.10 (1.9) | hit |
h12-T | 8.0e+04 | -58.14 (1.8) | -43.03 (0.9) | -82.21 (1.8) | hit |
h12-A | 8.0e+04 | -72.60 (1.5) | -57.38 (0.8) | -88.89 (1.5) | hit |
h11-2 | 8.0e+04 | -27.73 (2.0) | +23.74 (1.0) | +46.68 (2.0) | double |
h11-3 | 8.0e+04 | -24.81 (2.0) | +26.30 (1.0) | +50.86 (2.0) | double |
h11-4 | 8.0e+04 | -20.28 (2.0) | +28.91 (1.0) | +56.46 (2.0) | double |
h11-5 | 8.0e+04 | -16.10 (1.9) | +31.08 (1.0) | +60.58 (1.9) | double |
h11-6 | 8.0e+04 | -12.18 (1.9) | +33.16 (1.0) | +67.19 (1.9) | double |
h11-7 | 8.0e+04 | -47.49 (2.0) | +29.49 (1.0) | +46.09 (2.0) | double |
h11-8 | 8.0e+04 | -51.29 (2.0) | +22.39 (1.0) | +34.94 (2.0) | double |
h11-9 | 8.0e+04 | -54.41 (2.0) | +15.62 (1.0) | +23.72 (2.0) | double |
h11-T | 8.0e+04 | -57.70 (2.0) | +3.21 (1.0) | +9.84 (2.0) | double |
h11-A | 2.0e+07 | -72.22 (0) | -23.67 (0) | -23.56 (0) | double |
h10-2 | 8.0e+04 | -28.45 (2.0) | +18.25 (1.0) | +35.73 (2.0) | double |
h10-3 | 8.0e+04 | -23.99 (2.0) | +20.70 (1.0) | +40.59 (2.0) | double |
h10-4 | 8.0e+04 | -21.31 (2.0) | +23.14 (1.0) | +46.54 (2.0) | double |
h10-5 | 8.0e+04 | -16.23 (2.0) | +25.77 (1.0) | +51.66 (2.0) | double |
h10-6 | 8.0e+04 | -12.01 (2.0) | +28.63 (1.0) | +56.36 (2.0) | double |
h10-7 | 8.0e+04 | -47.40 (2.0) | +25.23 (1.0) | +38.38 (2.0) | double |
h10-8 | 8.0e+04 | -51.35 (2.0) | +20.43 (1.0) | +28.63 (2.0) | double |
h10-9 | 3.2e+05 | -54.13 (1.0) | +11.81 (0.5) | +15.23 (1.0) | double |
h10-T | 8.0e+04 | -58.04 (1.9) | -5.84 (1.0) | -7.94 (1.9) | hit |
h10-A | 8.0e+04 | -72.46 (1.7) | -28.90 (1.0) | -33.54 (1.7) | hit |
h9-2 | 3.2e+05 | -28.82 (1.0) | +7.62 (0.5) | +5.95 (1.0) | hit |
h9-3 | 3.2e+05 | -24.59 (1.0) | +9.93 (0.5) | +11.94 (1.0) | double |
h9-4 | 8.0e+04 | -20.79 (2.0) | +12.15 (1.0) | +17.76 (2.0) | double |
h9-5 | 8.0e+04 | -16.50 (2.0) | +15.92 (1.0) | +23.51 (2.0) | double |
h9-6 | 8.0e+04 | -12.35 (2.0) | +19.57 (1.0) | +30.65 (2.0) | double |
h9-7 | 8.0e+04 | -47.62 (2.0) | +17.20 (1.0) | +10.00 (2.0) | hit |
h9-8 | 8.0e+04 | -50.97 (2.0) | +10.15 (1.0) | -2.38 (2.0) | hit |
h9-9 | 8.0e+04 | -53.95 (1.9) | -4.61 (1.0) | -29.84 (1.9) | hit |
h9-T | 8.0e+04 | -57.78 (1.9) | -21.96 (1.0) | -52.36 (1.9) | hit |
h9-A | 8.0e+04 | -72.33 (1.7) | -38.77 (0.9) | -61.26 (1.7) | hit |
h8-2 | 8.0e+04 | -29.03 (2.0) | -1.76 (1.0) | -19.15 (2.0) | hit |
h8-3 | 8.0e+04 | -25.61 (2.1) | +0.33 (1.0) | -13.68 (2.1) | hit |
h8-4 | 8.0e+04 | -20.69 (2.1) | +3.82 (1.0) | -7.66 (2.1) | hit |
h8-5 | 8.0e+04 | -16.06 (2.1) | +7.53 (1.0) | +0.32 (2.1) | hit |
h8-6 | 3.2e+05 | -12.16 (1.0) | +10.49 (0.5) | +7.43 (1.0) | hit |
h8-7 | 8.0e+04 | -47.34 (2.0) | +8.56 (1.0) | -16.64 (2.0) | hit |
h8-8 | 8.0e+04 | -51.56 (1.9) | -6.18 (1.0) | -46.07 (1.9) | hit |
h8-9 | 8.0e+04 | -54.44 (1.9) | -21.65 (1.0) | -71.64 (1.9) | hit |
h8-T | 8.0e+04 | -57.15 (1.8) | -30.78 (1.0) | -76.35 (1.8) | hit |
h8-A | 8.0e+04 | -72.01 (1.5) | -49.02 (0.9) | -88.47 (1.5) | hit |
h7-2 | 8.0e+04 | -29.15 (2.0) | -11.08 (1.0) | -42.53 (2.0) | hit |
h7-3 | 8.0e+04 | -24.37 (2.0) | -7.51 (1.0) | -34.68 (2.0) | hit |
h7-4 | 8.0e+04 | -19.40 (2.1) | -3.90 (1.0) | -27.57 (2.1) | hit |
h7-5 | 8.0e+04 | -16.84 (2.1) | -0.53 (1.0) | -20.59 (2.1) | hit |
h7-6 | 8.0e+04 | -11.93 (2.1) | +2.53 (1.0) | -10.66 (2.1) | hit |
h7-7 | 8.0e+04 | -47.22 (1.9) | -7.33 (1.0) | -59.71 (1.9) | hit |
h7-8 | 8.0e+04 | -50.71 (1.8) | -20.35 (1.0) | -85.02 (1.8) | hit |
h7-9 | 8.0e+04 | -54.12 (1.8) | -29.11 (1.0) | -96.16 (1.8) | hit |
h7-T | 8.0e+04 | -57.52 (1.7) | -37.06 (0.9) | -95.95 (1.7) | hit |
h7-A | 8.0e+04 | -72.23 (1.4) | -55.54 (0.8) | -104.99 (1.4) | hit |
h6-2 | 8.0e+04 | -28.38 (2.0) | -15.59 (1.0) | -56.44 (2.0) | hit |
h6-3 | 8.0e+04 | -24.34 (2.1) | -11.56 (1.0) | -46.62 (2.1) | hit |
h6-4 | 8.0e+04 | -21.46 (2.1) | -8.03 (1.0) | -39.24 (2.1) | hit |
h6-5 | 8.0e+04 | -16.68 (2.1) | -4.95 (1.0) | -31.10 (2.1) | hit |
h6-6 | 8.0e+04 | -12.40 (2.1) | -0.76 (1.0) | -22.49 (2.1) | hit |
h6-7 | 8.0e+04 | -47.58 (1.9) | -16.43 (1.0) | -89.56 (1.9) | hit |
h6-8 | 8.0e+04 | -50.72 (1.8) | -24.13 (1.0) | -98.62 (1.8) | hit |
h6-9 | 8.0e+04 | -54.32 (1.8) | -31.34 (1.0) | -107.41 (1.8) | hit |
h6-T | 8.0e+04 | -57.56 (1.7) | -40.02 (0.9) | -105.28 (1.7) | hit |
h6-A | 8.0e+04 | -72.04 (1.4) | -56.31 (0.8) | -112.37 (1.4) | hit |
h5-2 | 8.0e+04 | -28.46 (2.0) | -14.09 (1.0) | -56.05 (2.0) | hit |
h5-3 | 8.0e+04 | -24.73 (2.1) | -11.80 (1.0) | -49.48 (2.1) | hit |
h5-4 | 8.0e+04 | -20.62 (2.1) | -8.01 (1.0) | -42.69 (2.1) | hit |
h5-5 | 8.0e+04 | -16.47 (2.1) | -4.45 (1.0) | -32.88 (2.1) | hit |
h5-6 | 8.0e+04 | -12.29 (2.1) | -0.24 (1.0) | -24.41 (2.1) | hit |
h5-7 | 8.0e+04 | -47.07 (1.9) | -16.19 (1.0) | -94.28 (1.9) | hit |
h5-8 | 8.0e+04 | -51.00 (1.8) | -22.25 (1.0) | -101.66 (1.8) | hit |
h5-9 | 8.0e+04 | -54.20 (1.8) | -29.74 (1.0) | -107.96 (1.8) | hit |
h5-T | 8.0e+04 | -57.42 (1.7) | -38.76 (0.9) | -107.09 (1.7) | hit |
h5-A | 8.0e+04 | -72.39 (1.4) | -54.71 (0.8) | -114.03 (1.4) | hit |
h4-2 | 8.0e+04 | -28.76 (2.0) | -12.93 (1.0) | -57.47 (2.0) | hit |
h4-3 | 8.0e+04 | -24.68 (2.1) | -10.48 (1.0) | -49.92 (2.1) | hit |
h4-4 | 8.0e+04 | -20.67 (2.1) | -7.36 (1.0) | -41.23 (2.1) | hit |
h4-5 | 8.0e+04 | -16.91 (2.1) | -3.43 (1.0) | -32.59 (2.1) | hit |
h4-6 | 8.0e+04 | -12.25 (2.1) | +0.40 (1.0) | -23.57 (2.1) | hit |
h4-7 | 8.0e+04 | -47.75 (1.9) | -12.72 (1.0) | -94.73 (1.9) | hit |
h4-8 | 8.0e+04 | -50.76 (1.8) | -19.63 (1.0) | -103.23 (1.8) | hit |
h4-9 | 8.0e+04 | -54.06 (1.8) | -28.13 (1.0) | -108.57 (1.8) | hit |
h4-T | 8.0e+04 | -56.86 (1.7) | -36.62 (0.9) | -107.18 (1.7) | hit |
h4-A | 8.0e+04 | -72.38 (1.4) | -53.76 (0.9) | -113.22 (1.4) | hit |
s20-2 | 8.0e+04 | +63.48 (2.0) | +18.05 (1.0) | +36.30 (2.0) | stand |
s20-3 | 8.0e+04 | +64.51 (2.0) | +19.96 (1.0) | +41.60 (2.0) | stand |
s20-4 | 8.0e+04 | +65.47 (2.0) | +22.51 (1.0) | +45.96 (2.0) | stand |
s20-5 | 8.0e+04 | +66.59 (2.0) | +26.19 (1.0) | +50.69 (2.0) | stand |
s20-6 | 8.0e+04 | +68.22 (2.0) | +28.20 (1.0) | +56.57 (2.0) | stand |
s20-7 | 8.0e+04 | +77.45 (2.0) | +26.05 (1.0) | +40.16 (2.0) | stand |
s20-8 | 8.0e+04 | +79.03 (2.0) | +19.32 (1.0) | +28.44 (2.0) | stand |
s20-9 | 8.0e+04 | +76.09 (2.0) | +11.81 (1.0) | +15.62 (2.0) | stand |
s20-T | 8.0e+04 | +43.83 (1.9) | -5.43 (1.0) | -8.42 (1.9) | stand |
s20-A | 8.0e+04 | +10.71 (1.7) | -28.46 (1.0) | -34.57 (1.7) | stand |
s19-2 | 8.0e+04 | +37.55 (2.0) | +12.16 (1.0) | +23.28 (2.0) | stand |
s19-3 | 8.0e+04 | +39.32 (2.0) | +14.45 (1.0) | +28.76 (2.0) | stand |
s19-4 | 8.0e+04 | +41.67 (2.0) | +17.97 (1.0) | +34.49 (2.0) | stand |
s19-5 | 3.2e+05 | +43.87 (1.0) | +20.25 (0.5) | +39.76 (1.0) | stand |
s19-6 | 5.1e+06 | +45.30 (0.2) | +23.06 (0.1) | +46.24 (0.2) | double |
s19-7 | 8.0e+04 | +62.00 (2.0) | +22.80 (1.0) | +32.42 (2.0) | stand |
s19-8 | 8.0e+04 | +59.68 (2.0) | +15.07 (1.0) | +20.09 (2.0) | stand |
s19-9 | 8.0e+04 | +28.83 (2.0) | +1.29 (1.0) | -7.06 (2.0) | stand |
s19-T | 8.0e+04 | -1.88 (1.9) | -15.44 (1.0) | -29.40 (1.9) | stand |
s19-A | 8.0e+04 | -17.63 (1.7) | -34.41 (0.9) | -46.94 (1.7) | stand |
s18-2 | 2.0e+07 | +11.01 (0) | +6.00 (0) | +11.43 (0) | double |
s18-3 | 3.2e+05 | +13.74 (1.0) | +8.81 (0.5) | +17.70 (1.0) | double |
s18-4 | 8.0e+04 | +16.38 (2.0) | +12.04 (1.0) | +22.38 (2.0) | double |
s18-5 | 8.0e+04 | +19.67 (2.0) | +14.12 (1.0) | +29.11 (2.0) | double |
s18-6 | 8.0e+04 | +22.24 (2.0) | +15.83 (1.0) | +35.89 (2.0) | double |
s18-7 | 8.0e+04 | +39.95 (2.0) | +17.00 (1.0) | +21.63 (2.0) | stand |
s18-8 | 8.0e+04 | +10.59 (2.0) | +3.79 (1.0) | -2.20 (2.0) | stand |
s18-9 | 8.0e+04 | -18.25 (2.0) | -10.19 (1.0) | -27.83 (2.0) | hit |
s18-T | 8.0e+04 | -23.79 (1.9) | -20.45 (1.0) | -38.84 (1.9) | hit |
s18-A | 8.0e+04 | -46.31 (1.7) | -41.64 (0.9) | -59.63 (1.7) | hit |
s17-2 | 2.0e+07 | -15.67 (0) | -0.59 (0) | -0.88 (0) | hit |
s17-3 | 3.2e+05 | -12.35 (1.0) | +2.42 (0.5) | +5.90 (1.0) | double |
s17-4 | 8.0e+04 | -8.13 (2.0) | +5.14 (1.0) | +11.54 (2.0) | double |
s17-5 | 8.0e+04 | -4.49 (2.0) | +9.23 (1.0) | +18.59 (2.0) | double |
s17-6 | 8.0e+04 | -0.39 (2.0) | +10.43 (1.0) | +25.67 (2.0) | double |
s17-7 | 8.0e+04 | -10.70 (2.0) | +5.76 (1.0) | -2.08 (2.0) | hit |
s17-8 | 8.0e+04 | -37.98 (2.0) | -7.55 (1.0) | -24.83 (2.0) | hit |
s17-9 | 8.0e+04 | -42.52 (2.0) | -14.14 (1.0) | -39.49 (2.0) | hit |
s17-T | 8.0e+04 | -46.49 (1.9) | -25.88 (1.0) | -50.28 (1.9) | hit |
s17-A | 8.0e+04 | -66.85 (1.6) | -46.56 (0.9) | -68.92 (1.6) | hit |
s16-2 | 8.0e+04 | -28.87 (2.1) | -1.93 (1.0) | -7.79 (2.1) | hit |
s16-3 | 3.2e+05 | -24.68 (1.0) | +0.27 (0.5) | -1.15 (1.0) | hit |
s16-4 | 3.2e+05 | -20.67 (1.0) | +3.56 (0.5) | +5.67 (1.0) | double |
s16-5 | 8.0e+04 | -16.41 (2.1) | +6.62 (1.0) | +13.59 (2.1) | double |
s16-6 | 8.0e+04 | -12.54 (2.1) | +8.47 (1.0) | +19.52 (2.1) | double |
s16-7 | 8.0e+04 | -47.66 (2.1) | -0.28 (1.0) | -17.54 (2.1) | hit |
s16-8 | 8.0e+04 | -51.11 (2.0) | -6.82 (1.0) | -31.42 (2.0) | hit |
s16-9 | 8.0e+04 | -54.37 (2.0) | -14.60 (1.0) | -45.25 (2.0) | hit |
s16-T | 8.0e+04 | -57.80 (1.9) | -26.81 (1.0) | -55.92 (1.9) | hit |
s16-A | 8.0e+04 | -72.59 (1.6) | -44.41 (0.9) | -71.66 (1.6) | hit |
s15-2 | 8.0e+04 | -28.34 (2.1) | -0.67 (1.0) | -7.00 (2.1) | hit |
s15-3 | 8.0e+04 | -24.95 (2.1) | +2.82 (1.0) | -0.19 (2.1) | hit |
s15-4 | 5.1e+06 | -20.55 (0.3) | +5.57 (0.1) | +6.16 (0.3) | double |
s15-5 | 8.0e+04 | -16.27 (2.1) | +8.83 (1.0) | +13.72 (2.1) | double |
s15-6 | 8.0e+04 | -12.97 (2.1) | +9.96 (1.0) | +20.24 (2.1) | double |
s15-7 | 8.0e+04 | -47.65 (2.1) | +3.09 (1.0) | -18.41 (2.1) | hit |
s15-8 | 8.0e+04 | -51.20 (2.0) | -2.86 (1.0) | -31.79 (2.0) | hit |
s15-9 | 8.0e+04 | -55.02 (2.0) | -11.42 (1.0) | -46.42 (2.0) | hit |
s15-T | 8.0e+04 | -57.45 (1.9) | -23.91 (1.0) | -54.95 (1.9) | hit |
s15-A | 8.0e+04 | -72.00 (1.6) | -42.42 (0.9) | -72.09 (1.6) | hit |
s14-2 | 8.0e+04 | -28.06 (2.1) | +1.78 (1.0) | -6.21 (2.1) | hit |
s14-3 | 8.0e+04 | -24.41 (2.1) | +4.42 (1.0) | -0.62 (2.1) | hit |
s14-4 | 8.0e+04 | -20.41 (2.1) | +8.31 (1.0) | +5.82 (2.1) | hit |
s14-5 | 3.2e+05 | -16.31 (1.0) | +10.82 (0.5) | +12.34 (1.0) | double |
s14-6 | 8.0e+04 | -12.35 (2.1) | +11.90 (1.0) | +19.57 (2.1) | double |
s14-7 | 8.0e+04 | -47.52 (2.0) | +7.95 (1.0) | -18.64 (2.0) | hit |
s14-8 | 8.0e+04 | -51.41 (2.0) | +2.01 (1.0) | -32.23 (2.0) | hit |
s14-9 | 8.0e+04 | -54.26 (2.0) | -7.57 (1.0) | -45.45 (2.0) | hit |
s14-T | 8.0e+04 | -57.20 (1.9) | -20.14 (1.0) | -56.20 (1.9) | hit |
s14-A | 8.0e+04 | -72.41 (1.6) | -39.75 (0.9) | -70.94 (1.6) | hit |
s13-2 | 8.0e+04 | -28.79 (2.1) | +4.29 (1.0) | -7.07 (2.1) | hit |
s13-3 | 8.0e+04 | -24.39 (2.1) | +7.00 (1.0) | -0.33 (2.1) | hit |
s13-4 | 8.0e+04 | -20.39 (2.1) | +10.23 (1.0) | +5.20 (2.1) | hit |
s13-5 | 2.0e+07 | -16.46 (0) | +12.88 (0) | +12.73 (0) | hit |
s13-6 | 8.0e+04 | -12.67 (2.1) | +13.75 (1.0) | +18.93 (2.1) | double |
s13-7 | 8.0e+04 | -47.64 (2.1) | +12.41 (1.0) | -18.59 (2.1) | hit |
s13-8 | 8.0e+04 | -51.47 (2.0) | +5.50 (1.0) | -32.61 (2.0) | hit |
s13-9 | 8.0e+04 | -54.33 (2.0) | -3.30 (1.0) | -45.89 (2.0) | hit |
s13-T | 8.0e+04 | -57.17 (1.9) | -17.29 (1.0) | -55.28 (1.9) | hit |
s13-A | 8.0e+04 | -71.95 (1.6) | -37.21 (0.9) | -72.33 (1.6) | hit |
s12-2 | 8.0e+04 | -28.81 (2.1) | +7.24 (1.0) | -5.99 (2.1) | hit |
s12-3 | 8.0e+04 | -24.61 (2.1) | +9.89 (1.0) | -0.34 (2.1) | hit |
s12-4 | 8.0e+04 | -20.33 (2.1) | +12.28 (1.0) | +6.36 (2.1) | hit |
s12-5 | 8.0e+04 | -16.22 (2.1) | +15.13 (1.0) | +12.78 (2.1) | hit |
s12-6 | 8.0e+04 | -12.16 (2.1) | +15.30 (1.0) | +21.02 (2.1) | double |
s12-7 | 8.0e+04 | -46.97 (2.1) | +16.64 (1.0) | -18.22 (2.1) | hit |
s12-8 | 8.0e+04 | -50.98 (2.0) | +9.38 (1.0) | -31.23 (2.0) | hit |
s12-9 | 8.0e+04 | -54.01 (2.0) | +0.31 (1.0) | -45.30 (2.0) | hit |
s12-T | 8.0e+04 | -58.03 (1.9) | -14.72 (1.0) | -56.96 (1.9) | hit |
s12-A | 8.0e+04 | -72.15 (1.6) | -35.17 (0.9) | -72.39 (1.6) | hit |
Hand | n | Yes [%] | No [%] |
---|---|---|---|
pA-2 | 8.0e+04 | +47.79 (1.7) | +7.70 (1.0) |
pA-3 | 8.0e+04 | +51.89 (1.7) | +9.80 (1.0) |
pA-4 | 8.0e+04 | +56.73 (1.7) | +11.81 (1.0) |
pA-5 | 8.0e+04 | +61.10 (1.7) | +15.76 (1.0) |
pA-6 | 8.0e+04 | +66.09 (1.7) | +20.40 (2.1) |
pA-7 | 8.0e+04 | +46.61 (1.6) | +15.82 (1.0) |
pA-8 | 8.0e+04 | +35.34 (1.6) | +9.87 (1.0) |
pA-9 | 8.0e+04 | +23.05 (1.6) | -0.13 (1.0) |
pA-T | 8.0e+04 | +8.79 (1.6) | -14.01 (1.0) |
pA-A | 8.0e+04 | -24.16 (1.5) | -35.35 (0.9) |
pT-2 | 8.0e+04 | -4.29 (3.7) | +63.29 (0.7) |
pT-3 | 8.0e+04 | +4.76 (3.8) | +64.28 (0.7) |
pT-4 | 8.0e+04 | +15.42 (4.0) | +65.64 (0.7) |
pT-5 | 8.0e+04 | +27.51 (4.1) | +66.77 (0.7) |
pT-6 | 8.0e+04 | +37.88 (4.1) | +67.89 (0.7) |
pT-7 | 8.0e+04 | +8.98 (2.6) | +77.52 (0.6) |
pT-8 | 8.0e+04 | -22.83 (2.5) | +79.04 (0.6) |
pT-9 | 8.0e+04 | -61.33 (2.6) | +76.23 (0.6) |
pT-T | 8.0e+04 | -76.47 (2.7) | +43.58 (0.7) |
pT-A | 8.0e+04 | -85.74 (2.2) | +11.11 (1.0) |
p9-2 | 8.0e+04 | +20.25 (2.2) | +10.96 (1.0) |
p9-3 | 8.0e+04 | +25.62 (2.2) | +13.70 (1.0) |
p9-4 | 8.0e+04 | +32.53 (2.2) | +16.16 (1.0) |
p9-5 | 8.0e+04 | +39.22 (2.2) | +19.08 (1.0) |
p9-6 | 8.0e+04 | +47.19 (2.2) | +22.75 (1.0) |
p9-7 | 3.2e+05 | +36.59 (0.9) | +40.03 (0.4) |
p9-8 | 8.0e+04 | +23.50 (1.9) | +10.05 (0.8) |
p9-9 | 8.0e+04 | -8.46 (1.8) | -18.37 (1.0) |
p9-T | 8.0e+04 | -36.82 (1.9) | -23.97 (1.0) |
p9-A | 3.2e+05 | -48.36 (0.8) | -46.75 (0.4) |
p8-2 | 8.0e+04 | +7.89 (2.4) | -29.06 (1.0) |
p8-3 | 8.0e+04 | +14.84 (2.4) | -23.82 (1.0) |
p8-4 | 8.0e+04 | +21.02 (2.5) | -20.67 (1.0) |
p8-5 | 8.0e+04 | +29.77 (2.5) | -16.36 (1.0) |
p8-6 | 8.0e+04 | +39.44 (2.7) | -11.93 (1.1) |
p8-7 | 8.0e+04 | +31.80 (2.1) | -41.83 (0.9) |
p8-8 | 8.0e+04 | -2.54 (2.1) | -45.57 (0.9) |
p8-9 | 8.0e+04 | -39.27 (2.2) | -50.67 (0.9) |
p8-T | 8.0e+04 | -51.15 (1.9) | -57.31 (0.8) |
p8-A | 3.2e+05 | -66.55 (0.8) | -68.39 (0.4) |
p7-2 | 8.0e+04 | -12.93 (2.6) | -28.38 (1.0) |
p7-3 | 8.0e+04 | -5.76 (2.8) | -24.45 (1.0) |
p7-4 | 8.0e+04 | +7.32 (2.9) | -21.06 (1.0) |
p7-5 | 8.0e+04 | +16.33 (2.9) | -16.50 (1.0) |
p7-6 | 8.0e+04 | +24.66 (2.9) | -12.31 (1.1) |
p7-7 | 8.0e+04 | -4.49 (2.1) | -31.70 (1.0) |
p7-8 | 3.2e+05 | -39.47 (1.0) | -36.94 (0.5) |
p7-9 | 8.0e+04 | -57.27 (2.1) | -43.25 (0.9) |
p7-T | 8.0e+04 | -68.16 (1.8) | -51.02 (0.9) |
p7-A | 8.0e+04 | -81.66 (1.6) | -62.96 (0.8) |
p6-2 | 8.0e+04 | -20.02 (2.5) | -24.94 (1.0) |
p6-3 | 8.0e+04 | -13.43 (2.9) | -22.86 (1.0) |
p6-4 | 8.0e+04 | -1.32 (2.9) | -20.97 (1.0) |
p6-5 | 8.0e+04 | +8.77 (2.9) | -16.47 (1.0) |
p6-6 | 8.0e+04 | +18.02 (2.9) | -11.89 (1.1) |
p6-7 | 8.0e+04 | -25.77 (2.0) | -21.03 (1.0) |
p6-8 | 8.0e+04 | -42.37 (2.0) | -26.97 (1.0) |
p6-9 | 8.0e+04 | -61.32 (1.9) | -33.82 (1.0) |
p6-T | 8.0e+04 | -73.60 (1.7) | -42.98 (0.9) |
p6-A | 8.0e+04 | -81.35 (1.5) | -57.46 (0.8) |
p5-2 | 8.0e+04 | -29.29 (2.3) | +35.74 (2.0) |
p5-3 | 8.0e+04 | -21.10 (2.5) | +40.83 (2.0) |
p5-4 | 8.0e+04 | -14.02 (2.8) | +46.13 (2.0) |
p5-5 | 8.0e+04 | -2.07 (2.8) | +51.38 (2.0) |
p5-6 | 8.0e+04 | +7.69 (2.8) | +55.49 (2.0) |
p5-7 | 8.0e+04 | -29.78 (1.8) | +38.74 (2.0) |
p5-8 | 8.0e+04 | -45.59 (1.8) | +29.74 (2.0) |
p5-9 | 8.0e+04 | -63.38 (1.7) | +15.31 (2.0) |
p5-T | 8.0e+04 | -75.56 (1.7) | -5.45 (1.0) |
p5-A | 8.0e+04 | -83.48 (1.4) | -28.71 (1.0) |
p4-2 | 8.0e+04 | -18.34 (2.4) | -2.08 (1.0) |
p4-3 | 8.0e+04 | -10.15 (2.7) | -0.10 (1.0) |
p4-4 | 8.0e+04 | -1.53 (2.9) | +4.20 (1.0) |
p4-5 | 1.3e+06 | +8.32 (0.7) | +6.94 (0.3) |
p4-6 | 8.0e+04 | +18.54 (2.9) | +9.10 (1.0) |
p4-7 | 8.0e+04 | -17.13 (2.0) | +8.29 (1.0) |
p4-8 | 8.0e+04 | -32.41 (2.0) | -5.80 (1.0) |
p4-9 | 8.0e+04 | -52.03 (2.0) | -21.40 (1.0) |
p4-T | 8.0e+04 | -65.35 (1.7) | -30.80 (1.0) |
p4-A | 8.0e+04 | -75.64 (1.5) | -48.85 (0.9) |
p3-2 | 2.0e+07 | -13.55 (0) | -13.84 (0) |
p3-3 | 3.2e+05 | -4.62 (1.3) | -10.55 (0.5) |
p3-4 | 8.0e+04 | +4.29 (2.7) | -7.50 (1.0) |
p3-5 | 8.0e+04 | +12.98 (2.9) | -2.79 (1.0) |
p3-6 | 8.0e+04 | +22.13 (2.9) | +0.27 (1.0) |
p3-7 | 8.0e+04 | -5.64 (2.0) | -14.75 (1.0) |
p3-8 | 3.2e+05 | -23.16 (1.0) | -21.60 (0.5) |
p3-9 | 8.0e+04 | -43.38 (2.0) | -29.61 (1.0) |
p3-T | 8.0e+04 | -59.02 (1.7) | -38.86 (0.9) |
p3-A | 8.0e+04 | -70.21 (1.5) | -54.10 (0.9) |
p2-2 | 8.0e+04 | -7.83 (2.3) | -11.55 (1.0) |
p2-3 | 8.0e+04 | -1.63 (2.5) | -8.20 (1.0) |
p2-4 | 8.0e+04 | +5.17 (2.7) | -4.49 (1.0) |
p2-5 | 8.0e+04 | +16.51 (2.7) | -1.33 (1.0) |
p2-6 | 8.0e+04 | +25.65 (2.9) | +2.57 (1.0) |
p2-7 | 8.0e+04 | +0.70 (2.0) | -8.63 (1.0) |
p2-8 | 1.3e+06 | -17.84 (0.5) | -15.96 (0.2) |
p2-9 | 8.0e+04 | -40.15 (2.0) | -23.95 (1.0) |
p2-T | 8.0e+04 | -53.36 (1.8) | -34.25 (0.9) |
p2-A | 8.0e+04 | -67.42 (1.5) | -51.15 (0.9) |
We want to derive the basic strategy from scratch, i.e. without making any assumptions. What we are going to do is to play a large (more on what large means below) number of hands by fixing our first two cards and the dealer upcard and sequentially standing, doubling or hitting the first card. Then we will compare the results for the three cases and select as the proper strategy the best one of the three possible choices.
Standing and doubling are easy plays, because after we stand or double down then the dealer plays accordingly to the rules: she hits until seventeen, possibly hitting soft seventeen. But if we hit on our hand, we might need to make another decision whether to stand or hit again. As we do not want to assume anything, we have to play in such an order that if we do need to make another decision, we already know which is the best one.
So we start by arranging the shoe so that the user gets hard twenty (i.e. two faces) and the dealer gets successively upcards of two to ace. So we play each combination of dealer upcard (ten) three times each playing either
In general the first two plays are easy, because the game stops either after standing or after receiving only one card. The last one might lead to further hitting, but since we are starting with a hard twenty, that would either give the player twenty one or a bust. In any case, the game also ends. So we play a certain number of hands (say one thousand hands) each of these three plays for each of the ten upcard faces and record the outcome. The correct play for hard twenty against each of the ten upcards is the play that gave the better result, which is of course standing.
Next, we do the same for a hard nineteen. In this case, the hitting play might not end after one card is drawn (i.e. we hit on nineteen and get and ace). But if that was the case, we would already know what the best play is from the previous step so we play accordingly and we stand. Repeating this procedure down to hard four we can build the basic strategy table for any hard total against any dealer upcard.
We can now switch to analyze soft hands. Starting from soft twenty (i.e. an ace and a nine) we do the same we did for the hard case. The only difference is that when hitting, we might end either in another soft hand which we would already analyzed because we start from twenty and go down, or in a hard hand, which we also already analyzed so we can play accordingly.
When dealing with pairs, we have to decide whether to split or not. When we do not split, we end up in one of the already-analyzed cases: either a soft twelve of any even hard hand. When we split, we might end in a hard or soft hand (already analyzed) or in a new pair. But since the new pair can be only the same pair we are analyzing, we have to treat it like we treated the first pair: either to split it or not, so we know how to deal with it.
The output is the expected value e of the bankroll, which is a random variable with an associated uncertainty \Delta e (i.e. a certain numbers of standard deviations). For example, if we received only blackjacks, the expected value would be 1.5 (provided blackjacks pay 3 to 2 of course). If we busted all of our hands without doubling or splitting, the expected value would be -1. In order to say that the best strategy is, let’s say stand and not hitting or doubling down, we have to make sure that e_h-\Delta e_h > e_s+\Delta e_s and e_h-\Delta e_h > e_d+\Delta e_d. If there is no play that can give a better expected value than the other two taking into account the uncertainties, then we have to play more hands in order to reduce the random uncertainty.
The steps above can be written in a Bash script that
#!/bin/bash
n0=80000
n_max=9000000
RED="\033[0;31m"
GREEN="\033[0;32m"
BROWN="\033[0;33m"
MAGENTA="\e[0;35m"
CYAN="\e[0;36m"
NC="\033[0m" # No Color
for i in grep awk printf blackjack; do
if [ -z "$(which $i)" ]; then
echo "error: $i not installed"
exit 1
fi
done
debug=0
declare -A strategy
declare -A ev
declare -A min
min["hard"]=4 # from 20 to 4 in hards
min["soft"]=12 # from 20 to 12 in softs
rm -f table.md hard.html soft.html pair.html
# --------------------------------------------------------------
# start with standing
cp hard-stand.txt hard.txt
cp soft-stand.txt soft.txt
cat << EOF >> table.md
| Hand | \$n\$ | Stand [%] | Double [%] | Hit [%] | Play |
|:------:|:-----:|:-----------:|:------------:|:--------:|:---------:|
EOF
for type in hard soft; do
for hand in $(seq 20 -1 ${min[${type}]}); do
# choose two random cards that make up the player's assumed total
if [ ${type} = "hard" ]; then
t="h"
card1=11
card2=11
while test $card1 -gt 10 -o $card2 -gt 10; do
card1=$((${RANDOM} % (${hand}-3) + 2))
card2=$((${hand} - ${card1}))
done
elif [ ${type} = "soft" ]; then
t="s"
# one card is an ace
card1=1
card2=$((${hand} - 10 - ${card1}))
fi
cat << EOF >> ${type}.html
<tr>
<td>${t}${hand}</td>
<td>
<div class="text-right">s<span class="d-none d-lg-inline">tand</span></div>
<div class="text-right">h<span class="d-none d-lg-inline">it</span></div>
<div class="text-right">d<span class="d-none d-lg-inline">ouble</span></div>
</td>
EOF
for upcard in $(seq 2 9) T A; do
if [ "x$upcard" = "xT" ]; then
upcard_n=10
elif [ "x$upcard" = "xA" ]; then
upcard_n=1
else
upcard_n=$(($upcard))
fi
n=${n0} # start with n0 hands
best="x" # x means don't know what to so, so play
while [ "${best}" = "x" ]; do
# tell the user which combination we are trying and how many we will play
echo -ne "${t}${hand}-${upcard} ($card1 $card2)\t"$(printf %.1e ${n})
for play in s d h; do
# start with options.conf as a template and add some custom stuff
cp options.conf blackjack.conf
cat << EOF >> blackjack.conf
hands = ${n}
player = internal
arranged_cards = ${card1}, $((${upcard_n} + 13)), $((${card2} + 26))
report = ${t}${hand}-${upcard}-${play}.yaml
#log = ${t}${hand}-${upcard}-${play}.log
EOF
# read the current strategy
while read w p2 p3 p4 p5 p6 p7 p8 p9 pT pA; do
# w already has the "h" or the "s"
strategy[${w},2]=$p2
strategy[${w},3]=$p3
strategy[${w},4]=$p4
strategy[${w},5]=$p5
strategy[${w},6]=$p6
strategy[${w},7]=$p7
strategy[${w},8]=$p8
strategy[${w},9]=$p9
strategy[${w},T]=$pT
strategy[${w},A]=$pA
done < ${type}.txt
# override the read strategy with the explicit play: s, d or h
strategy[${t}${hand},${upcard}]=${play}
# save the new (temporary) strategy
rm -f ${type}.txt
for h in $(seq 20 -1 ${min[${type}]}); do
echo -n "${t}${h} " >> ${type}.txt
# extra space if h < 10
if [ ${h} -lt 10 ]; then
echo -n " " >> ${type}.txt
fi
for u in $(seq 2 9) T A; do
echo -n "${strategy[${t}${h},${u}]} " >> ${type}.txt
done
echo >> ${type}.txt
done
# debug, comment for production
if [ "${debug}" != "0" ]; then
cp ${type}.txt ${t}${hand}-${upcard}-${play}.str
fi
# ensamble the full bs.txt with no pairing
cat hard.txt soft.txt pair-no.txt > bs.txt
# play!
blackjack
# evaluate the results
ev[${t}${hand},${upcard},${play}]=$(grep mean ${t}${hand}-${upcard}-${play}.yaml | awk '{printf("%g", $2)}')
error[${t}${hand},${upcard},${play}]=$(grep error ${t}${hand}-${upcard}-${play}.yaml | awk '{printf("%g", $2)}')
done
# choose the best one
ev_s=$(echo ${ev[${t}${hand},${upcard},s]} | awk '{printf("%+.2f", 100*$1)}')
ev_d=$(echo ${ev[${t}${hand},${upcard},d]} | awk '{printf("%+.2f", 100*$1)}')
ev_h=$(echo ${ev[${t}${hand},${upcard},h]} | awk '{printf("%+.2f", 100*$1)}')
if [ ${n} -le ${n_max} ]; then
# if we still have room, take into account errors
error_s=$(echo ${error[${t}${hand},${upcard},s]} | awk '{printf("%.1f", 100*$1)}')
error_d=$(echo ${error[${t}${hand},${upcard},d]} | awk '{printf("%.1f", 100*$1)}')
error_h=$(echo ${error[${t}${hand},${upcard},h]} | awk '{printf("%.1f", 100*$1)}')
else
# instead of running infinite hands, above a threshold asume errors are zero
error_s=0
error_d=0
error_h=0
fi
echo -ne "\t${ev_s}\t(${error_s})"
echo -ne "\t${ev_d}\t(${error_d})"
echo -ne "\t${ev_h}\t(${error_h})"
if (( $(echo ${ev_s} ${error_s} ${ev_d} ${error_d} | awk '{print (($1-$2) > ($3+$4))}') )) &&
(( $(echo ${ev_s} ${error_s} ${ev_h} ${error_h} | awk '{print (($1-$2) > ($3+$4))}') )); then
best="s"
color=${BROWN}
best_string="stand"
elif (( $(echo ${ev_d} ${error_d} ${ev_s} ${error_s} | awk '{print (($1-$2) > ($3+$4))}') )) &&
(( $(echo ${ev_d} ${error_d} ${ev_h} ${error_h} | awk '{print (($1-$2) > ($3+$4))}') )); then
best="d"
color=${CYAN}
best_string="double"
elif (( $(echo ${ev_h}-${error_h} ${ev_s} ${error_s} | awk '{print (($1-$2) > ($3+$4))}') )) &&
(( $(echo ${ev_h}-${error_h} ${ev_d} ${error_d} | awk '{print (($1-$2) > ($3+$4))}') )); then
best="h"
color=${MAGENTA}
best_string="hit"
else
best="x"
color=${NC}
best_string="uncertain"
n=$((${n} * 4))
fi
echo -e ${color}"\t"${best_string}${NC}
done
strategy[${t}${hand},${upcard}]=${best}
echo "| ${t}${hand}-${upcard} | $(printf %.1e ${n}) | ${ev_s} (${error_s}) | ${ev_h} (${error_h}) | ${ev_d} (${error_d}) | ${best_string} | " >> table.md
echo " <!-- ${upcard} -->" >> ${type}.html
echo " <td>" >> ${type}.html
echo ${ev_s} ${error_s} | awk -f html_cell.awk >> ${type}.html
echo ${ev_h} ${error_h} | awk -f html_cell.awk >> ${type}.html
echo ${ev_d} ${error_d} | awk -f html_cell.awk >> ${type}.html
echo " </td>" >> ${type}.html
# save the strategy again with the best strategy
rm -f ${type}.txt
for h in $(seq 20 -1 ${min[${type}]}); do
echo -n "${t}${h} " >> ${type}.txt
# extra space if h < 10
if [ ${h} -lt 10 ]; then
echo -n " " >> ${type}.txt
fi
for u in $(seq 2 9) T A; do
echo -n "${strategy[${t}${h},${u}]} " >> ${type}.txt
done
echo >> ${type}.txt
done
done
# echo "</tr>" >> ${type}.html
done
done
cat << EOF >> table.md
| Hand | \$n\$ | Yes [%] | No [%] |
|:------:|:-------:|:----------:|:----------:|
EOF
# --------------------------------------------------------------------
# pairs
type="pair"
t="p"
cp pair-no.txt pair.txt
for hand in A T $(seq 9 -1 2); do
if [ "${hand}" = "A" ]; then
pair=1
elif [ "${hand}" = "T" ]; then
pair=10
else
pair=$((${hand}))
fi
# cat << EOF >> ${type}.html
# <tr>
# <td>${t}${hand}</td>
# <td>
# <div class="text-right">y<span class="d-none d-lg-inline">es</span></div>
# <div class="text-right">n<span class="d-none d-lg-inline">o</span></div>
# </td>
# EOF
for upcard in $(seq 2 9) T A; do
if [ "$upcard" = "T" ]; then
upcard_n=10
elif [ "$upcard" = "A" ]; then
upcard_n=1
else
upcard_n=$(($upcard))
fi
n=${n0} # start with n0 hands
best="x" # x means don't know what to so, so play
while [ "${best}" = "x" ]; do
# tell the user which combination we are trying and how many we will play
echo -ne "${t}${hand}-${upcard}\t\t$(printf %.0e ${n})"
for play in y n; do
# start with options.conf as a template and add some custom stuff
cp options.conf blackjack.conf
cat << EOF >> blackjack.conf
hands = ${n}
player = internal
arranged_cards = ${pair}, $((${upcard_n} + 13)), $((${pair} + 26))
report = ${t}${hand}-${upcard}-${play}.yaml
# log = ${t}${hand}-${upcard}-${play}.log
EOF
# read the current strategy
while read w p2 p3 p4 p5 p6 p7 p8 p9 pT pA; do
# w already has the "p"
strategy[${w},2]=$p2
strategy[${w},3]=$p3
strategy[${w},4]=$p4
strategy[${w},5]=$p5
strategy[${w},6]=$p6
strategy[${w},7]=$p7
strategy[${w},8]=$p8
strategy[${w},9]=$p9
strategy[${w},T]=$pT
strategy[${w},A]=$pA
done < ${type}.txt
# override the read strategy with the explicit play: y or n
strategy[${t}${hand},${upcard}]=${play}
# save the new (temporary) strategy
rm -f ${type}.txt
for h in A T $(seq 9 -1 2); do
echo -n "${t}${h} " >> ${type}.txt
for u in $(seq 2 9) T A; do
echo -n "${strategy[${t}${h},${u}]} " >> ${type}.txt
done
echo >> ${type}.txt
done
if [ "${debug}" != "0" ]; then
cp ${type}.txt ${t}${hand}-${upcard}-${play}.str
fi
# ensamble the full bs.txt
cat hard.txt soft.txt pair.txt > bs.txt
# play!
blackjack
# evaluate the results
ev[${t}${hand},${upcard},${play}]=$(grep mean ${t}${hand}-${upcard}-${play}.yaml | awk '{printf("%g", $2)}')
error[${t}${hand},${upcard},${play}]=$(grep error ${t}${hand}-${upcard}-${play}.yaml | awk '{printf("%g", $2)}')
done
# choose the best one
ev_y=$(echo ${ev[${t}${hand},${upcard},y]} | awk '{printf("%+.2f", 100*$1)}')
ev_n=$(echo ${ev[${t}${hand},${upcard},n]} | awk '{printf("%+.2f", 100*$1)}')
if [ $n -le ${n_max} ]; then
# if we still have room, take into account errors
error_y=$(echo ${error[${t}${hand},${upcard},y]} | awk '{printf("%.1f", 100*$1)}')
error_n=$(echo ${error[${t}${hand},${upcard},n]} | awk '{printf("%.1f", 100*$1)}')
else
# instead of running infinite hands, above a threshold asume errors are zero
error_y=0
error_n=0
fi
echo -ne "\t${ev_y}\t(${error_y})"
echo -ne "\t${ev_n}\t(${error_n})"
if (( $(echo ${ev_y} ${error_y} ${ev_n} ${error_n} | awk '{print (($1-$2) > ($3+$4))}') )); then
best="y"
color=${GREEN}
best_string="yes"
elif (( $(echo ${ev_n} ${error_n} ${ev_y} ${error_y} | awk '{print (($1-$2) > ($3+$4))}') )); then
best="n"
color=${RED}
best_string="no"
else
best="x"
color=${NC}
best_string="uncertain"
n=$((${n} * 4))
fi
echo -e ${color}"\t"${best_string}${NC}
done
echo "| ${t}${hand}-${upcard} | $(printf %.1e ${n}) | ${ev_y} (${error_y}) | ${ev_n} (${error_n}) | ${best_string} | " >> table.md
echo " <!-- ${upcard} -->" >> ${type}.html
echo " <td>" >> ${type}.html
echo ${ev_y} ${error_y} | awk -f html_cell.awk >> ${type}.html
echo ${ev_n} ${error_n} | awk -f html_cell.awk >> ${type}.html
echo " </td>" >> ${type}.html
strategy[${t}${hand},${upcard}]=${best}
# save the strategy again with the best strategy
rm -f ${type}.txt
for h in A T $(seq 9 -1 2); do
echo -n "${t}${h} " >> ${type}.txt
for u in $(seq 2 9) T A; do
echo -n "${strategy[${t}${h},${u}]} " >> ${type}.txt
done
echo >> ${type}.txt
done
done
done
cat header.txt hard.txt header.txt soft.txt header.txt pair.txt > bs.txt
rm -f hard.txt soft.txt pair.txt blackjack.conf
if [ "${debug}" == "0" ]; then
rm -f *.yaml
rm -f *.str
rm -f *.log
fi