FS 05 /HOW MAKE IT: very shortly PICTORIAL GUIDE after GOMOKU ENGINE code
go on: < previous page this page 15/16strategy FS05 next page >


game board
summary

flagx add ten
flagx values
M+ in line /001
M+ in line /002
M+ in line /003
M+ in line /004
LastMove /001
LastMove /002
predict low now
predict high now
2d delay, dilay
more delay now
dilay +, delay +
three: better end
strategy FS05

summary

For final editing arrays "xRCboard" and "oRCboard" engine search values in arrays "flagx", "flago", "xmap" and "omap" and according actual strategy choose usable values.
In this example engine are second (O) player and choose values from arrays "flagx" and "xmap":




For usable values from arrays "flagx" amd "xmap" engine according strategy rules assign other values for array "xRCboard". If this new value is higher than actual, engine rewrite old value in array "xRCboard".




If engine are second (O) player choose this values from arrays "flago" and "omap":




Engine rewrite this values in array "oRCboard" according values in arrays "flago" and "omap".




examples in C++
Actualize values in arrays "xRCboard" and "oRCboard" in according with contains other arrays and strategy:
//lagx = lago = 0;
//for (row = 0; row < rcmax; row++) {
//for (column = 0; column < rcmax; column++) {
//...

//those numbers here create game straregy of engine FS05/10
//--------------------------------------------------------------------------------------
//     F R E E   S E C T O R     |  FS05    | who(engine) = 1 (X) | who(engine) = 0 (O)
//------------------------------------------|---------------------|---------------------
//    if(flagx), if(flago):        value is |   lagx   /   lago   |   lago   /   lagx
//-------------------------------v----------|----------/----------|----------/----------
//00                             |     >= 0 |     0    /     0    |     0    /     0
//02  I + I                      |      > 1 |    54    /     0    |    52    /     0
//03  I + I +                    |      > 2 |    56    /     0    |    53    /     0
//04  X                          |    == 10 |     0    /     0    |     0    /     0
//05  X +                        |     > 10 |     0    /     0    |    49    /    45
//12  (2222)                     |    == 19 |     0    /     0    |     0    /     0
//06  X + X                      |    == 20 |     0    /     0    |    54    /    46
//06  X + X +                    |     > 20 |     0    /     0    |    55    /    47
//07  C                          |   == 100 |     0    /     0    |     0    /     0
//08  C +                        |    > 100 |    57    /    55    |     0    /    55
//09  C + X                      |   >= 110 |     0    /     0    |    56    /    56
//------------------------------------------|----------/----------|----------/----------
//    if(xmap), if(omap):                   |          /          |          /
//-------------------------------v----------|----------/----------|----------/----------
//00 predict low (C) -           |   == 101 |     0    /     0    |     0    /     0
//01 predict low (C) x           |   == 102 |    51    /    51    |    48    /     0
//02 predict low (C) xx          |   == 103 |    58    /    56    |    55    /    51
//03 predict low (C) -/-/ top    |   == 104 |    59    /     0    |    61    /     0
//04 predict low (C) x/-/ top    |   == 105 |    61    /     0    |    64    /     0
//05 predict low (C) xx/-/ top   |   == 106 |    64    /    58    |    65    /    63
//06 predict low (C) x/x/ top    |   == 107 |    74    /    72    |    74    /    73
//07 predict low (C) xx/x/ top   |   == 108 |    75    /    73    |    75    /    74
//08 predict low (C) xx/xx/ top  |   == 109 |    76    /    74    |    76    /    76
//
//00 predict high dil + dil (+)  |   == 121 |    60    /     0    |    60    /     0
//01 predict high CC + dil (+)   |   == 122 |    60    /     0    |    75    /     0
//02 predict high CC + CC (+)    |   == 123 |    72    /     0    |    76    /     0
//03 predict high del + dil (+)  |   == 124 |    74    /     0    |    77    /     0
//04 predict high MC + dil (+)   |   == 125 |    77    /     0    |    78    /     0
//05 predict high MM + dil (+)   |   == 126 |    80    /    75    |    80    /    77
//06 predict high del + CC (+)   |   == 127 |    81    /     0    |    81    /     0
//07 predict high MC + CC (+)    |   == 128 |    82    /     0    |    82    /     0
//08 predict high MM + CC (+)    |   == 129 |    90    /     0    |    90    /    79
//09 predict high del + del (+)  |   == 130 |   100    /    78    |   100    /    90
//10 predict high MC + del (+)   |   == 131 |   110    /    80    |   110    /   100
//11 predict high MM + del (+)   |   == 132 |   120    /    90    |   120    /   110
//12 predict high MC + MC (+)    |   == 133 |   130    /   100    |   130    /   120
//13 predict high MM + MC (+)    |   == 134 |   140    /   110    |   140    /   130
//14 predict high MM + MM (+)    |   == 135 |   150    /   120    |   150    /   140
//------------------------------------------|----------/----------|----------/----------
//    if(flagx), if(flago):                 |          /          |          /
//-------------------------------v----------|----------/----------|----------/----------
//10  dilay (C)                  |   == 197 |   176    /   174    |   176    /   174
//11  dilay (C) and dilay (C)    |   == 198 |   177    /   175    |   177    /   175
//13  C + C                      |   >= 200 |   178    /   176    |   179    /   176
//14  M                          |  >= 1000 |     0    /     0    |     0    /     0
//15  (oxxx.-/xooo.-)            |  >= 1005 |     0    /     0    |     0    /    57
//16  > 1000 (except 105)        |  >  1000 |     0    /     0    |     0    /     0
//17  M + X                      |  >= 1010 |     0    /     0    |     0    /     0
//------------------------------------------|----------/----------|----------/----------
//    if(xmap), if(omap):                   |          /          |          /
//-------------------------------v----------|----------/----------|----------/----------
//09 predict low (M) -           |   == 111 |     0    /     0    |     0    /     0
//10 predict low (M) x           |   == 112 |     0    /     0    |     0    /     0
//11 predict low (M) xx          |   == 113 |    63    /    62    |    63    /    62
//12 predict low (M) -/-/ top    |   == 114 |     0    /     0    |     0    /     0
//13 predict low (M) x/-/ top    |   == 115 |    68    /     0    |    68    /     0
//14 predict low (M) xx/-/ top   |   == 116 |    69    /    68    |    69    /    68
//15 predict low (M) x/x/ top    |   == 117 |    77    /    75    |    77    /    76
//16 predict low (M) xx/x/ top   |   == 118 |    78    /    76    |    78    /    77
//17 predict low (M) xx/xx/ top  |   == 119 |    79    /    77    |    79    /    78
//------------------------------------------|----------/----------|----------/----------
//    if(flagx), if(flago):                 |          /          |          /
//-------------------------------v----------|----------/----------|----------/----------
//18  dilay (M)                  |  == 1097 |   179    /   178    |   178    /   178
//19  delay (M)                  |  == 1098 |   190    /   180    |   190    /   180
//20  delay (M) and delay (M)    |  == 1099 |   191    /   181    |   191    /   181
//21  M + C                      |  >= 1100 |   192    /   182    |   192    /   182
//22  M + M (three)              |  == 2000 |   193    /   183    |   193    /   183
//23  M + M + (three +)          |   > 2000 |   194    /   184    |   194    /   184
//24  thhre and C (+ dilay)      |  >= 2100 |   195    /   185    |   195    /   185
//25  three and M (+ delay)      |  >= 3000 |   196    /   186    |   196    /   186
//26  three and                  |  >= 3100 |   197    /   187    |   197    /   187
//27  three and three            |  >= 4000 |   198    /   188    |   198    /   188
//28  - unuse                    |  == 9998 |   199    /   192    |   199    /   192
//29  - unuse                    |  == 9999 |   200    /   193    |   200    /   193
//--------------------------------------------------------------------------------------
if(xRCboard[row][column] < lagx) xRCboard[row][column] = lagx; if(oRCboard[row][column] < lago) oRCboard[row][column] = lago; //... // lagx = lago = 0; // } // }
go on: < previous page next page >
FREE SECTOR, 2016 (free alliance of developers Pixoria gomoku plug-in engines) page 15/16