/* * 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; } }
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); }); }