private void execute() { if (instance.execute().isFinish()) { model.setGameState(TexasHoldEmUtil.GameState.END); model.setCommunityCars(new List <Card>()); notifyEndGame(); instance = null; } }
public void startGame() { if (instance == null && model != null) { model.setDeck(new Deck()); instance = texasStateMachine.startInstance(model); model.setDealer(0); execute(); } }
public static void Run() { var model = new StateMachine <StateMachineInstance>("Model"); var initial = model.CreatePseudoState("Initial", PseudoStateKind.Initial); var on = model.CreateState("On"); var off = model.CreateState("Off"); var clean = model.CreateState("Clean"); var final = model.CreateFinalState("Final"); var history = on.CreatePseudoState("History", PseudoStateKind.ShallowHistory); var idle = on.CreateState("Idle"); var moveItem = on.CreateState("MoveItem"); var showItemMovePattern = on.CreateState("ShowItemMovePattern"); var hideItemMovePattern = on.CreateState("HideItemMovePattern"); initial.To(idle); on.To(clean).When <string>(s => s == "DestroyInput"); off.To(clean).When <string>(s => s == "DestroyInput"); on.To(off).When <string>(s => s == "Disable"); off.To(history).When <string>(s => s == "Enable"); clean.To(final); idle.To(moveItem).When <string>(s => s == "TransformInput"); moveItem.To(idle).When <string>(s => s == "ReleaseInput"); idle.To(showItemMovePattern).When <string>(s => s == "ReleaseInput"); showItemMovePattern.To(hideItemMovePattern).When <string>(s => s == "ReleaseInput"); hideItemMovePattern.To(idle); model.Validate(); var instance = new StateMachineInstance("instance"); model.Initialise(instance); model.Evaluate(instance, "ReleaseInput"); model.Evaluate(instance, "Disable"); model.Evaluate(instance, "Enable"); Trace.Assert(instance.GetCurrent(on.DefaultRegion) == showItemMovePattern, "History semantics should set current state to " + showItemMovePattern.Name); model.Evaluate(instance, "ReleaseInput"); model.Evaluate(instance, "Disable"); model.Evaluate(instance, "Enable"); Trace.Assert(instance.GetCurrent(on.DefaultRegion) == idle, "History semantics should set current state to " + idle.Name); }
public static void Run () { var model = new StateMachine<StateMachineInstance>("Model"); var initial = model.CreatePseudoState("Initial", PseudoStateKind.Initial); var on = model.CreateState("On"); var off = model.CreateState("Off"); var clean = model.CreateState("Clean"); var final = model.CreateFinalState("Final"); var history = on.CreatePseudoState("History", PseudoStateKind.ShallowHistory); var idle = on.CreateState("Idle"); var moveItem = on.CreateState("MoveItem"); var showItemMovePattern = on.CreateState("ShowItemMovePattern"); var hideItemMovePattern = on.CreateState("HideItemMovePattern"); initial.To(idle); on.To(clean).When<string>(s => s == "DestroyInput"); off.To(clean).When<string>(s => s == "DestroyInput"); on.To(off).When<string>(s => s == "Disable"); off.To(history).When<string>(s => s == "Enable"); clean.To(final); idle.To(moveItem).When<string>(s => s == "TransformInput"); moveItem.To(idle).When<string>(s => s == "ReleaseInput"); idle.To(showItemMovePattern).When<string>(s => s == "ReleaseInput"); showItemMovePattern.To(hideItemMovePattern).When<string>(s => s == "ReleaseInput"); hideItemMovePattern.To(idle); model.Validate(); var instance = new StateMachineInstance("instance"); model.Initialise(instance); model.Evaluate(instance, "ReleaseInput"); model.Evaluate(instance, "Disable"); model.Evaluate(instance, "Enable"); Trace.Assert(instance.GetCurrent(on.DefaultRegion) == showItemMovePattern, "History semantics should set current state to " + showItemMovePattern.Name); model.Evaluate(instance, "ReleaseInput"); model.Evaluate(instance, "Disable"); model.Evaluate(instance, "Enable"); Trace.Assert(instance.GetCurrent(on.DefaultRegion) == idle, "History semantics should set current state to " + idle.Name); }
public State(string name, StateMachineInstance <SMIType> smi) { this.name = name; this.smi = smi; }