|
|
@ -122,7 +122,7 @@ void update_board(float *board) |
|
|
|
free(l); |
|
|
|
free(l); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
void print_board(float *board) |
|
|
|
void print_board(float *board, int swap) |
|
|
|
{ |
|
|
|
{ |
|
|
|
int i,j; |
|
|
|
int i,j; |
|
|
|
printf("\n\n"); |
|
|
|
printf("\n\n"); |
|
|
@ -135,8 +135,8 @@ void print_board(float *board) |
|
|
|
printf("%2d ", 19-j); |
|
|
|
printf("%2d ", 19-j); |
|
|
|
for(i = 0; i < 19; ++i){ |
|
|
|
for(i = 0; i < 19; ++i){ |
|
|
|
int index = j*19 + i; |
|
|
|
int index = j*19 + i; |
|
|
|
if(board[index] > 0) printf("\u25C9 "); |
|
|
|
if(board[index]*-swap > 0) printf("\u25C9 "); |
|
|
|
else if(board[index] < 0) printf("\u25EF "); |
|
|
|
else if(board[index]*-swap < 0) printf("\u25EF "); |
|
|
|
else printf(" "); |
|
|
|
else printf(" "); |
|
|
|
} |
|
|
|
} |
|
|
|
printf("\n"); |
|
|
|
printf("\n"); |
|
|
@ -161,6 +161,7 @@ void test_go(char *filename, char *weightfile) |
|
|
|
set_batch_network(&net, 1); |
|
|
|
set_batch_network(&net, 1); |
|
|
|
float *board = calloc(19*19, sizeof(float)); |
|
|
|
float *board = calloc(19*19, sizeof(float)); |
|
|
|
float *move = calloc(19*19, sizeof(float)); |
|
|
|
float *move = calloc(19*19, sizeof(float)); |
|
|
|
|
|
|
|
int color = 1; |
|
|
|
while(1){ |
|
|
|
while(1){ |
|
|
|
float *output = network_predict(net, board); |
|
|
|
float *output = network_predict(net, board); |
|
|
|
copy_cpu(19*19, output, 1, move, 1); |
|
|
|
copy_cpu(19*19, output, 1, move, 1); |
|
|
@ -191,7 +192,7 @@ void test_go(char *filename, char *weightfile) |
|
|
|
int indexes[3]; |
|
|
|
int indexes[3]; |
|
|
|
int row, col; |
|
|
|
int row, col; |
|
|
|
top_k(move, 19*19, 3, indexes); |
|
|
|
top_k(move, 19*19, 3, indexes); |
|
|
|
print_board(board); |
|
|
|
print_board(board, color); |
|
|
|
for(i = 0; i < 3; ++i){ |
|
|
|
for(i = 0; i < 3; ++i){ |
|
|
|
int index = indexes[i]; |
|
|
|
int index = indexes[i]; |
|
|
|
row = index / 19; |
|
|
|
row = index / 19; |
|
|
@ -202,7 +203,9 @@ void test_go(char *filename, char *weightfile) |
|
|
|
int rec_row = index / 19; |
|
|
|
int rec_row = index / 19; |
|
|
|
int rec_col = index % 19; |
|
|
|
int rec_col = index % 19; |
|
|
|
|
|
|
|
|
|
|
|
printf("\u25C9 Enter move: "); |
|
|
|
if(color == 1) printf("\u25EF Enter move: "); |
|
|
|
|
|
|
|
else printf("\u25C9 Enter move: "); |
|
|
|
|
|
|
|
|
|
|
|
char c; |
|
|
|
char c; |
|
|
|
char *line = fgetl(stdin); |
|
|
|
char *line = fgetl(stdin); |
|
|
|
int num = sscanf(line, "%c %d", &c, &row); |
|
|
|
int num = sscanf(line, "%c %d", &c, &row); |
|
|
@ -213,6 +216,7 @@ void test_go(char *filename, char *weightfile) |
|
|
|
}else if (c < 'A' || c > 'T'){ |
|
|
|
}else if (c < 'A' || c > 'T'){ |
|
|
|
if (c == 'p'){ |
|
|
|
if (c == 'p'){ |
|
|
|
flip_board(board); |
|
|
|
flip_board(board); |
|
|
|
|
|
|
|
color = -color; |
|
|
|
continue; |
|
|
|
continue; |
|
|
|
}else{ |
|
|
|
}else{ |
|
|
|
char g; |
|
|
|
char g; |
|
|
@ -232,6 +236,7 @@ void test_go(char *filename, char *weightfile) |
|
|
|
} |
|
|
|
} |
|
|
|
update_board(board); |
|
|
|
update_board(board); |
|
|
|
flip_board(board); |
|
|
|
flip_board(board); |
|
|
|
|
|
|
|
color = -color; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|