MVC tic-tac-toe游戏

时间:2012-11-17 14:00:06

标签: java model-view-controller observer-pattern tic-tac-toe

我目前正在为一所学校的项目工作。我们应该将用Java编写的Tic Tac Toe游戏重构为更好的东西。由于给定的代码是一个巨大的问题,用户界面不能很好地工作。

问题在于游戏没有被告知两位玩家的观点。所以,我应该实现观察者模式。

http://www.imgdumper.nl/uploads6/50a794d4ea6ba/50a794d4e2d9f-now.jpg

此图像是给定代码的UML。

为了让它像真正的游戏一样工作,我假设我会创建一个如下结构:

http://www.imgdumper.nl/uploads6/50a7953c6c6b3/50a7953c64186-new.jpg

好的,我认为这是对的。但是这个项目的目的是将其重构为MVC模式。在学校提供的演示文稿中,我发现了这个方案: (见网址评论)

但我不知道如何将代码重构为满足MVC模式要求的东西。如果有人能解释我应该如何做到这一点会很好。比如,什么是模型,控制器和视图?

1 个答案:

答案 0 :(得分:1)

我会将MVC模式应用于应用程序的当前View层。基本上,MVC可以位于当前的非UI游戏逻辑之上,并且该逻辑可以封装在Service Layer中。

Model是:

  • SingleSquareState(X,O或NULL)
  • GameBoard(9至3n大小)
  • 播放器

View显示板 - 它基本上是“板”并且有9个(或sizeOf(GameBoard))方块,可以转为X,O或NULL - 也许数组将在这里做。避免在这里放置太多逻辑,将其留给控制器。控制器告诉视图该做什么。

Controller告诉服务(下方)玩家正在做什么。然后它从服务接收更新的GameState并告诉视图如何显示它。

Service(又名GameState)跟踪所有玩家的游戏状态。它可能有一个名为Move的方法,Controller可以调用。该服务通过评估游戏状态等来验证该电影是否合法。然后该服务将更新状态返回给控制器。