輸入棋盤這邊C/C++注意建議別用靜態陣列
有些許問題
建議用動態陣列
輸入棋盤時我為了記住上一步的棋盤狀況所以宣告了兩個棋盤陣列
為了避免整個陣列搬運問題我另外宣告了兩個指標來做互換輸入讀取用
例如當第一個棋盤輸入到y
然後x和y指向的位址交換
再把第二個棋盤輸入到y
這樣x就是上一步的棋盤 y就是當前棋盤
再來比對兩個棋盤找哪個兩個位置不一樣
棋子走了之後原本位置一定是空的
所以檢測y棋盤的兩個位置哪個是空的就能知道從哪移動到哪
再來判斷玩家和棋子種類
當然你也可以用不數來判斷玩家
但我統一在這步驟判斷
因為我也要知道棋子種類
當判斷完之後要注意如果是另一方要記得把兩個位置的座標上下左右顛倒
輸出前兩個字
根據題目可知道士和象不能輸出前後
所以士和象直接輸出棋子種類和路線
其他判斷出同一路有兩顆棋子就要判斷當下移動的棋子是前面還後面
最後兩個字
將車砲卒分一組判斷
士象馬分一組判斷
將車砲卒判斷很簡單
就判斷是否移動路線
是的話就是平移
不是的話就是進退
士象馬則是判斷移動是進還退
但最後一個字要注意要寫路線不是進退步數