Варианты заданий, страница 6

PDF-файл Варианты заданий, страница 6 Операционные системы (37640): Ответы (шпаргалки) - 3 семестрВарианты заданий: Операционные системы - PDF, страница 6 (37640) - СтудИзба2019-05-08СтудИзба

Описание файла

PDF-файл из архива "Варианты заданий", который расположен в категории "". Всё это находится в предмете "операционные системы" из 3 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .

Просмотр PDF-файла онлайн

Текст 6 страницы из PDF

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

объявить его выбывшим из игры (банкротом).3.2Протокол взаимодействия с клиентомНачать программирование логики игры можно с продумывания протоколавзаимодействия с клиентом.Для связи клиента с сервером необходимо разработать протокол прикладного уровня, т.е. некоторый набор соглашений между клиентом и сервером о том, какие данные будут передаваться и что они должны означать.30В простейшем случае в качестве клиентской программы может использоваться стандартная утилита telnet. Все, что эта программа может делать– это принимать от пользователя текстовые команды строка за строкой ипередавать их в неизменном виде серверу9.3.2.1Набор командДля упрощения задачи рекомендуется принять соглашение, что каждаякоманда занимает ровно одну строку.

Учтите, что в зависимости от настройкиутилиты telnet строка может заканчиваться одним символом ’\n’, а может и двумя:’\r’ ’\n’. Проще всего игнорировать символ ’\r’ как пробельный.Необходимо предусмотреть команды для следующих функций:— Получение информации о состоянии рынка. В ответ на команду сервер должен выдать игроку количество и минимальную стоимость продаваемого банком на данном цикле сырья, а также количество и максимальную стоимость покупаемой продукции. Также разумно выдать количество активных (необанкротившихся) игроков.— Получение информации о состоянии дел других игроков.

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

В этом случае производство выполняетсянемедленно.— Подача заявки на участие в аукционе сырья. Команда имеетдва параметра, количество закупаемого сырья и предлагаемая закупочная цена. Сервер должен сразу же проверить, достаточно ли уданного игрока единиц сырья и не задал ли игрок цену, ме́ньшуюминимальной. Если игрок ошибся, ему необходимо об этом сообщить.— Подача заявки на участие в аукционе готовой продукции.9На самом деле, функциональность утилиты telnet гораздо более сложна, однако воспользоватьсяею в рамках нашей задачи не представляется возможным.31Команда по своим характеристикам аналогична предыдущей.— Заявка на строительство новой фабрики.

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

После того, как последний игрок заявит об окончании хода,сервер должен сообщить всем игрокам результаты аукционов,после чего начать следующий ход.В случае, если еще остались игроки, не закончившие ход, следуетсообщить пользователю их количество.— Помощь. По этой команде сервер должен выдать список существующих команд и их функции.Команды должны быть достаточно мнемоничными, чтобы не запутаться в них. Например, в качесте команд можно использовать следующие английские слова и сокращения: market, player, prod, buy, sell, build, turn,help.Весьма желательно сделать анализатор команд нечувствительным к количеству пробельных символов (пробелов, табуляций и возвратов каретки) между параметрами одной команды.Также следует включить в сообщение о неопознанной команде информацию о том, как в вашей системе выглядит команда получения помощи.3.2.2Выдаваемые сообщенияПри продумывании сообщений, выдаваемых сервером клиенту, следуетучесть, что следующий этап задания предусматривает создание программ,имитирующих поведение игроков, так что выдаваемые вашим сервером сообщения необходимо будет анализировать программным образом.С другой стороны, не следует забывать и о том, что обычно в игреучаствуют обычные «живые» игроки.Чрезмерно многословные сообщения, выдаваемые сервером, затруднятих машинный анализ; наоборот, чрезмерно формальные сообщения сдела32ют игру неудобной с точки зрения игроков-людей.

Важно найти оптимальный компромисс.Одно из возможных решений состоит в том, чтобы информация, подлежащая машинному анализу, располагалась в строках, особым образомпомеченных (например, начинающихся с символа %), а комментарии, предназначенные для человека, располагались в строках, такой пометки не имеющей. Вот пример ответа сервера на команду market:Current month is 27thPlayers still active:%3Bank sells: items min.price%6500Bank buys: items max.price%65500Для человека такой ответ вполне читабелен. Что касается машинного анализа, то, выбрав только строки, первым символом которых является процент, удалив символ процента и разбив полученную информацию на отдельные слова, мы получим последовательность из пяти чисел.

Помня, чтовыдана была команда market, мы знаем, что полученные числа означаютколичество участвующих в игре игроков, количество и минимальную ценусырья, количество и максимальную цену продукции соответственно. Программе, в отличие от человека, комментарии не нужны; отбрасывая их, мыоблегчаем анализ текста, полученного от сервера.3.3Структуры данныхИзвестно, что от грамотного построения структур данных во многом зависит дальшейшая судьба любого более-менее сложного программистскогопроекта.Попытаемся сформулировать некоторые рекомендации по проектированию структур данных для нашего игрового сервера.Для начала отметим, что злоупотребление глобальными переменными –едва ли не самая серьёзная ошибка, какую только можно допустить в проектировании.

Глобальные переменные затрудняют модификацию отдельных частей программы, делают невозможным повторное использование кода, порождают путаницу на этапе отладки.Необходимо отметить, что обойтись без глобальных переменных можновсегда. Каждая функция может получить в качестве параметров все зна33чения, которые ей нужны для работы, и адреса всех переменных, которыеей необходимо модифицировать.Может показаться, что при этом каждой функции придётся передаватьслишком большое количество параметров.

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

Можно заметить, что все данные,присутствующие в игре и определяющие состояние игры, делятся на глобальные данные (например, обстановка на рынке, номер текущего хода ит.п.) и данные, связанные с конкретным игроком (номер игрока, количестводенег, сырья, готовой продукции, сведения о работающих и строящихся фабриках).Это позволяет наметить общий подход к формированию данных, описывающих состояние игры. Следует, по-видимому, описать структуру “банкир”, содержащую глобальные данные и создать одну (и только одну) переменную этого типа.

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5258
Авторов
на СтудИзбе
421
Средний доход
с одного платного файла
Обучение Подробнее