我正在使用C#,'連續四'遊戲實現一個小型終端遊戲。實際上我已經完成了實現(遊戲是可玩的),但是我想對面向對象設計進行一些重構。一個小遊戲的類設計
比方說,我有幾個類:遊戲,棋盤,播放器,消息等。存儲關聯對象的信息。與當前的設計和實現一樣,Game對象由Board對象,其他幾個遊戲屬性(當前顏色,下一個顏色,currentTurn等)以及引用到Player對象的玩家列表組成。玩家可以是用戶或CPU,這取決於哪個移動是從用戶輸入派生的或是由某個AIPlayer分別計算的(爲此,我創建了一個從播放器繼承的AIPlayer類,並相應地覆蓋了MakeAMove()方法。
其他設計決策包括擁有帶main()函數的服務器/客戶機類來運行遊戲,接收套接字數據和顯示通知,處理遊戲邏輯並調用其他類的Client/ServerHandler類。如果移動有效或是否獲得點數,則留給遊戲類別,這顯然需要操縱董事會對象。
我現在在做的是決定當玩家做出舉動時會發生什麼。所以我想有2設計這種方法:
遊戲對象需要輸入,並改變自己的狀態(包括更新它的球員應該獲得一個點)作爲遊戲由玩家對象名單, 。
這是Player對象獲取他的移動(用戶輸入或CPU計算)並更新遊戲狀態。由此,玩家與遊戲之間不存在耦合,並且玩家根據遊戲對象的方法返回的分數更新他的分數。
我的問題是: 我的遊戲使用(1)運行,但如果過什麼(2)更適合思維(即更OO純粹的,有玩家和遊戲之間的較少耦合)。但是如果是(2)使用,那麼我應該如何將遊戲和玩家聯繫起來(即我應該如何將玩家的觀點與遊戲聯繫起來)?
你的問題到底是什麼? –
@WinterMute在推薦任何內容之前,請閱讀該網站上的幫助部分。這是Code Review的主題,因爲沒有代碼需要審查。根據我所能讀到的,代碼甚至沒有完成,O.P.正在問如何寫東西。這是3個脫離主題的原因。 –
http://gamedev.stackexchange.com/ – Bauss