我想建立一個棋盤遊戲...看起來像它具有使用狀態機來實現..狀態機實現
我知道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