在设计 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 商店应用程序,是否有一种众所周知的模式来解决这种情况?