Andrey Stolyarov

Андрей Викторович Столяров: сайт автора

Это тестовый сайт, предназначенный для бета-тестирования новой версии программного обеспечения. Все зарегистрированные здесь учётные записи, а также оставленные комментарии время от времени просто исчезают. Настоящий (рабочий) сайт расположен по адресу http://www.stolyarov.info

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


Аннотация

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

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

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

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

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

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

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

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


From feriman Sun Oct 24 16:41:00 2021 pencil

userpic

Опечатки

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

From admin Sun Oct 24 20:54:01 2021 pencil

userpic

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

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

From yuri (unverified) Fri Aug 24 16:48:00 2018 pencil

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

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

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

Спасибо!

From admin Sat Aug 25 19:44:45 2018 pencil

userpic

Совмещение

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

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

From Vladimir (unverified) Wed Mar 26 16:28:00 2014 pencil

Опечатка

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

From admin Fri Mar 28 19:56:37 2014 pencil

userpic

Спасибо

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

From Ученик (unverified) Thu Dec 13 17:07:00 2012 pencil

Осознал.

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

From admin Thu Dec 13 14:47:00 2012 pencil

userpic

Для начала

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

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

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

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

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

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

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

From Ученик (unverified) Thu Dec 13 02:23:00 2012 pencil

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

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

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

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

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


pencil

пояснение


Вы находитесь на официальном сайте Андрея Викторовича Столярова, автора учебных пособий по программированию и информационным технологиям.

Если вы искали сайт замечательного писателя-фантаста Андрея Михайловича Столярова, то вам, к сожалению, не сюда.

Андрей Михайлович Столяров в библиотеке Мошкова

Авторские права © Андрей Викт. Столяров, 2009 — 2023