|
|
1
10
MVC作为一种适用于大量应用程序的体系结构工作得非常好。一些应用程序可能会发现MVC对于 ,尤其是作为更复杂体系结构的一部分的用户界面。
使用整个工具箱,而不仅仅是锤子 |
|
|
2
7
敌人AI -它的智能内部,指定如何玩游戏-和它 |
|
|
3
7
想一想一个简单的游戏,比如tic-tac-toe,你会想要不同的电脑难度来对抗它。如果你把每个难度都提高到a级 Strategy ,很容易加入不同的实现。 |
|
|
4
5
请记住,MVC最初纯粹是一种GUI架构模式。因此,它不能很好地映射到人工智能、网络或其他方面也就不足为奇了。但是在这里使用它仍然有一些好处。但是,代码实现了什么并不重要,重要的是它在链中的位置。仅仅因为某些东西看起来像是内部的,并不意味着它是内部的,因此不应该被视为内部的。 如果你正在写一个机器人,很有可能你只是在写脚本来操纵角色。因此,从这个意义上说,脚本接口是预先存在的控制器,而您的脚本完全是外部的。你甚至不需要到模型附近的任何地方去编写高级人工智能。。 现在,如果您是最初的程序员,必须编写低级AI功能,这是由玩家交互(例如,单击某个地方开始行走)或机器人风格的脚本触发的,那么您应该已经将其写入模型中了。
|
|
|
5
1
在我看来,它就像是在模拟一个人类玩家,因此它应该处于与人类玩家相同的位置。因此,它是一个与控制器交互的外部元素。(出于显而易见的原因,它实际上不需要显示器。) 编辑:事实上,我收回这句话。它将有一个显示器,只是不是一个人类可读的。“显示器”将负责向AI传送游戏状态信息,即使这意味着向AI传输序列化数据。 第二部分:哦,我明白了。。。这和我想的人工智能不太一样。我想它仍然可以以同样的方式处理,但这将迫使新功能在控制器中公开,这可能没有意义。(例如,控制器必须同时显示移动玩家和计算机的单元。) 我将把行为放在模型中:
然后在控制器中调用该行为。
|
|
|
6
1
对于Goomba,游戏控制者会根据Mario的位置(如果它在它的视线内)更新Goomba模型,Goomba模型会根据它打算移动的位置进行自我更新。如果没有任何障碍物,控制器将移动Goomba(即更新模型的位置),并使用Goomba的新状态渲染视图。 |
|
|
7
0
|
|
|
8
0
在我看来,在任何MVC实现中,模型都应该包含域逻辑——无论它是自治对象(逻辑粘贴在方法中)还是套接字流包装器(逻辑通过外部资源执行——是的,考虑多人游戏)。控制器应根据一些外部变量(例如CLI参数、事件调度器)用作模型的调用者/处理者。然后将所需数据(如数组、序列化变量或某种数据传输对象)返回到适当的视图(游戏屏幕、控制台终端)。 干杯,艾伦 |
|
|
9
-1
也不我会将人工智能编程为独立代理,通过控制器与模型通信。或者如果你愿意,人工智能是 A. 模型,但不是 |