[情報] 五子棋禁手 bug fix

看板PttBug作者 (yvb)時間16年前 (2008/06/26 22:46), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
狀況: 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
文章代碼(AID): #18OwlMYO (PttBug)