Модули по введению в C#

Devlog 2023 г. C#
C# Example

Прошел два модуля по введению в C#.

Для меня модули были довольно-таки простыми, т.к. шарпом я с переменным успехом уже занимался некоторое время (плюс прочитал полностью Шилдта и почти полностью Троелсена), но практики у меня было мало, т.к. все-таки это не основной язык, на котором я пишу.

C# Example

Как-то раз, задавшись вопросом, я начал гуглить в интернете статьи на тему «Как изучать язык на практике», т.к. теория – это очень хорошо, даже отлично, но без практики всё очень быстро забывается, да и вообще, одной теорией — сыт не будешь. Везде я находил почти одно и то же: «Делайте пет-проекты, делайте пет-проекты, а когда сделали их 100500 штук, то делайте еще пет-проекты».

Совет прямо-таки очень дельный, но… Где брать идеи на данные пет-проекты – это отдельный сложный вопрос. Не могу сказать, что у меня прямой и не креативный мозг, поэтому идей у меня было завались, но все они были глобальные, масштабные и непонятно с какого конца реализуемые (например, сваять приложение «Менеджер браузерных закладок», используя WinForms (хорошо хоть не WPF)). А что-то попроще, оно либо не придумывалось, либо казалось нафиг не нужной хренью.

И вот именно поэтому данные модули меня очень порадовали именно практическими задачами. Здесь я выделил для себя два довольно интересных приложения.

Первое – это написание текстового консольного файтинга.

Правила игры:

«Вы пользователь компьютера, на который напал страшный вирус. Его нужно победить, иначе вирус сотрет все ваши файлы, накопленные за долгое время.

Борьба с вирусом происходит в 4 хода.

Каждый ход вам даётся на выбор 4 варианта, каждый из которых требует определенных затрат энергии, но наносит вирусу урон.

Вирус делает свой ход после вашего и наносит вам моральный урон. Когда он дойдет до нуля — вы проиграли, а вирус уничтожил все документы.

Каждый ход вирус восстанавливает себе определенное количество жизней, поэтому чтобы его победить нужна тактика.»

Игроку даётся 4 варианта на выбор:

-Почистить папку Temp (наносит вирусу 20 урона, требует 10 энергии)

-Использовать Касперского (наносит вирусу 30 урона, требует 40 энергии)

-Выпить кофе (восстанавливает 20 энергии)

-Заказать доставку пиццы (отнимает 30 жизни, но зато восстанавливает 30 энергии)

Игра сбалансирована так, что если выбирать случайные варианты, то будет проигрыш, т.е. в случае выбора варианта, на который не хватает энергии (либо жизни для 4-го варианта), то ход пропускается, при этом вирусу не наносится урон, а каждый ход он рэндомно отхиливается (я так замахался с этим балансом… Пришлось, мне кажется, партий 500 сыграть, постоянно меняя циферки. Сделал себе в голове заметку покопаться вообще в теме баланса, вряд ли геймдизы бездумно крутят цифры и чекают, что получилось. Хотяяяя, если посмотреть на Diablo 3…)

В результате получилось вот такое приложение:

Console Fighting Example

Во время разработки данного проекта я получил следующий профит:

Во-первых, разрабатывал я его «по-своему», т.е. не так, как учили в курсе, потому что там теория все-таки рассчитана на начинающих (т.е. процедурно), а я уже имею кое-какой опыт. Поэтому я сразу начал всё делать на классах и всяких разных фишечках, которые изучал ранее.

Во-вторых, я смог понабивать руку. В дальнейшем я заметил, что чем чаще и больше пишу на шарпе, тем писать становится проще и  уже перестаю залипать на простых вопросах, зато начинаю погружаться более глубоко и поднимать более тяжелые вопросы.

obviously

Плюс, чтение литературы теперь ложится на определенный базис, который уже более-менее устаканился в голове, что является хорошим фундаментом для постройки новых конструктов и знаний. Таким образом, я все-таки дойду рано или поздно до CLR via C# (вон она лежит, ждет своей очереди)

Books

Ну и наконец, второй проект. Не что иное, как консольные крестики-нолики. Мне кажется любой программист в своей жизни хоть раз, но писал крестики-нолики и свой собственный калькулятор.

Я вот тоже приобщился. До калькулятора пока еще не дошел, а вот крестики-нолики получились такими:

Tic-Tac-Toe

В приложении рисуется поле, ведется журнал ходов, игроки по очереди выбирают в какой квадрат поставить фигуру, сделаны проверки исключений на ввод букв, либо на попытку занять уже занятый квадрат. Получилось увлекательно, но не залипательно, т.к. не знаю какое надо иметь IQ, чтобы залипнуть в крестики-нолики.

При этом, здесь я получил один громадный профит: я перестал морщиться и кривиться от выражений: «X-Координата» и «Y-Координата» и это прям-таки несомненный плюс. Т.к. раньше меня начинало раздражать, когда в консоли нужно было делать расчеты координат, даже банально перемещать курсор на нужную позицию. Теперь же я чувствую в себе силы даже сделать интерактивное меню в консоли, оперируя чисто SetCursorPosition’ами.

Но делать я это, в ближайшее время, точно не буду =^._.^=

Понравилась статья? Поделиться с друзьями:
Kostegs.Name
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: