Example #1
0
        static int Main(string[] args)
        {
            try
            {
                int countStudent = 0;
                if (!CheckAndInput.InputData(ref countStudent, "Введите количество студентов: ", 1))
                {
                    throw new Exception("Ошибка! Неправильный ввод количества студентов!");
                }
                Student[] student = new Student[countStudent];
                for (int i = 0; i < countStudent; i++)
                {
                    Console.Clear();
                    Console.WriteLine("Ввод данных о " + (i + 1) + " студенте:");
                    Console.Write("\nВведите фамилию: ");
                    string tmpLastName = Console.ReadLine();
                    Console.Write("Введите номер группы: ");
                    string tmpGroupNumber = Console.ReadLine();
                    int    countGrade     = 0;
                    if (!CheckAndInput.InputData(ref countGrade, "Введите количество оценок: ", 1))
                    {
                        throw new Exception("Ошибка! Неправильный ввод количества оценок!");
                    }
                    student[i] = new Student(countGrade)
                    {
                        LastName    = tmpLastName,
                        GroupNumber = tmpGroupNumber
                    };
                    Console.WriteLine("Введите оценки: ");
                    for (int j = 0; j < countGrade; j++)
                    {
                        if (!CheckAndInput.InputData(ref student[i].Grade[j], "Оценка " + (j + 1) + ": ", 1, 10))
                        {
                            throw new Exception("Ошибка! Неправильный ввод " + (j + 1) + " оценки " + (i + 1) + " студента!");
                        }
                    }
                }
                StudentCollection studentCollection = new StudentCollection("", student);
                while (true)
                {
                    Console.Clear();
                    Console.WriteLine("1 - Вывод списка всех студентов с указанием среднего балла каждого студента в порядке возрастания среднего балла");
                    Console.WriteLine("2 - Определение количества студентов, получивших больше двух оценок 10 в массиве");
                    Console.WriteLine("3 - Вывод списка двоечников");
                    Console.WriteLine("0 - выход");
                    Console.Write("Ваш выбор: ");
                    int menu = 0;
                    if (!CheckAndInput.InputData(ref menu, "", 0, 3))
                    {
                        throw new Exception("Ошибка! Неправильный ввод номера пункта меню!");
                    }
                    switch (menu)
                    {
                    case 1:     // 1 - Вывод списка всех студентов с указанием среднего балла каждого студента в порядке возрастания среднего балла
                        Console.Clear();
                        studentCollection.ShowByGrowingAverageGrade();
                        Console.ReadKey();
                        break;

                    case 2:     // 2 - Определение количества студентов, получивших больше двух оценок 10 в массиве
                        Console.Clear();
                        Console.WriteLine("Количество студентов, получивших больше двух оценок 10 = " + studentCollection.CountGetGrade());
                        Console.ReadKey();
                        break;

                    case 3:     // 3 - Вывод списка двоечников
                        Console.Clear();
                        studentCollection.ShowStudentsByAcademicAchievement();
                        Console.ReadKey();
                        break;

                    case 0:
                        return(0);
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                Console.WriteLine("Выход из программы");
                Console.ReadKey();
                return(0);
            }
        }
Example #2
0
        static int Main(string[] args)
        {
            try
            {
                int balance      = 1000; // баланс игрока
                int bet          = 0;    // размер ставки игрока
                int betNumberCar = 0;    // номер машины на которую поставил игрок
                while (balance > 0)
                {
                    Console.Clear();
                    int countCar = 0;
                    if (!CheckAndInput.InputData(ref countCar, "Введите количество автомобилей: ", 2, 7))
                    {
                        throw new Exception("Ошибка! Неправильный ввод количества автомобилей!");
                    }
                    if (countCar > 5)
                    {
                        Console.SetWindowSize(120, 35);
                    }
                    else
                    {
                        Console.SetWindowSize(120, 30);
                    }
                    Car[]  car    = new Car[countCar];
                    Random random = new Random();
                    // инициализируем машины со случайным неодинаковым цветом
                    for (int i = 0, rand = 0; i < countCar; i++)
                    {
                        if (i != 0)
                        {
                            rand = random.Next(1, 13);
                            for (int j = i - 1; j >= 0; j--)
                            {
                                if (rand == car[j].Color)
                                {
                                    rand = random.Next(1, 13);
                                    j    = i;
                                }
                            }
                            car[i] = new Car(i + 1, rand);
                        }
                        else
                        {
                            car[i] = new Car(i + 1, random.Next(1, 13));
                        }
                    }
                    bool releaseBet   = false; // флаг сделаны ли ставки
                    bool releaseGame  = false; // флаг сыграна ли игра
                    int  winCarNumber = 0;     // номер победившей машины
                    while (!releaseBet || !releaseGame)
                    {
                        Console.Clear();
                        Console.WriteLine("Баланс игрока: " + balance + "\t\tКоличество автомобилей участвующих в гонке: " + countCar);
                        Console.WriteLine("\n1 - сделать ставку");
                        Console.WriteLine("2 - начать новую гонку");
                        Console.WriteLine("0 - выход");
                        Console.Write("Ваш выбор: ");
                        int menu = 0;
                        if (!CheckAndInput.InputData(ref menu, "", 0, 2))
                        {
                            throw new Exception("Ошибка! Неправильный ввод номера пункта меню!");
                        }
                        switch (menu)
                        {
                        case 1:     // 1 - сделать ставку
                            if (!releaseBet)
                            {
                                Console.Clear();
                                if (!CheckAndInput.InputData(ref bet, "Введите размер ставки: ", 1, balance))
                                {
                                    throw new Exception("Ошибка! Неправильный ввод ставки!");
                                }
                                if (!CheckAndInput.InputData(ref betNumberCar, "Введите номер машины: ", 1, countCar))
                                {
                                    throw new Exception("Ошибка! Неправильный ввод номера машины!");
                                }
                                releaseBet = true;
                            }
                            else
                            {
                                Console.WriteLine("\nСтавки уже сделаны.");
                                Console.ReadKey();
                            }
                            break;

                        case 2:     // 2 - начать новую гонку
                            // показываем машины
                            if (releaseBet)
                            {
                                Console.Clear();
                                Random randomX = new Random();
                                int    xMax    = 0;
                                int    loose   = 0;
                                int    finish  = Console.WindowWidth - 7;
                                for (int i = 0; i < countCar; i++)
                                {
                                    car[i].Y = 3 + i * 4;
                                }
                                try
                                {
                                    while (xMax + 7 < finish)
                                    {
                                        for (int j = 0; j < countCar; j++)
                                        {
                                            Console.Clear();
                                            Console.WriteLine("Ставка игрока: " + bet + "\t\tAвтомобилей в гонке: " + (countCar - loose));
                                            Console.WriteLine("Номер машины игрока: " + betNumberCar);
                                            Console.WriteLine();
                                            for (int i = 0; i < countCar; i++)
                                            {
                                                CarCollection.Show(car[i]);
                                            }
                                            if (car[j].Status)
                                            {
                                                int move = randomX.Next(0, 2);
                                                car[j].X += move;
                                                car[j].GenerationBreak(finish, move);
                                                if (!car[j].Status)
                                                {
                                                    loose++;
                                                }
                                                Console.WriteLine();
                                                if (xMax < car[j].X + 7)
                                                {
                                                    xMax = car[j].X;
                                                    if (xMax >= finish)
                                                    {
                                                        winCarNumber = j + 1;
                                                        break;
                                                    }
                                                }
                                            }
                                            System.Threading.Thread.Sleep(35);
                                            if (j == countCar - 1 && loose == countCar)
                                            {
                                                Console.Clear();
                                                Console.WriteLine("Ставка игрока: " + bet + "\t\tAвтомобилей в гонке: " + (countCar - loose));
                                                Console.WriteLine("Номер машины игрока: " + betNumberCar);
                                                Console.WriteLine();
                                                for (int i = 0; i < countCar; i++)
                                                {
                                                    CarCollection.Show(car[i]);
                                                }
                                                throw new Exception("Все машины сломались!");
                                            }
                                            if (j == countCar - 1)
                                            {
                                                j = -1;
                                            }
                                        }
                                    }
                                }
                                catch (Exception ex)
                                {
                                    Console.WriteLine(ex.Message);
                                }
                                releaseGame = true;
                                if (winCarNumber != 0)
                                {
                                    Console.WriteLine("Победила машина №" + winCarNumber);
                                }
                                if (winCarNumber == betNumberCar)
                                {
                                    Console.WriteLine("Вы выиграли");
                                    balance += bet;
                                }
                                else
                                {
                                    Console.WriteLine("Вы проиграли");
                                    balance -= bet;
                                }
                            }
                            else
                            {
                                Console.WriteLine("\nПожалуйста сделайте вашу ставку");
                            }
                            Console.ReadKey();
                            break;

                        case 0:
                            return(0);
                        }
                    }
                }
                if (balance <= 0)
                {
                    throw new Exception("Вы проиграли все деньги!");
                }
                return(0);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                Console.WriteLine("Выход из программы");
                Console.ReadKey();
                return(0);
            }
        }