爲了好玩,我在Swift中從零開始構建一個FreeCell紙牌遊戲。我已經有了用於構建甲板的套牌模型,並且每個卡牌結構都有套裝,等級和描述(例如4♠️)以及其他一些屬性。遊戲模型只是存儲哪些卡在哪些列。視圖中的變化(移動卡片)將提醒控制器修改哪些卡片在哪些列中。在視圖與模型之間溝通「哪張牌」 - 最佳方式?
當用戶點擊卡片時(UIView的一個子類包括一個包含card.description的標籤),label.text將被髮送給控制器來識別模型中的卡片。我想知道做這件事的最好方法是什麼。
我能想到的最明顯的方法是構建字典,其中的鍵是描述,值是卡片。當然,我可以在我的DeckBuilder類中編寫一個函數爲我構建字典。但是由於描述已經作爲Card結構的一個屬性存在,這看起來有點多餘且笨拙。
另一種方法是,每次選擇一張卡時,遍歷模型中的一副牌,並說「如果selectedCard.description == tryCard.description {//這是合適的牌!}」但是這似乎荒謬不雅,理論上計算過於昂貴(儘管實際上我相信它不會花時間)。
我想做的事情就是讓控制器說「得到具有此字符串作爲其描述屬性的卡」。與字典查找類似,但沒有實際字典。
這是最後的解決方案嗎?如果不是,你認爲最好的是什麼?
Thankya!
謝謝!這似乎是模型和視圖之間更好的溝通方式。 –