Архив метки: учёба

Лабиринт

В прошлом семестре у нас был предмет «Программирование игр», и в качестве курсового проекта надо было сделать какую-нибудь простую игру. Я решил сделать что-то нестандартное и не использовать 3D-движки (например, Unity, который многие, в том числе и я, использовали для лабораторных). Вместо этого я сделал некоторое подобие старых текстовых квестов, где взаимодействие с игровым миром осуществляется путём ввода команд в командной строке. При этом в игре вполне может присутствовать обширный игровой мир, проработанные персонажи и прочие интересные вещи. Наиболее известные игры такого типа выпускались компанией Infocom в 1980-х годах, самая известная серия — Zork.

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

В общем, рассказывать много не буду, лучше сразу дам ссылку. Если вы её ещё не заметили выше, то вот:

labyrinth.player701.ru

За веб-интерфейс к игре спасибо LPDem’у. Оффлайн клиент можно скачать здесь, он только для Windows, для работы нужен .NET Framework более-менее свежей версии. В клиенте используется архитектура плагинов: предполагалось, что игры можно распространять в DLL-ках и подключать к нему, но кроме «Лабиринта» и некоторых тестовых модулей я больше ничего не писал (пока?).

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

Успех!

Сегодня была успешная защита диплома на 5! Теперь наконец-то можно чуть-чуть отдохнуть от всего этого и подготовиться к следующей поездке, скорее всего, последней в этом году. Поездка начинается 3 июля, о ней буду писать позже. А если будет настроение, может, напишу ещё что-нибудь про предыдущие поездки.

В любом случае, можно условно считать, что период неактивности подошёл к концу. Если есть о чём писать — то, скорее всего, писать буду. Но просто так добавлять записи, конечно, не собираюсь.

Я ещё удивляюсь, как я до сих пор сижу, так как после защиты пришлось немало поездить по Москве с некоторой важной целью. Цель была достигнута, но поскольку я на ногах с утра, то уже с вечера засыпаю. Надо идти спать…

Осторожно, сессия закрывается…

…и уже почти закрылась.

Причём закрылась на все пятёрки. Осталась только практика, которую надо потихоньку отрабатывать.

В целом, эта сессия была не очень сложной по сравнению с предыдущей. Очевидно, из-за факта, что экзаменов было три вместо четырёх — по индивидуальному плану один из них сняли.

Прямо до начала сессии была поездка в Марокко на финал чемпионата мира по программированию ACM ICPC. На финале мы, к сожалению, ничего не выиграли, но было прикольно (впечатления неплохие). Отчёт по этой поездке обязательно надо в ближайшее время написать — пока точно не знаю, когда буду этим заниматься, прямо сейчас не очень настроен это делать.

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

То есть, ситуация намного лучше, чем могла бы быть. Надо радоваться такому благоприятному исходу событий.

Имитационное моделирование

Недавно всплыли у нас в расписании странные лабораторные работы — по курсу «Базы данных», который я сдавал (вместе с лабами и курсовым проектом) в прошлом семестре. С учётом этого, а также того, что кроме этих «лабораторных», никаких других занятий по данному предмету в этом семестре нет, часть народа стала возмущаться «что это нам тут устроили», а часть (как я, например) — теряться в догадках.

Потом, правда, всё вскрылось. Появилась информация, что перед первым таким занятием (которое состоялось в недавнюю субботу) надо установить некий AnyLogic. Он представляет собой программный пакет для имитационного моделирования. Что это такое — никто, естественно, не знал (Википедия может подсказать). Когда пришли на занятия, выяснилось следующее…

По базам данных в прошлом семестре поставили 4 лабораторные работы, а на самом деле их должно было быть 8. Поэтому ещё 4 перенесли на этот семестр, что, конечно, не очень похоже на хорошее решение, с учётом того, что экзамен уже прошёл. В результате преподаватель предложил следующее: если кому-то интересны базы данных, и он хочет делать дипломную работу по ним — то можно начинать готовиться уже сейчас, а в течение занятий обсуждать и показывать то, что сделал. Возможно, говорит она, кто-то заинтересуется имитационным моделированием, и тогда он может пройти видеокурс, встроенный в программу, и выполнить упражнения, представленные там (в качестве лабораторных). Лично мне писать дипломную по базам данных, с учётом того, что работают эти преподаватели только на FoxPro, совсем не хочется. Ну тогда, думаю, придётся, видимо, изучать имитационное моделирование… И тут препод выдаёт потрясающее: если кто-то не интересуется ни тем, ни другим, то может просто ничего не делать и всё равно получит зачёт.

Какой тут шум поднялся в аудитории! После такого вообще не ясно, будет ли кто-то сюда ходить, так что есть риск, что преподаватель передумает и заставит всех делать что-нибудь. Лично я бы не отказался ознакомиться с AnyLogic, но лучше делать это на каникулах, потому что если брать сейчас какие-то опциональные (я надеюсь, они такими и останутся) задания, то к маю, когда придётся ехать в Марракеш на финал ACM’а, может навалиться столько дел, что к сессии и не переделаешь.

Holy shit!

В том, что я сдам третий экзамен на «отлично», я не сомневался. Поэтому я даже не стал об этом писать. Но то, что такая же ситуация повторится с последним экзаменом — это, как мне казалось, уже что-то из области фантастики.

Почему так: во-первых, сам по себе предмет очень сложный. Дисциплина «Функциональный анализ II» — это такой финальный босс всей сессии. Хотя по ней нет курсовых или лабораторных, теории очень много, и практически вся она — мозговыносящая. Задачи тоже аналогичной сложности, причём половину из них мы на семинарах решали, а половину — нет.

И на подготовку всего три дня.

Один из участников нашей команды, из параллельной группы, сдавал этот предмет раньше. Не сдал. Но он не идёт на стипендию, у него и до этого были тройки, а у меня — всё «отлично» и единственная четвёрка.

Я даже просил кафедру (в лице заместителя заведующего В.Е.) поговорить с преподавателем, учесть обстоятельства и так далее. Поговорил, передал мне — всё более-менее ОК, не бойтесь, преподаватель к вам настроен более чем благожелательно. Это оказалось правдой.

С билетом, к слову, опять повезло. Хотя задачу мы на семинаре не решали, она была не такой сложной. Вопросы я немного знал. Потом ещё удалось списать одно доказательство с телефона, потому что когда препод принимает экзамен у кого-то, он обычно не смотрит. Несмотря на то, что он пару раз ходил между рядами в аудитории, меня не поймали, и даже если поймали бы — просто сказали бы убрать телефон, я в этом уверен, так как об этом сообщали сдававшие ему из другой группы раньше.

В конце концов он меня вызвал, и я стал отвечать. В задаче в конце я чуть-чуть накосячил, но в общем ход решения был правильным, так что он её засчитал. Потом стал отвечать теорию. Первый вопрос я знал очень хорошо, ответил всё, о чём он спрашивал, причём он почему-то пропустил доказательство теоремы (то самое, которое я списал) — один из пунктов в вопросе. Со вторым у меня было похуже. Тут началось интересное: через некоторое время преподаватель сам начал рассказывать то, что, по идее, я должен был рассказывать ему. Я только должен был показать, что я знаю необходимые определения и понятия, которые там используются (с чем я справился очень хорошо).

В конце концов он выдал примерно следующее: «считаю, что могу со спокойной душой поставить вам отличную оценку». Я такого, конечно же, не ожидал, потому что всё говорило о том, что он потом поставит четвёрку. Возможно, он думал, что я иду на все пятёрки, поэтому решил таким образом помочь. Но по второму экзамену у меня всё же «хорошо». И тем не менее, этого достаточно, так как диплом 2-й степени даёт право на получение повышенной стипендии. Как мне говорили — около 11 тысяч в месяц. Ну всё, теперь буду богатым. 😀

P.S. Поскольку в ближайшие 7-10 дней делать ничего не нужно, я постараюсь написать ещё несколько развернутых постов, в том числе — отчёт о поездке 3-го ноября. Это в том числе и очередное напоминание о необходимости это сделать. Самому себе, да.

The Hard Way

Серия оценок «отлично» прервана четвёркой по второму экзамену. И это я ещё легко отделался, так как мне вообще хотели поставить тройку автоматом! К счастью, я решил дополнительную задачу, по которой ко мне даже не стали предъявлять претензий. Видимо, препод уже устал проверять варианты тех, кто писал полные контрольные и не тянул даже на «3» (да, тут не было теоретических вопросов, только задачи). Но даже это не лишит меня повышенной стипендии (право на которую даёт диплом 2-й степени на олимпиаде), даже если я закончу сессию не с одной, а с двумя четвёрками. И, как всегда, самое сложное будет в самом конце…

Пришёл, увидел, сдал!

Ну или почти так.

Сегодня был первый экзамен в этой сессии и последний — в этом году.

Я очень надеялся, что мне поставят автомат, т.к. его бы точно поставили, если бы я пришёл на досрочный экзамен (со слов одногруппников, которые на нём были). Но довольно внезапным фактом оказалось то, что ставить его не стали, так что пришлось сдавать! К счастью, задачи я решать умею (ну, SQL-запросы писать: предмет-то — базы данных), а с билетом с теоретическими вопросами мне повезло — по вопросам, которые я видел в некоторых других билетах, я бы точно ничего не ответил, или почти ничего.

Теперь ближайшее важное мероприятие состоится после новогодних праздников, после 10-го января — 11-го или 12-го, точно не помню. Такой фокус, как здесь, там точно не пройдёт — но вот как нормально готовиться в период праздников? Надо попробовать пересилить себя и не заниматься ничегонеделанием.

P.S. Кстати, насчёт Нового года: если кто-то это читает — то поздравляю с наступающим. Ну и в N+1-й раз напоминаю себе о том, что надо что-нибудь написать про поездку 3-го ноября.

Resolving

Ситуация потихоньку улучшается.

Вчера получен зачёт по физкультуре и сдана курсовая работа по базам данных. Также выяснилось, что оба домашних задания по физике я решил на «отлично».

Сегодня — курсовая по компьютерной графике, зачёт по ТФКП (комплексный анализ) и самое главное — зачёт по олимпиадному предмету.

Про последние две вещи расскажу немного поподробнее.

Читать далее

Продолжаем

Пара дней, конечно, превратилась в полторы недели, так что об этой новости я рассказываю поздно, и неслучайные люди, которые являются посетителями данного сайта, скорее всего, обо всём уже знают. Но у задержки есть свои причины, а пока всё же перейдём к главной теме (а всего их несколько).

Читать далее