Ejemplo n.º 1
0
        /*
         * Sets chips on board (called when SetChips event of the model is invoked)
         */
        private void SetNewChips(object sender, SetChipsEventArgs e)
        {
            currentBoardState.Field[e.NewChip.Cell.X, e.NewChip.Cell.Y] = e.NewChip.Color;

            for (int i = 0; i < e.ChangedChips.Count; i++)
            {
                currentBoardState.Field[e.ChangedChips[i].Cell.X, e.ChangedChips[i].Cell.Y] = e.ChangedChips[i].Color;
            }
        }
Ejemplo n.º 2
0
        private void SetChipsConsideringUserType(object sender, SetChipsEventArgs e)
        {
            /*
             * if it is HumanToHuman mode
             * or it is Human to Robot mode but human move
             * or current SetChips event configures start board position
             * => do not make delay
             * else make delay
             */
            if (currentMode == GameMode.HumanToHuman || e.NewChip.Color == playerColor || e.ChangedChips.Count == 0)
            {
                SetChips(e.NewChip, e.ChangedChips);
                return;
            }

            delayRobotMoveTimer.Restart(delayRobotMoveTime);
            delayRobotMoveQueue.Clear();
            delayRobotMoveQueue.AddDelegate(() => { SetChips(e.NewChip, e.ChangedChips); });
        }