public ActionResult PlaceCard(GameStateController controller, int pile)
 {
     ActionResult result = controller.CurrentGame + PlaceCardAction.Action(pile);
     if (result.Success)
     {
         controller.CurrentGame = result.Game;
     }
     return result;
 }
 public ActionResult PickPile(GameStateController controller, int pile)
 {
     ActionResult result = controller.CurrentGame + PickupPileAction.Action(pile);
     if (result.Success)
     {
         controller.CurrentGame = result.Game;
     }
     return result;
 }
 public ActionResult DrawCard(GameStateController controller)
 {
     ActionResult result = controller.CurrentGame + DrawCardAction.DefaultAction;
     if (result.Success)
     {
         controller.CurrentGame = result.Game;
     }
     return result;
 }
 public Coloretto.Actions.ActionResult PlaceCard(GameStateController controller, int pile)
 {
     return null;
 }
 public Coloretto.Actions.ActionResult DrawCard(GameStateController controller)
 {
     return null;
 }
        private void InitializeGame()
        {
            Stacks.NumberOfStacks = _startDialog.ConfiguredPlayers.Count();
            ColorettoGame game = new ColorettoGame(PlayerPanels.Keys.Select(key => key).ToArray());
            Controller = new GameStateController(game, this);
            Controller.GameUpdated += new System.EventHandler<GameUpdatedEventArgs>(Controller_GameUpdated);

            foreach (var playerPanels in PlayerPanels)
                Controller.GameUpdated += playerPanels.Value.Controller_GameUpdated;

            #if DEBUG
            if (_showCheatWindow)
            {
                CheatWindow cheat = new CheatWindow(this, Controller);
            }
            #else
            if(_showCheatWindow)
            {
                MessageBox.Show("You are trying to cheat. You have been reported. Cheater.");
            }
            #endif
        }