天天看點

中國象棋棋盤c語言程式設計,中國象棋 C語言程式設計.ppt

中國象棋 C語言程式設計

雙人對弈中國象棋 程式所負責内容介紹 計算機生成紅黑雙方以及棋盤。 各個棋子的移動。 當危險時顯示被“将軍”。 分支思路 1.棋盤棋子的制作與輸出 棋盤 走子加規則 計算機生成紅黑雙方以及棋盤 第一想法 第二想法→有子無子兩種狀态分别對應0和非0 判斷是否為0 調用shift函數 調用broad函數 非0 為0 對每個位置指派 輸出 走子加規則 分支思路 1.走子的完成加走子的規則。 棋盤 各個棋子的移動 擷取移動位置的方法:運用坐标 判斷是否合法 重新輸出整個棋盤 移動的實作方法 首先讓玩家輸入要移動的位置,然後輸入要走到的位置 将前者的位置的值賦給後者位置,同時将前者位置值指派為0,再次輸出各個位置。 判斷移動是否合法 首先判斷是否吃的是自己的子 然後判斷是否滿足規則 (定義一個變量j并初始化為1,每次一旦判斷移動不合法時,就讓 j=0; 輸出時j=0時不輸出,這就保證了隻有合法移動)。 當危險時顯示被“将軍” “将軍”情況複雜,如何判斷将軍呢 判斷将軍的方法 首先得先找到對方老将的位置 以移動的子落點位置為起始位置,以對方老将位置為要移動到的位置,調用規則函數驗證,如果可以吃到,則顯示 “将軍!”。 以上内容就是我所負責的子產品以及解決思路 走子加規則 分支思路 1.走子的完成加走子的規則。 棋盤 1. 規則。 常見規則 1.自己的棋子不能吃己方棋子。利用各方棋子的 值 的範圍。 2.判斷是否走出棋盤 ,跟據二維數組的的定義範圍來判斷。 ├ ┬ ┬ ┬ ┬ ┬ ┬ ┬ ┤ ├ ┼ ┼ ┼ ┼ ┼ ┼ ┼ ┤ ├ ╬ ┼ ┼ ┼ ┼ ┼ ╬ ┤ ├ ┼ ┼ ┼ ╳┼ ┼ ┼ ┤ └ ┴ ┴ 2 1 2 ┴ ┴ ┘ 具體的棋子走子規則 數學方法解決,判斷棋子的初始值進而對應不同的走法% 10┌ ┬ ┬ ┬ ┬ ┬ ┬ ┬ ┐ 9├ ┼ ┼ ┼ ╳┼ ┼ ┼ ┤ 8├ ╬ ┼ ┼ ┼ ┼ ┼ ╬ ┤ 7├ ┼ ┼ ┼ ┼ ┼ ┼ ┼ ┤ 6├ ┴ ┴ ┴ ┴ ┴ ┴ ┴ ┤ 5├ ┬ ┬ ┬ ┬ ┬ ┬ ┬ ┤ 4├ ┼ ┼ ┼ ┼ ┼ ┼ ┼ ┤ 3├ ╬ ┼ ┼ ┼ ┼ ┼ ╬ ┤ 2├ ┼ ┼ ┼ ╳ ┼ ┼ ┼ ┤ 1└ ┴ ┴ ┴ ┴ ┴ ┴ ┴ ┘ 1 2 3 4 5 6 7 8 9 将 隻能在九格宮内 一次一步走直線 仕 隻能在九格宮内走斜線,一次距離橫縱坐标為1 象 象走田,不過河,别象腿。 馬 馬跳日, 别馬腿。 車 走直線,中間無擋子 炮 炮有 支架 ,不可以以空打 兵 過河前走直線向前,河後可以平移。不可後退 Step 3 Goal! 走之前儲存要走位置的棋子的數學資訊。 Step 2 走之後儲存要走到位置的棋子的數學資訊 如果悔棋,将原來的值重新覆回到棋盤中 完成 悔棋程式 Step 1 簡單的方法 判斷九格宮内是否存在帥的數學值 判斷輸赢 2. 3. 1. 每走一步就利用循環覆給三維數組 棋子的步數可以利用指派之後++ 三維數組a[棋子的步數][橫坐标] [縱坐标] 當需要輸出 時就可以輸出了 複盤 Thank you ! * * * * * * * * * * * * * * * *