Exemplo n.º 1
0
        private void StartGame()
        {
            do
            {
                DisplayPole();
                Console.WriteLine("Ходит " + Players[CurrentPlayer].NamePlayer);
                Point             pos = null;
                Input.ParseAnswer parceAnsverResult = _input.ParseInput(Console.ReadLine(), ref pos);
                NotCorrectType?   notCorrectType    = checkPos(pos);
                while (notCorrectType != null)
                {
                    if ((parceAnsverResult == Input.ParseAnswer.Ok || parceAnsverResult == Input.ParseAnswer.Error) &&
                        notCorrectType == NotCorrectType.NotCorrectCoordinat)
                    {
                        Console.WriteLine("Не верные координаты");
                    }
                    else
                    {
                        if (notCorrectType == NotCorrectType.NotCorrectPos)
                        {
                            Console.WriteLine("Ячейка занята");
                        }
                        else
                        {
                            Console.Clear();
                            Console.WriteLine("Ходит " + Players[CurrentPlayer].NamePlayer);
                        }
                    }

                    parceAnsverResult = _input.ParseInput(Console.ReadLine(), ref pos);
                    notCorrectType    = checkPos(pos);
                }

                Players[CurrentPlayer].MakeAMove(pos, Pole);
                _victory.CalculateVictory(pos);
                CurrentPlayer++;
            } while (!_victory.IsEndOfGame);

            DisplayPole();
            if (_victory.IsVictoryPlayer)
            {
                Console.WriteLine("Победил игрок № " + (--CurrentPlayer).ToString(CultureInfo.InvariantCulture) + "\n" +
                                  "С именем " + Players[CurrentPlayer].NamePlayer);
            }
            else
            {
                Console.WriteLine("Ничья");
            }
            Console.ReadLine();
            Environment.Exit(0);
        }
Exemplo n.º 2
0
        public void NewGame()
        {
            Console.Write("Введите размер поля: ");
            int sizePole;

            Input.ParseAnswer parceAnsverResult = _input.ParseInput(Console.ReadLine(), out sizePole);
            while (sizePole < MinPole || sizePole > MaxPole)
            {
                if (parceAnsverResult == Input.ParseAnswer.Ok || parceAnsverResult == Input.ParseAnswer.Error)
                {
                    Console.WriteLine("Не верные размеры поля");
                }
                else
                {
                    Console.Clear();
                    Console.Write("Введите размер поля: ");
                }

                parceAnsverResult = _input.ParseInput(Console.ReadLine(), out sizePole);
            }

            SizePole = sizePole;
            Console.Clear();
            Console.Write("Введите число повторений в ряду: ");
            int winSequenceLength;

            parceAnsverResult = _input.ParseInput(Console.ReadLine(), out winSequenceLength);
            while (winSequenceLength < MinPole || winSequenceLength > SizePole)
            {
                if (parceAnsverResult == Input.ParseAnswer.Ok || parceAnsverResult == Input.ParseAnswer.Error)
                {
                    Console.WriteLine("Не верное число повторений");
                }
                else
                {
                    Console.Clear();
                    Console.Write("Введите число повторений в ряду: ");
                }

                parceAnsverResult = _input.ParseInput(Console.ReadLine(), out winSequenceLength);
            }

            Console.Clear();
            WinSequenceLength = winSequenceLength;
            Console.Write("Введите число игроков: ");
            int playerCount;

            parceAnsverResult = _input.ParseInput(Console.ReadLine(), out playerCount);
            while (playerCount < MinPlayer || playerCount > (SizePole * SizePole) / WinSequenceLength)
            {
                if (parceAnsverResult == Input.ParseAnswer.Ok || parceAnsverResult == Input.ParseAnswer.Error)
                {
                    Console.WriteLine("Не верное число игроков");
                }
                else
                {
                    Console.Clear();
                    Console.Write("Введите число игроков: ");
                }

                parceAnsverResult = _input.ParseInput(Console.ReadLine(), out playerCount);
            }

            Console.Clear();
            PlayerCount = playerCount;
            Players     = new Player[PlayerCount];
            for (int i = 0; i < PlayerCount; ++i)
            {
                Console.WriteLine("Введите имя " + i + "-го игрока");
                string buf;
                _input.ParseInput(Console.ReadLine(), out buf);
                Players[i] = new Player
                {
                    NamePlayer   = buf,
                    SymbolPlayer = Convert.ToChar(i + ShiftAnsi)
                };
                Console.Clear();
            }

            CurrentPlayer = 0;
            Pole          = new char[SizePole][];
            for (int i = 0; i < SizePole; ++i)
            {
                Pole[i] = new char[SizePole];
            }
            for (int i = 0; i < SizePole; ++i)
            {
                for (int j = 0; j < SizePole; ++j)
                {
                    Pole[i][j] = DefaultCellsPole;
                }
            }
            StartGame();
        }