aboutsummaryrefslogtreecommitdiff
path: root/src/pptdb.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/pptdb.c')
-rw-r--r--src/pptdb.c65
1 files changed, 38 insertions, 27 deletions
diff --git a/src/pptdb.c b/src/pptdb.c
index 92155b5..7179ab0 100644
--- a/src/pptdb.c
+++ b/src/pptdb.c
@@ -17,11 +17,11 @@ write_input(void) {
/* fprintf(training_fh,"%d,",current_colour == C_BLACK); */
// Two numbers for flats remaining
- /* fprintf(training_fh,"%.6f,%.6f,", */
- /* (float)(white_count & 127)/max_flats, */
- /* (float)(black_count & 127)/max_flats); */
- // Two data points for each square
- /* float t; uint16_t mask; */
+ /*
+ * fprintf(training_fh,"%.6f,%.6f,",
+ * (float)(white_count & 127)/max_flats,
+ * (float)(black_count & 127)/max_flats);
+ */
float val;
uint16_t mask = 1;
@@ -48,21 +48,22 @@ write_input(void) {
mask <<= 1;
}
+
/*
- float t;
- for (int k = 0; k < board_size * board_size; k++) {
- // stacks encoded as balanced ternary
- const int h = COUNT_AT(k);
- t = 0;
- mask = 1<<h;
- for (int j = 1; j < h; j++) {
- t += (colours[k] & mask) ? +1 : -1;
- t /= 3.0;
- mask >>=1;
- }
- fprintf(training_fh,"%.8f,",2*t);
- }
- */
+ * float t;
+ * for (int k = 0; k < board_size * board_size; k++) {
+ * // stacks encoded as balanced ternary
+ * const int h = COUNT_AT(k);
+ * t = 0;
+ * mask = 1<<h;
+ * for (int j = 1; j < h; j++) {
+ * t += (colours[k] & mask) ? +1 : -1;
+ * t /= 3.0;
+ * mask >>=1;
+ * }
+ * fprintf(training_fh,"%.8f,",2*t);
+ * }
+ */
}
@@ -141,7 +142,8 @@ main(int argc, char **argv) {
enum E_RESULT r;
enum WIN_TYPE win;
uint32_t games = 0, overflow=0, illegal = 0;
- uint32_t road_wins=0, flat_wins=0, road_turns=0, flat_turns=0;
+ uint32_t road_wins=0, flat_wins=0, road_turns=0, flat_turns=0,
+ white_wins = 0, black_wins = 0;
for (int k = 0; k < 16; k++) heights[k] = 0;
@@ -171,10 +173,10 @@ main(int argc, char **argv) {
}
/*
- for (int k = 0; k < size*size; k++) {
- fprintf(training_fh,"\"BT %d\",",k);
- }
- */
+ * for (int k = 0; k < size*size; k++) {
+ * fprintf(training_fh,"\"BT %d\",",k);
+ * }
+ */
fputs("\"White win\",\"Black win\"\n",training_fh);
} else generate=0;
@@ -206,6 +208,10 @@ main(int argc, char **argv) {
road_wins++;
road_turns += ply/2+1;
}
+ if (win == WIN_FLAT_BLACK || win == WIN_ROAD_BLACK)
+ black_wins++;
+ else if (win == WIN_FLAT_WHITE || win == WIN_ROAD_WHITE)
+ white_wins++;
}
}
games++;
@@ -219,9 +225,14 @@ main(int argc, char **argv) {
printf("Read %d games\n",games);
if (generate==0) {
- printf("Illegals: %d\nOverflows: %d\nRoad wins: %d\nFlat wins: %d\n\
-Average turns to road win: %.3f\nAverage turns to flat win: %f\n",
- illegal,overflow, road_wins, flat_wins,
+ printf("Illegals: %d\nOverflows: %d\n\
+Black wins: %.3f%%\n\
+Road wins: %d\nFlat wins: %d\n\
+Average turns to road win: %.3f\n\
+Average turns to flat win: %f\n",
+ illegal, overflow,
+ (double)black_wins / (double)(black_wins+white_wins) * 100,
+ road_wins, flat_wins,
(double)(road_turns)/(double)(road_wins),
(double)(flat_turns)/(double)(flat_wins));
for (int k = 2; k < 16; k++) {