Esempio n. 1
0
        private static void PlayRound(TaskGenerator tg)
        {
            tg.Reset();
            var sw = new Stopwatch();

            sw.Start();
            string res;

            while (sw.Elapsed < TimeSpan.FromSeconds(Duration))
            {
                var t = tg.Next();
                Console.Write(t.TaskToString());
                Log(t.TaskToString());
                t.StartTimer();

                var answer = "";
                do
                {
                    answer = Console.ReadLine();
                } while (!t.IsValidAnswer(answer));

                t.StopTimer();

                LogLine(answer, false);

                res = t.CheckAnswer(answer) ? "Верно!" : "";
                Console.WriteLine(res);
                LogLine(res);

                Console.WriteLine();
            }

            sw.Stop();

            Console.WriteLine();
            res = tg.GetResults();
            LogLine(res);
            LogLine("-----------------------------------", false);
            Console.WriteLine(res);
        }
Esempio n. 2
0
        static void Main(string[] args)
        {
            Console.WriteLine("Привет!");
            Console.WriteLine("Меня зовут Вася, я твой тренер по математике.");
            Console.Write("Напиши, как тебя зовут, и нажми Enter: ");

            do
            {
                name = Console.ReadLine();
            } while (String.IsNullOrEmpty(name));

            name = name.Capitalize();

            Console.WriteLine();
            Console.WriteLine($"Отлично, {name}!");

            ConsoleKeyInfo key;

            Console.WriteLine("Выбери уровень сложности, на котором хочешь заниматься:");
            Console.WriteLine($"1) {Difficulty.Easy.ToStr().PadRight(15)}: простые примеры на сложение, вычитание, умножение и деление");
            Console.WriteLine($"2) {Difficulty.Medium.ToStr().PadRight(15)}: то же, но примеры сложнее, плюс простые числа и периметр");
            //Console.WriteLine($"3) {Difficulty.High.ToStr().PadRight(15)}: примеры ещё сложнее, некоторые с отрицательными числами");
            Console.WriteLine($"3) {Difficulty.High.ToStr().PadRight(15)}: примеры ещё сложнее");
            do
            {
                key = Console.ReadKey();
            } while ((key.KeyChar != '1') && (key.KeyChar != '2') && (key.KeyChar != '3'));

            var level = Difficulty.Unknown;

            switch (key.KeyChar)
            {
            case '1': level = Difficulty.Easy; break;

            case '2': level = Difficulty.Medium; break;

            case '3': level = Difficulty.High; break;

            default: level = Difficulty.Medium; break;
            }

            Console.WriteLine();
            Console.WriteLine("Выбран " + level.ToStr());
            LogLine("", false);
            LogLine("Выбран " + level.ToStr());

            var tg = new TaskGenerator(level);

            do
            {
                LogLine("-----------------------------------", false);
                LogLine($"Решает {name}:");

                Console.WriteLine();
                Console.WriteLine("На экране будут появляться примеры, нужно вводить ответ и нажимать Enter, чтобы перейти к следующему примеру.");
                Console.WriteLine($"На всё будет {Duration} сек. Успей как можно больше!");
                Console.WriteLine("Нажми Enter, когда будешь готов решать задачки.");
                Console.ReadLine();

                PlayRound(tg);

                Console.WriteLine();
                Console.WriteLine($"{name}, здорово!");
                Console.WriteLine("Занимайся каждый день по 10 минут - и твоя математика всегда будет супер!");
                Console.WriteLine("Нажми 1, если хочешь продолжить, или любую другую кнопку, если больше не хочешь заниматься: ");
                key = Console.ReadKey();
            } while (key.KeyChar == '1');
        }