象棋-C語言實現象棋殘局將死判斷

題目來自UVa1589,鏈接 https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=4464

考慮一個象棋殘局,其中紅方有n(2=

象棋-C語言實現象棋殘局將死判斷

需要考慮的幾個點:

1、需要讀取多個測試例;

象棋-C語言實現象棋殘局將死判斷

象棋-C語言實現象棋殘局將死判斷

2、將帥照面的情況,比如初始狀態就將帥照面了,或走一步照面;

3、炮必須隔一個子;

4、“憋馬腿”的情況;

象棋-C語言實現象棋殘局將死判斷

剩下就是個人實現的細節差異了。

個人代碼實現如下:

主函數循環讀取數據,對每個測試例進行判斷,並輸出結果,調試過程中可以利用freopen將輸入和輸出記錄在文件中。

象棋-C語言實現象棋殘局將死判斷

黑方將的可走位置利用查表的方式尋找。

象棋-C語言實現象棋殘局將死判斷

檢查是否將死,飛將、車、炮和馬。

象棋-C語言實現象棋殘局將死判斷

檢查飛將的情況。

象棋-C語言實現象棋殘局將死判斷

檢查馬是否能將死黑將。

象棋-C語言實現象棋殘局將死判斷

詳細完整代碼如下:

象棋-C語言實現象棋殘局將死判斷

需要源代碼的可以私信,私信發象棋源碼判定


分享到:


相關文章: