狀況: gomo.c 於 revision 3036 改出 bug.
說明:
chkwin() 原傳回值為 1 , 0, 或 -1,
改成傳回值為 CHESS_RESULT_WIN,
CHESS_RESULT_CONTINUE,
或 CHESS_RESULT_LOST
對照 chess.h, CHESS_RESULT_LOST 值似為 2, 而非 -1;
因此 dirchk() 中,
>> (chkwin(getstyle(ku, nx, ny, color, limit), limit) >= 0))
便無法正確判斷 (nx, ny) 是否為禁手, 故影響整段
>> if ((style == 3) || (style == 2)) {
>> ...
>> }
無法正確檢查是否為 "真的" 活三或斷三 (即關於 以禁解禁 的檢查).
建議:
將上述
>> (chkwin(getstyle(ku, nx, ny, color, limit), limit) >= 0))
改為
>> (chkwin(getstyle(ku, nx, ny, color, limit), limit) != CHESS_RESULT_LOST))
即可.
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 60.199.200.53