我想建立一个棋盘游戏...看起来像它具有使用状态机来实现..状态机实现
我知道State pattern从GoF的,但我相信一定有其他方式来实现状态机。请让我知道..如果你知道包含不同的实现细节(权衡他们每个人的)任何文章或书籍,请告诉我..谢谢
我想建立一个棋盘游戏...看起来像它具有使用状态机来实现..状态机实现
我知道State pattern从GoF的,但我相信一定有其他方式来实现状态机。请让我知道..如果你知道包含不同的实现细节(权衡他们每个人的)任何文章或书籍,请告诉我..谢谢
退房Ragel。
这里是一个非常简单的FSM实现:
如下你会使用它:
public class MyFsm : StateMachine<byte>
{
public MyFsm()
{
this.State = this.Started;
}
private void Started(byte ev)
{
Console.WriteLine(ev);
if (ev == 255)
{
this.State = this.Stopped;
}
}
private void Stopped(byte ev) { }
}
class Program
{
static void Main(string[] args)
{
MyFsm fsm = new MyFsm();
fsm.ProcessEvent((byte) 0);
fsm.ProcessEvent((byte) 255);
fsm.ProcessEvent((byte) 0);
}
}
我认为这是C#?这将有助于澄清哪种语言(看起来不像Java或C++) – 2008-12-31 13:20:45
我们已经使用了哈雷尔的状态图(与状态机相似/相当,但稍微容易思考),还有一本好书Practical Statecharts in C/C++。
确定一个状态机是适用于棋盘游戏:
一个例子框架可以看出?对我来说似乎很陌生。 – starblue 2008-12-29 21:30:51
你想实现游戏服务器还是游戏的电脑玩家?在第一种情况下,状态机是有意义的,在第二种情况下它的意义不大。 – wildplasser 2012-01-16 22:37:30