В этом контрольном задании мы разработаем финальную версию нашей игры «Угадай число», используя методы в C#, а также те знания, которые были получены нами в предыдущих частях учебника. Задание будет следующим: разделите код приложения на отдельные методы: вывод текста в консоль, чтение числа, введенного пользователя и раунд игры, а также организуйте в игре возможность проверки ранее введенных пользователем чисел. Если пользователь пытается дважды ввести одно и то же число, то такая попытка не засчитывается и программа должна сделать повторный запрос.
Учебник C#
Основы работы в C#, начиная с типов данных и, заканчивая разработкой своих небольших приложений в C# и Visual Studio
Контрольное задание по главе «Консольные приложения». Доработка игры «Угадай число»
При выполнении контрольного задания по предыдущей главе, мы разработали простенькую игру «Угадай число». Теперь, когда мы разобрались более детально работой класса Console
, мы можем доработать нашу игру и сделать ей немного красивее и функциональнее. В этом контрольном задании мы будем применять как знания полученные в текущей части, так и в предыдущей. Задание будет состоять из двух частей: 1) улучшить визуальный интерфейс игры и, используя цветовое оформление текста, разделить пользовательский ввод, сообщение о недопустимом значении введенного пользователем числа, запросы программы на ввод числа, а также сообщения о победе, проигрыше и об окончании игры. 2) обеспечить следующую работу программы: если рядом с exe-файлом программы находится файл number.txt, то программа должна считать из этого файла значение угадываемого числа, иначе — сгенерировать случайное число от 0 до 10. 3) игра должна повторяться до тех пор, пока пользователь не напишет в конце очередного раунда слово «Stop»
Контрольное задание по главе «Основы языка C#». Игра «Угадай число»
Итак, в части «Основы языка C#» мы познакомились с основными конструкциями языка, научились использовать массивы, циклы и логические операции, поэтому можем попробовать свои силы в разработке простенькой консольной игры под названием «Угадай число». Правила игра следующие: программа «загадывает» целое число от 0 до 10, ваша задача — угадать это число с четырех попыток. После каждой неудачно попытки программа дает подсказки: «Больше», если загаданное число больше того, которое указали вы и, соответственно, «Меньше», если загаданное число меньше указанного вами.
Консольный ввод/вывод в C#
Консольный ввод/вывод в C# мы будем использовать на протяжении всего этого руководства, поэтому уже сейчас не лишним будет показать вам основные операции, которые мы будем выполнять при написании своих приложений на языке C#. В дальнейшем мы подробно изучим работу с консолью в C#, а сейчас ограничимся лишь теми небольшими знаниями, которые помогут нам в изучении различных приемов программирования.
Лабораторная работа по C#. Работа с числами и строками
Задача: Дано натуральное число. Определить: а) количество цифр в нем; б) сумму его цифр; в) произведение его цифр; г) среднее арифметическое его цифр; д) сумму квадратов его цифр; е) сумму кубов его цифр; ж) его первую цифру; з) сумму его первой и последней цифр.
Лабораторная работа по C#. Вычисление последовательности
Задача: Рассмотрим последовательность, образованную дробями: 1/1, 2/1, 3/2, …, в которой числитель (знаменатель) следующего члена последовательности получается сложением числителей (знаменателей) двух предыдущих членов. Числители двух первых дробей равны 1 и 2, знаменатели — 1 и 1. а) Найти k-й член этой последовательности; б) Получить первые n членов этой последовательности. в) Верно ли, что сумма первых n членов этой последовательности больше числа А?
Правила обнаружения конструктора
Наши сервисы, обычно, реализуются в виде классов. При этом, классы C# могут иметь несколько конструкторов с различным набором параметров. Когда мы задействуем в работе контейнер DI, то мы фактически перекладываем все обязанности по созданию объектов сервисов на контейнер. Каким образом контейнер DI выбирает наиболее подходящий конструктор для создания объекта? В этой части мы рассмотрим правила обнаружения конструктора в .NET/C# использовании контейнера DI из Microsoft.Extensions.DependencyInjection.
Множественная регистрация сервисов
В своих примерах ранее, мы использовали следующий подход регистрации сервисов в контейнере DI: один сервис – одна реализация. Это, по-видимому, самый распространённый способ работы с сервисами в DI. Даже, если для одного сервиса у нас разработано несколько реализаций, то всё равно, мы при регистрации сервиса указываем только один тип. При этом может возникнуть ситуация, когда нам потребуется использовать несколько реализаций одного сервиса.
Жизненный цикл зависимостей (работа с ServiceCollection)
Получив первоначальные знания о работе с DI с использованием встроенных в .NET объектов, можно погрузиться в темы внедрения зависимостей более детально. В этой части мы более подробно изучим работу с сервисами, а именно — рассмотрим жизненный цикл зависимостей и использование сервисов с различными жизненными циклами.
Введение в сервисы
В предыдущей части мы рассмотрели простой пример использования внедрения зависимостей без каких-либо специальных средств и библиотек .NET. Этот пример показывает, как минимум то, что внедрение зависимостей (dependency injection) — это набор принципов и шаблонов проектирования, а не какая-то особенность или библиотека .NET. Тем не менее, разработчики .NET/C# постарались сделать нашу с вами работу с DI наиболее комфортной и удобной, предоставив нам ряд классов и интерфейсов, позволяющих использовать возможности DI с минимальными затратами времени на разработку. И сегодня мы перепишем наш пример, используя те возможности, которые нам предлагает платформа .NET