А.В.Столяров. Практикум на ЭВМ: многопользовательский игровой сервер

Аннотация

Пособие посвящено заданию практикума, которое предполагает написание TCP-сервера, реализующего многопользовательскую игру "Менеджмент". Задание состоит из двух основных частей: собственно сервера и программируемых искусственных игроков (роботов), имитирующих поведение игрока-человека. Первая часть предназначена к выполнению на языке Си под ОС Unix с использованием TCP-сокетов; сервер предлагается реализовать как событийно-ориентированное приложение на базе системного вызова select. Вторая часть предполагает использование языка Си++ и применение основ теории формальных грамматик. На ф-те ВМК МГУ им. М.В.Ломоносова задание применялось в поддержку лекционных курсов "Операционные системы" (первая часть задания) и "Системы программирования" (вторая часть задания).

В пособии приведено подробное описание правил игры и постановка задачи; подробно описаны все необходимые системные вызовы ОС Unix; даются указания по методике реализации.

Бумажные публикации

Пособие впервые опубликовано Издательским отделом ф-та ВМК МГУ им. М.В.Ломоносова в 2005 году. ISBN 5-89407-220-4

Электронная версия

Доступна здесь: http://www.stolyarov.info/books/pdf/gameserv.pdf

Статус бумажной версии

Первое издание пособия поступало в свободную продажу, но было очень быстро распродано. В настоящее время имеется только в библиотеке факультета ВМК МГУ.

feriman аватар

Опечатки

Стр. 16, 4-я строка сверху - опечатка в слове "подлежащих".
Стр. 19, 10-я строка сверху - опечатка в слове "вызвавший".
Стр. 38, 16-я строка снизу - опечатка в слове "наличии".

admin аватар

Да там опечаток

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

Нужно Ваше авторитетное мнение

Андрей Викторович, не могли бы вы посоветовать приемлемый,
с Вашей точки зрения, вариант совмещения изучения Вашей серии книг (включая том по С++) и создания программы по данному методическому пособию?

И какие ещё учебные пособия было бы неплохо привлечь для успешного выполнения всех заданий? Например, в методичке упоминается теория формальных грамматик. Объясните, пожалуйста, для чего и в какой степени она тут нужна, а также по каким учебникам стоит ей заниматься (если стоит).

Спасибо!

admin аватар

Совмещение

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

Для выполнения той части задания, которая описана в четвёртой части методички, нужны C++ и — ага — формальные грамматики. Что посоветовать для их изучения, не знаю; классической книгой в этой области считается двухтомник Ахо-Ульмана, но он по своему объёму раз в десять превышает то, что нужно в этом задании. Собственно говоря, здесь нужны только конечные автоматы для лексического анализа по регулярным грамматикам и метод рекурсивного спуска для синтаксического анализа. Больше ничего не требуется.

Опечатка

Доброго времени суток,
в электронной версии, стр. 46, описание ?manufactured и ?result_raw_sold одинаковые.

admin аватар

Спасибо

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

Осознал.

Спасибо за рекомендацию и совет.

admin аватар

Для начала

Для начала рекомендую осознать, что перед запятой пробел не ставят, тогда как после запятой пробел обязателен. Кроме того, частица "ли" отделяется пробелом, а не дефисом.

Посоветуйте пожалуйста, какую версию ОС выбрать

Любой Unix, с которым вы сможете справиться. Скачать можно буквально где угодно. Ubuntu, конечно, подходит, и даже в качестве первой системы вполне адекватна, но лучше быть морально готовым к переходу на что-то более программистское. Из Линуксов, по возрастанию сложности, посоветую: Debian (собственно, Ubuntu сделана на основе Debian, но в Debian не так радеют за запудривание пользователю мозга всякими красивостями), Slackware (это уже для сильных духом), Owl (если справитесь с ней, можете идти работать сисадмином), Gentoo и, наконец, Linux From Scratch (после этого можете считать себя познавшим Дао).

2)Для программирования на ассемблере и С++.

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

3)Для создания многопользовательского игрового сервера.

С этой точки зрения между юниксами вообще нет никакой разницы. Вот разве что вам в голову взбредёт вместо select использовать kqueue, этого вроде в линуксе нет, тогда только FreeBSD :-)

Многопользовательский игровой сервер

Здравствуйте!
Огромное Вам спасибо ,за возможность скачать ,и учиться по книгам.

Посоветуйте пожалуйста, какую версию ОС выбрать и где скачать:

1)Для изучения самой операционной системы.
2)Для программирования на ассемблере и С++.
3)Для создания многопользовательского игрового сервера.

Я немного "знаком" с Ubuntu , подойдет-ли она для интересующих меня целей?

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".