1650 |
int worm1 = -1; |
int worm1 = -1; |
1651 |
int worm2 = -1; |
int worm2 = -1; |
1652 |
int ecolor = 0; |
int ecolor = 0; |
1653 |
|
int num_move_reasons = 0; |
1654 |
|
|
1655 |
gprintf("\nMove reasons:\n"); |
gprintf("\nMove reasons:\n"); |
1656 |
|
|
1667 |
if (r < 0) |
if (r < 0) |
1668 |
break; |
break; |
1669 |
|
|
1670 |
|
num_move_reasons++; |
1671 |
|
|
1672 |
switch (move_reasons[r].type) { |
switch (move_reasons[r].type) { |
1673 |
case ATTACK_MOVE: |
case ATTACK_MOVE: |
1674 |
aa = move_reasons[r].what; |
aa = move_reasons[r].what; |
1864 |
gfprintf(out, "Move at %1m strategically or tactically unsafe\n", pos); |
gfprintf(out, "Move at %1m strategically or tactically unsafe\n", pos); |
1865 |
} |
} |
1866 |
|
|
1867 |
return k; |
return num_move_reasons; |
1868 |
} |
} |
1869 |
|
|
1870 |
|
|
1891 |
" %1m: 0.0 - (threat of) attack/defense of %1m (owl attack/defense as well)\n" }, |
" %1m: 0.0 - (threat of) attack/defense of %1m (owl attack/defense as well)\n" }, |
1892 |
{ { SEMEAI_MOVE, SEMEAI_THREAT, -1 }, |
{ { SEMEAI_MOVE, SEMEAI_THREAT, -1 }, |
1893 |
owl_move_reason_known, REDUNDANT, |
owl_move_reason_known, REDUNDANT, |
1894 |
" %1m: 0.0 - (threat to) win semai involving %1m (owl move as well)\n"}, |
" %1m: 0.0 - (threat to) win semeai involving %1m (owl move as well)\n"}, |
1895 |
{ { SEMEAI_MOVE, SEMEAI_THREAT, -1 }, |
{ { SEMEAI_MOVE, SEMEAI_THREAT, -1 }, |
1896 |
tactical_move_vs_whole_dragon_known, REDUNDANT, |
tactical_move_vs_whole_dragon_known, REDUNDANT, |
1897 |
" %1m: 0.0 - (threat to) win semai involving %1m (tactical move as well)\n"}, |
" %1m: 0.0 - (threat to) win semeai involving %1m (tactical move as well)\n"}, |
1898 |
{ { EITHER_MOVE, -1 }, |
{ { EITHER_MOVE, -1 }, |
1899 |
either_worm_attackable, REDUNDANT, |
either_worm_attackable, REDUNDANT, |
1900 |
" %1m: 0.0 - 'attack either' is redundant at %1m (direct att./def. as well)\n"}, |
" %1m: 0.0 - 'attack either' is redundant at %1m (direct att./def. as well)\n"}, |