Rev 108 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 108 | Rev 154 | ||
|---|---|---|---|
| Line 192... | Line 192... | ||
| 192 | * past when the move at the previous ply was played. * |
192 | * past when the move at the previous ply was played. * |
| 193 | * * |
193 | * * |
| 194 | ************************************************************ |
194 | ************************************************************ |
| 195 | */ |
195 | */ |
| 196 | case COUNTER_MOVE1: |
196 | case COUNTER_MOVE1: |
| 197 | possible = counter_move[tree->curmv[ply - 1] & 4095].move1; |
197 | possible = tree->counter_move[tree->curmv[ply - 1] & 4095].move1; |
| 198 | if (!Exclude(tree, ply, possible) && |
198 | if (!Exclude(tree, ply, possible) && |
| 199 | ValidMove(tree, ply, side, possible)) { |
199 | ValidMove(tree, ply, side, possible)) { |
| 200 | tree->curmv[ply] = possible; |
200 | tree->curmv[ply] = possible; |
| 201 | *(tree->next_status[ply].exclude++) = possible; |
201 | *(tree->next_status[ply].exclude++) = possible; |
| 202 | tree->next_status[ply].phase = COUNTER_MOVE2; |
202 | tree->next_status[ply].phase = COUNTER_MOVE2; |
| 203 | tree->phase[ply] = COUNTER_MOVE1; |
203 | tree->phase[ply] = COUNTER_MOVE1; |
| 204 | return ++tree->next_status[ply].order; |
204 | return ++tree->next_status[ply].order; |
| 205 | } |
205 | } |
| 206 | case COUNTER_MOVE2: |
206 | case COUNTER_MOVE2: |
| 207 | possible = counter_move[tree->curmv[ply - 1] & 4095].move2; |
207 | possible = tree->counter_move[tree->curmv[ply - 1] & 4095].move2; |
| 208 | if (!Exclude(tree, ply, possible) && |
208 | if (!Exclude(tree, ply, possible) && |
| 209 | ValidMove(tree, ply, side, possible)) { |
209 | ValidMove(tree, ply, side, possible)) { |
| 210 | tree->curmv[ply] = possible; |
210 | tree->curmv[ply] = possible; |
| 211 | *(tree->next_status[ply].exclude++) = possible; |
211 | *(tree->next_status[ply].exclude++) = possible; |
| 212 | tree->next_status[ply].phase = MOVE_PAIR1; |
212 | tree->next_status[ply].phase = MOVE_PAIR1; |
| Line 221... | Line 221... | ||
| 221 | * pair was played two plies back. * |
221 | * pair was played two plies back. * |
| 222 | * * |
222 | * * |
| 223 | ************************************************************ |
223 | ************************************************************ |
| 224 | */ |
224 | */ |
| 225 | case MOVE_PAIR1: |
225 | case MOVE_PAIR1: |
| 226 | possible = move_pair[tree->curmv[ply - 2] & 4095].move1; |
226 | possible = tree->move_pair[tree->curmv[ply - 2] & 4095].move1; |
| 227 | if (!Exclude(tree, ply, possible) && |
227 | if (!Exclude(tree, ply, possible) && |
| 228 | ValidMove(tree, ply, side, possible)) { |
228 | ValidMove(tree, ply, side, possible)) { |
| 229 | tree->curmv[ply] = possible; |
229 | tree->curmv[ply] = possible; |
| 230 | *(tree->next_status[ply].exclude++) = possible; |
230 | *(tree->next_status[ply].exclude++) = possible; |
| 231 | tree->next_status[ply].phase = MOVE_PAIR2; |
231 | tree->next_status[ply].phase = MOVE_PAIR2; |
| 232 | tree->phase[ply] = MOVE_PAIR1; |
232 | tree->phase[ply] = MOVE_PAIR1; |
| 233 | return ++tree->next_status[ply].order; |
233 | return ++tree->next_status[ply].order; |
| 234 | } |
234 | } |
| 235 | case MOVE_PAIR2: |
235 | case MOVE_PAIR2: |
| 236 | possible = move_pair[tree->curmv[ply - 2] & 4095].move2; |
236 | possible = tree->move_pair[tree->curmv[ply - 2] & 4095].move2; |
| 237 | if (!Exclude(tree, ply, possible) && |
237 | if (!Exclude(tree, ply, possible) && |
| 238 | ValidMove(tree, ply, side, possible)) { |
238 | ValidMove(tree, ply, side, possible)) { |
| 239 | tree->curmv[ply] = possible; |
239 | tree->curmv[ply] = possible; |
| 240 | *(tree->next_status[ply].exclude++) = possible; |
240 | *(tree->next_status[ply].exclude++) = possible; |
| 241 | tree->next_status[ply].phase = GENERATE_QUIET; |
241 | tree->next_status[ply].phase = GENERATE_QUIET; |
| Line 464... | Line 464... | ||
| 464 | if (Flip(side)) |
464 | if (Flip(side)) |
| 465 | printf("... "); |
465 | printf("... "); |
| 466 | strcpy(mytree->root_move_text, OutputMove(tree, 1, side, |
466 | strcpy(mytree->root_move_text, OutputMove(tree, 1, side, |
| 467 | tree->curmv[1])); |
467 | tree->curmv[1])); |
| 468 | total_nodes = block[0]->nodes_searched; |
468 | total_nodes = block[0]->nodes_searched; |
| 469 | for (t = 0; t < |
469 | for (t = 0; t < smp_max_threads; t++) |
| 470 | for (i = 0; i < 64; i++) |
470 | for (i = 0; i < 64; i++) |
| 471 | if (!(thread[t].blocks & SetMask(i))) |
471 | if (!(thread[t].blocks & SetMask(i))) |
| 472 | total_nodes += block[t * 64 + 1 + i]->nodes_searched; |
472 | total_nodes += block[t * 64 + 1 + i]->nodes_searched; |
| 473 | nodes_per_second = |
473 | nodes_per_second = total_nodes * 100 / Max(end_time - start_time, 1); |
| 474 | i = strlen(mytree->root_move_text); |
474 | i = strlen(mytree->root_move_text); |
| 475 | i = (i < 8) ? i : 8; |
475 | i = (i < 8) ? i : 8; |
| 476 | strncat(mytree->root_move_text, " ", 8 - i); |
476 | strncat(mytree->root_move_text, " ", 8 - i); |
| 477 | printf("%s", mytree->root_move_text); |
477 | printf("%s", mytree->root_move_text); |
| 478 | printf("(%snps) \r", DisplayKMB(nodes_per_second, 0)); |
478 | printf("(%snps) \r", DisplayKMB(nodes_per_second, 0)); |