MVC和纸牌游戏

时间:2017-03-19 17:46:37

标签: model-view-controller observers

我正在设计纸牌游戏,我想要遵循MVC模式。这个概念是否正常?它的语言不可知(不是用任何实际的编程语言编写的)。

class GameModel
{
   Player p[maxPlayers];
   Deck d;
   Rules r;

   method nextTurn()
   {
      p[activePlayer].makeTurn( ...some paramaters...);
      ...
   }

   method addObserver(int classID, int index, Observer o)
   {
     switch(classID)
     {
        case id_model:
           this.addObserver(o);
           break;

        case id_deck:
           d.addObserver(o);
           break;

        case id_player:
           p[index].addObserver(o);
           break;

       ...
    }
  }
}

此外,View需要知道诸如"这个播放器有多少张牌?",我应该写(在模型中)方法如下:

method cardCount(int playerNr)
{
    return p[playerNr].cardCount();
}

或者我应该通过Observer模式解决这个问题(View会观察玩家,他们会通知View有关抽取或投掷的牌)。

提前感谢您的建议!

卡罗琳

0 个答案:

没有答案