Esempio n. 1
0
        /// <summary>
        /// Вызов действия
        /// </summary>
        /// <param name="indexString">Входной индекс (определяет в активной руке номер карты, которой нужно походить; если -1, то вызов альтернативных действий)</param>
        public void MakeMove(string indexString)
        {
            // игра окончена, если нечем играть
            if ((HandPlayer1Box.Count == 0 || HandPlayer2Box.Count == 0) && DeckBox.Count() == 0)
            {
                PrintLogs("Игра окончена");
                return;
            }

            // определение хода в зависимости от режима
            bool answer;

            if (Mode == GameMode.HumanVsHuman)
            {
                int index = ConvertIndex(indexString);
                answer = GameModeHumanVsHuman(index);
            }
            else if (Mode == GameMode.HumanVsAi)
            {
                answer = GameModeHumanVsAi(indexString);
            }
            else if (Mode == GameMode.AiVsAi)
            {
                answer = GameModeAiVsAi();
            }
            else
            {
                throw new Exception("GameMode накрылся");
            }

            if (answer)
            {
                ChangeActivePlayer();
            }
        }