/// <summary> /// Делает ход "Первый ход" /// </summary> /// <param name="move"></param> public void MakeFirstMove(FirstMove move) { if (move == null) { throw new ArgumentNullException(nameof(move)); } try { _moveMutex.WaitOne(); if (IsInvalid) { throw new TrueFalseGameException("Игровой стол находится в инвалидном состоянии"); } if (CurrentGame == null) { throw new TrueFalseGameException("Игра еще не началась"); } CurrentGame.MakeFirstMove(move); } finally { _moveMutex.ReleaseMutex(); } }
public void MakeFirstMove(FirstMove move, Guid nextMoverId) { if (!IsStarted || CurrentGame.CurrentMover.Id != move.Initiator.Id) { return; } CurrentGame.MakeFirstMove(move, Players.First(p => p.Player.Id == nextMoverId).Player); }