Windows 8 ストアのターンバイターン ゲーム アプリケーション (XAML / C#) を設計する際のガイダンスを探しています。
各ターン、AI はいくつかのタスクを実行し、プレイヤーはいくつかのタスクを実行します。これは、ステート マシン/固定ワークフローとして扱うことができます。
ゲーム ループを使用する [1] か、ユーザー入力によってトリガーされるステート マシンで各状態を作成して追跡する [2] ことが考えられます。
[1]:
where(true)
{
BeginTurn();
AiDoSomething1();
await PlayerInput1();
AiDoSomething2();
await PlayerInput2();
EndTurn();
}
[2]:
void PlayerInput1()
{
lock(_lock)
{
if(State == State.State1)
{
State = State.State2;
AiDoSomething2();
}
}
}
void PlayerInput2()
{
lock(_lock)
{
if(State == State.State2)
{
State = State.State1;
EndTurn(); BeginTurn();
AiDoSomething1();
}
}
}
XAML/C# を使用する Windows 8 ストア アプリの場合、この種のシナリオに取り組むためのよく知られたパターンはありますか?