我是一個C++程序員,試圖學習設計,作爲一個開始我試圖通過給自己一個任務來製作一個面向對象遊戲的面向對象設計的設計。一個家庭作業q只是試圖發展一些技能。 以下是我腦海中至今爲止的內容總結: 「板塊」課程將把棋子的當前位置保存在棋盤上。 專門的課程「駱駝」「馬」「女王」「騎士」「典當」&「大象」,將從「片」類派生。這些課程中的每一個將持有2個成員,「允許移動的地方的數量」&「移動規則」,並獲取相同的方法。幫助設計一個國際象棋遊戲
一個基礎「玩家」類,將通過類「BlackPiecePlayer」&「WhitePiecePlayer」擴展。這些類中的每一個都將保存另一個名爲「PieceManager」的類實例。「PieceManager」類將決定在板上移動的邏輯。
一個「棋盤」類,它可以保存棋盤上所有棋子的映射,並可以訪問棋子可以移動的一組規則。它將提供接口來驗證由「PieceManager」計算的移動,然後在更新自己的映射時進行移動。
繼承人一個通用的流程,我可以想象。要求一個類「WhitePiecePlayer」進行移動,它會要求其自己的「WhitePieceManager」進行移動。 「WhitePieceManager」將通過使用「Board」類的接口訪問棋盤上的棋子位置。然後,它將使用其內部邏輯來計算一件作品的移動。每件作品存儲它的位置,以便計算該作品的位置。然後通過調用Board類的方法驗證移動是可能的,然後通過使用Board類接口進行移動..等等。
對不起,我只是想開發一種感覺設計,這就是我心目中,現在,你認爲其良好的開端或任何建議,就如何使它更好(如果它是正確的)
感謝您的快速回復和祝福。 1.謝謝,我當然會經歷這個,現在我正在考慮更多的設計2.對不起,我想你提到了正確的名稱..我不是一個真正精通國際象棋的遊戲3 。 謝謝!!正確!應該只是玩家的實例! – Ani 2010-09-25 12:13:00