/// <summary> /// Computer Player Logic /// </summary> /// <param name="computer">name of comp player</param> /// <param name="opponent">name of user player</param> /// <param name="diceNumbers">number of dice</param> public void MoveCheckerAuto(string computer, string opponent) { if (_callback.ContainsKey(opponent)) { var game = GameMng.GetGame(computer, opponent); if (game == null) { return; } var diceNumbers = game.DiceLogic.GetRandomDices(); if (diceNumbers[0] == diceNumbers[1]) { diceNumbers.AddRange(diceNumbers); } _callback[opponent].RecieveRoll(Player.autoPlayer.ToString(), diceNumbers); bool result = false; try { foreach (var number in diceNumbers) { result = GameMng.CheckersMoovingLogicAuto(computer, opponent, number); if (result) { var gameTable = GameMng.GetGameTableForSend(computer, opponent); if (gameTable != null) { var whiteCheckers = gameTable[0]; var blackCheckers = gameTable[1]; var barCheckers = gameTable[2]; _callback[opponent].UpdateTable(opponent, computer, whiteCheckers, blackCheckers, barCheckers); } } if (GameMng.IsGameOver(opponent, computer)) { _callback[opponent].GameOverFromServer(opponent, computer, false); GameMng.DeleteGame(computer, opponent); } } if (_callback.ContainsKey(opponent)) { _callback[opponent].SetMasterFromServer(opponent, computer); } } catch (Exception ex) { _callback[opponent].RecieveError(ex.Message); return; } } }