
- •2. Функции для работы с сокетами
- •3. Схема работы сервера и клиента с предварительным установлением связи
- •4. Пример сервера и клиента
- •5. Цели и задачи
- •6. Порядок выполнения лабораторной работы
- •7. Варианты заданий (1-15)
- •8. Варианты заданий (16-30)
- •9. Варианты заданий (31-45)
- •10. Варианты заданий (46-60)
9. Варианты заданий (31-45)
31.
Сервер хранит базу данных ассоциаций, как набор соответствий «объект Х = объект У». К серверу подключаются два клиента и начинают игру. В начале игры каждый клиент получает перемешанный список объектов. Каждый клиент отсылает серверу ответ в виде (объект 1, объект 2), если указанная пара объектов составляет ассоциацию, то они удаляются из списка клиента. Выигрывает тот, кто быстрее очистит свой список. В окончании игры игроки выводят ее результаты.
32.
Сервер хранит базу данных температур с указанием места и времени замера температуры (год, месяц, время суток). Сервер располагает базой доверенных клиентов. Если клиент подключается к серверу как доверенный клиент, он обладает возможностями клиента-гостя и дополнительно может добавить новую запись в базу данных температур (но при этом место и время замера не должны полностью совпадать с уже имеющимися). Клиент-гость может отправить запрос на получение списка температур в указанном месте и указанном временном интервале, результаты запроса клиент сохраняет в файл, в имя которого подставляется текущее время, а также из результатов запросы клиентом выбираются максимальная, минимальная, средняя дневная и средняя ночная температуры и отображаются на экране. Сервер должен уметь работать со многими клиентами одновременно.
33.
Сервер хранит базу данных персонажей игры, каждый персонаж представлен записями (идентификатор клиента владельца, имя персонажа, раса персонажа, класс персонажа, пол персонажа, численные значения силы, ловкости, выносливости и интеллекта). Клиент, подключившийся к серверу впервые, получает идентификатор и задает свой пароль. Зарегистрировавшийся клиент отправляет серверу свой идентификатор и пароль и вступает во взаимодействие с сервером, только если пароль и идентификатор верны (проверяет это сервер). Клиент может: получить список своих персонажей, удалить своего персонажа, создать нового персонажа (но один клиент не может иметь более десяти персонажей, а также на сервере не может быть двух персонажей с одинаковыми именами), получить информацию о пятерке самых сильных персонажей сервера, пятерке самых выносливых персонажей сервера, пятерке самых ловких персонажей сервера, пятерке самых умных персонажей сервера, о процентном соотношении рас персонажей сервера, о процентном соотношении классов персонажей сервера, о процентном соотношении мужских и женских персонажей сервера. Сервер должен уметь работать со многими клиентами одновременно.
34.
Сервер хранит базу правил, состоящую из произвольного числа записей вида «если ______, то _______» или «если ______ и _______, то _______», клиент, подключившись к серверу, может отослать ему произвольное число условий. На основе этих данных, сервер отсылает клиенту, выводы сделанные с помощью базы правил. Сервер должен уметь работать со многими клиентами одновременно.
35.
Сервер хранит базу данных файлов, где каждый файл представлен записью вида (имя, расположение на диске). Клиент подключается к серверу и далее может получить список имен всех файлов на сервере и отослать запрос на получение данных конкретного файла. Клиент отображает содержимое, полученное от сервера, на экран и сохраняет его в специальном файле, в имя которого подставляется текущее время создания файла. Сервер должен уметь работать со многими клиентами одновременно.
36.
Сервер хранит базу данных клиентов в виде (логин, пароль, список произведений оцененных клиентом положительно и список произведений оцененных клиентом отрицательно). Клиент может зарегистрироваться на сервере и заполнить свои данные (имена клиентов уникальны). Клиент (в том числе и не зарегистрированный) может отправить серверу запрос в виде «мне нравится/не нравится _____ и _____ и _____ …. и _____» и получить ответ «тогда вам рекомендуется/не рекомендуется ____ и _____ и _____ …. и _____». Сервер формирует ответ на основе данных всех имеющихся зарегистрированных клиентов. Сервер должен уметь работать со многими клиентами одновременно.
37.
Реализовать сетевую игру со следующими правилами. Игра ведется между произвольным количеством игроков (минимум двое). Каждый игрок вводит пятнадцатизначное число. Если введено число большей разрядности, то лишние цифры обрезаются, если меньшей, то недостающие цифры определяются единицами. Сервер случайно загадывает три цифры, выигрывают те игроки, чьи числа делятся нацело на числа, загаданные сервером. Если таким образом не удается установить победителей, то выигрывают те игроки, чьи числа делятся нацело хотя бы на два числа, загаданных сервером. В окончании игры каждый игрок получает и выводит ее результаты – числа, введенные всеми игроками, списки победивших и проигравших игроков.
38.
Реализовать сетевую игру со следующими правилами. Игра ведется между двумя игроками. Сервер хранит колоду из одиннадцати карт, где каждая карта описывается как (название, урон в ближнем бою, урон в дальнем бою, магический урон, здоровье). Каждый игрок получает от сервера пять карт из колоды. Игра ведется пошагово. На каждом ходе случайно определяется, какой вид боя назначается игрокам – ближний, дальний или магический. Игроки информируются сервером о виде боя и выбирают в своем раскладе играющую карту. От здоровья карты каждого игрока вычитается урон (соответствующий виду боя), наносимый картой оппонента. Если здоровье стало меньше либо равно нуля, карта изымается у игрока. «Раненная» карта не восстанавливает здоровье после хода, а остается с уменьшенным здоровьем. На каждом ходе игроки получают и выводят информацию о ходе боя. Игра ведется до проигрыша одного из игроков, проигрышем считается потеря игроком всех его карт.
39.
Сервер хранит базу данных женихов и невест, где каждый представлен записями вида (имя, пол, информация о себе). Клиент, подключившийся к серверу впервые, задает свой логин и пароль. Зарегистрировавшийся клиент вступает во взаимодействие с сервером, только если логин и пароль верны, также не может быть несколько клиентов с одинаковыми именами. Клиент заполняет собственную анкету - (имя, пол, информация о себе), которую сервер сохраняет в общей базе. Клиент может получить информацию о любом женихе из базы и поставить ему численную оценку, если он зарегистрирован с указанием женского пола и наоборот - клиент может получить информацию о любой невесте из базы и поставить ей численную оценку, если он зарегистрирован с указанием мужского пола. Клиент может получить список оценок его анкеты, с указанием кто именно какую оценку поставил. Клиент может получить пятерку записей, с максимальным соответствием пары оценок – (оценки, сделанной им же, и оценки его другим клиентом). Сервер должен уметь работать со многими клиентами одновременно.
40.
Сервер хранит базу данных работодателей и рабочих. Клиент, регистрируется на сервере, заполняя логин и пароль, а также является ли он работодателем или рабочим. Рабочий отсылает серверу информацию о себе, такую как имя, пол, возраст, образование, профессия, минимальная зарплата. Информация о всех рабочих запоминается сервером. Работодатель дает серверу запрос о том вакансию на какую профессию и зарплату он дает, и по желанию может добавить в запрос уточняющую информацию об искомом рабочем, такую как желаемый возрастной интервал, желаемый пол и образование. Сервер, получив такой запрос, отсылает список подходящих рабочих работодателю. Работодатель, получив ответ сервера, может нанять рабочего, такой рабочий удаляется из базы данных сервером.
41.
Реализовать сетевую игру со следующими правилами. Игра ведется между произвольным количеством игроков (минимум двое). Каждый игрок бросает кубик. Очко зачисляется тем игрокам, для которых выпавшее число является минимальным в данном ходе. Игра ведется в 5 ходов. На каждом ходе каждый игрок должен получать информацию о своих очках и очках противников.
42.
Реализовать сетевую игру со следующими правилами. Приложение сервер хранит карту лабиринта. В лабиринт могут быть запущены два игрока за раз. Побеждает тот игрок, кто первым выйдет из лабиринта. Игроки ходят произвольно, т.е. игрок всегда имеет право хода, не зависимо от действий своего противника. Игроки не видят друг друга в лабиринте.
43.
Реализовать сетевую игру со следующими правилами. Приложение сервер хранит карту лабиринта. В лабиринт могут быть запущены два или три игрока за раз. Побеждает тот игрок, кто первым выйдет из лабиринта. За каждый ход каждый игрок делает один ход. Игроки видят в лабиринте своих оппонентов.
44.
Реализовать сетевую игру со следующими правилами. Приложение сервер хранит список карт лабиринтов. Каждая карта обладает своим именем и рангом от 0 до 3. Пользователь, запустив клиент, соединяется с сервером, регистрируется: вводит имя и пароль. Сервер сохраняет список имен, паролей и рангов всех, когда-либо, подключавшихся клиентов. Клиент, впервые зарегистрированный на сервере, имеет ранг 0. Если клиент вводит имя уже зарегистрированное на сервере, сервер оповещает об этом клиента. После регистрации клиент получает список доступных ему карт (клиенту доступна та карта, чей ранг не меньше чем ранг самого игрока), выбирает требуемую карту и начинает игру. Ранг клиента увеличивается на единицу каждый раз, когда он выигрывает.
45.
Реализовать сетевую игру со следующими правилами. Игра ведется между тремя игроками – два против одного. Каждый игрок из двух бросает кубик. Третий игрок бросает два кубика. Очко начисляется той команде, для которой выпала наибольшая сумма. Игра ведется в 10 ходов. На каждом ходе каждый игрок должен получать информацию о своих очках и очках противников. Клиент после соединения с сервером должен указать, хочет ли он играть в команде или один.