RCS file: /sources/gnugo/gnugo/engine/utils.c,v
retrieving revision 1.115
diff -u -r1.115 utils.c
|
|
|
|
| 44 | 44 | int pos; |
| 45 | 45 | int origin = dragon[dr].origin; |
| 46 | 46 | |
| 47 | | for (pos = BOARDMIN; pos < BOARDMAX; pos++) |
| 48 | | if (ON_BOARD(pos)) { |
| | 47 | scan_board(pos, |
| 49 | 48 | if (dragon[pos].origin == origin) |
| 50 | 49 | dragon[pos].status = status; |
| 51 | | } |
| | 50 | ) |
| 52 | 51 | } |
| 53 | 52 | |
| 54 | 53 | |
| … |
… |
|
| 731 | 730 | void |
| 732 | 731 | set_depth_values(int level, int report_levels) |
| 733 | 732 | { |
| 734 | | static int node_limits[] = {500, 500, 450, 400, 400, 325, 275, |
| | 733 | const int node_limits[] = {500, 500, 450, 400, 400, 325, 275, |
| 735 | 734 | 200, 150, 100, 75, 50}; |
| 736 | 735 | int depth_level; |
| 737 | 736 | |
| … |
… |
|
| 858 | 857 | |
| 859 | 858 | depth_offset = 0; |
| 860 | 859 | |
| | 860 | #ifndef GG_TURN_OFF_TRACES |
| 861 | 861 | if (report_levels) { |
| 862 | 862 | fprintf(stderr, "at level %d:\n\n\ |
| 863 | 863 | depth: %d\n\ |
| … |
… |
|
| 889 | 889 | connect_depth2, connection_node_limit, breakin_depth, |
| 890 | 890 | breakin_node_limit); |
| 891 | 891 | } |
| | 892 | #else |
| | 893 | UNUSED(report_levels); |
| | 894 | #endif |
| 892 | 895 | } |
| 893 | 896 | |
| 894 | 897 | |
| … |
… |
|
| 1031 | 1034 | /* FIXME: Choose defense point more systematically. */ |
| 1032 | 1035 | int pos; |
| 1033 | 1036 | *defense_point = NO_MOVE; |
| 1034 | | for (pos = BOARDMIN; pos < BOARDMAX; pos++) |
| 1035 | | if (ON_BOARD(pos) && defense_moves[pos]) { |
| | 1037 | scan_board(pos, |
| | 1038 | if (defense_moves[pos]) { |
| 1036 | 1039 | *defense_point = pos; |
| 1037 | 1040 | break; |
| 1038 | 1041 | } |
| | 1042 | ) |
| 1039 | 1043 | } |
| 1040 | 1044 | verbose = save_verbose; |
| 1041 | 1045 | TRACE("Combination attack appears.\n"); |
| … |
… |
|
| 1134 | 1138 | if (board[kworm] == color) { |
| 1135 | 1139 | *return_value += 2.0 * worm[kworm].effective_size; |
| 1136 | 1140 | if (safe_stones) |
| 1137 | | for (ii = BOARDMIN; ii < BOARDMAX; ii++) |
| 1138 | | if (ON_BOARD(ii) && worm[ii].origin == worm[kworm].origin) |
| | 1141 | scan_board(ii, |
| | 1142 | if (worm[ii].origin == worm[kworm].origin) |
| 1139 | 1143 | safe_stones[ii] = 0; |
| 1140 | | } |
| | 1144 | ) |
| | 1145 | } |
| 1141 | 1146 | } |
| 1142 | 1147 | } |
| 1143 | 1148 | else { |
| 1144 | 1149 | *return_value += 2.0 * worm[kworm].effective_size; |
| 1145 | 1150 | if (safe_stones) |
| 1146 | | for (ii = BOARDMIN; ii < BOARDMAX; ii++) |
| 1147 | | if (ON_BOARD(ii) && worm[ii].origin == worm[kworm].origin) |
| 1148 | | safe_stones[ii] = 0; |
| | 1151 | scan_board(ii, |
| | 1152 | if (worm[ii].origin == worm[kworm].origin) |
| | 1153 | safe_stones[ii] = 0; |
| | 1154 | ) |
| 1149 | 1155 | } |
| 1150 | 1156 | } |
| 1151 | 1157 | } |
| … |
… |
|
| 1176 | 1182 | */ |
| 1177 | 1183 | increase_depth_values(); |
| 1178 | 1184 | |
| 1179 | | for (pos = BOARDMIN; pos < BOARDMAX; pos++) { |
| | 1185 | scan_board(pos, |
| 1180 | 1186 | if (!IS_STONE(board[pos]) |
| 1181 | 1187 | || worm[pos].origin != pos |
| 1182 | 1188 | || pos == move) |
| … |
… |
|
| 1212 | 1218 | verbose = current_verbose; |
| 1213 | 1219 | *return_value += worm[pos].effective_size; |
| 1214 | 1220 | if (safe_stones) /* Can't use mark_string. */ |
| 1215 | | for (ii = BOARDMIN; ii < BOARDMAX; ii++) |
| | 1221 | scan_board(ii, |
| 1216 | 1222 | if (worm[ii].origin == worm[pos].origin) |
| 1217 | 1223 | safe_stones[ii] = 0; |
| | 1224 | ) |
| 1218 | 1225 | } |
| 1219 | 1226 | else if (board[pos] == other |
| 1220 | 1227 | && worm[pos].origin == pos |
| … |
… |
|
| 1297 | 1304 | } |
| 1298 | 1305 | } |
| 1299 | 1306 | } |
| 1300 | | } |
| | 1307 | ) |
| 1301 | 1308 | |
| 1302 | 1309 | /* Look for double atari style complications of the move. |
| 1303 | 1310 | * |