Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Kursovaya_otchyot_OS.doc
Скачиваний:
6
Добавлен:
13.09.2019
Размер:
243.71 Кб
Скачать

ФЕДЕРАЛЬНОЕ АГЕНТСТВО СВЯЗИ ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ «СИБИРСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ТЕЛЕКОММУНИКАЦИЙ И ИНФОРМАТИКИ»

Кафедра вычислительных систем

КУРСОВОЙ ПРОЕКТ по дисциплине «Операционные системы»

Разработка сетевой игры «крестики-нолики».

Выполнил: студент гр. ВМ-88 Вагапов Р.А.

Проверил: доцент к.т.н. Мамойленко С. Н.

Оценка:_______________ Дата:_______________

Новосибирск – 2010

Задание на курсовую работу.

  1. Опишите правила игры и алгоритм проведения игровой ситуации «крестики-нолики» (3х3).

  2. Разработайте протокол взаимодействия клиентской и серверной частей приложения при: создании новой игры, подключении игроков к ранее созданной игре, проведении игровой ситуации и завершении её. Заложите возможность диалога игроков в режиме чата (через контролирующий сервер).

  3. Определите тип протокола, который будет использоваться для взаимодействия клиентов и сервера (TCP или UDP).

  4. С использованием библиотек MyTerm и BigChars, разработайте набор функций:

  • printBoard (struct board), выводящую на экран рабочее поле игры. Каждая ячейка поля представляется "большим" символом, само поле объведено в рамку. Рисунки символов "крестик" и "нолик" хранятся в одном файле (два больших символа, один - крестик, другой — нолик).

  • setBoardPos (struct board, int, int, enum tPosSign), устанавливающую в указанную позицию поля крестик или нолик

  • getBoardPos (struct board, int, int, enum tPosSign *), возвращает значение указанной позиции поля игры (крестик или нолик).

  • editBoard (struct board *, int *, int *), реализующую редактирование поля (в свобоное место устанавливается крестик (F5) или нолик (F6), на занятое место установить ничего нельзя) и возвращающую позицию установленного символа.

  1. Реализуйте программу-сервер

  2. Реализуйте программу-клиент

Правила игры.

Игроки по очереди ставят на свободные клетки поля 3х3 знаки (один всегда крестики, другой всегда нолики). Первый, выстроивший в ряд 3 своих фигур по вертикали, горизонтали или диагонали, выигрывает. Первый ход делает игрок, ставящий крестики.

Обычно по завершении партии выигравшая сторона зачёркивает чертой свои три знака (нолика или крестика), составляющих сплошной ряд.

Описание протокола.

В качестве протокола транспортного уровня был выбран TCP.

Сообщения Сервер → Клиент

Описание

1 (тип int) список игроков ожидающих соперника, далее отправляется количество пунктов меню (тип int), а затем отправляется заявляемое количество элементов структуры struct menu_type

struct menu_type

{

int id;

char ip[MAX_CH_IP];

};

2 (тип int) подтверждение создания игры

Отправляется клиенту, в случае если удалось создать игру (в противном случае отправляется -2)

3 (тип int) подтверждение подключения к игре

Отправляется клиенту, в случае если удалось присоединиться игру (в противном случае отправляется -3)

4 (тип int) подключение соперника

Отправляется клиенту создавшему игру, информирует о подключения противника

5 (тип int) сообщение, далее передается размер сообщения, и потом передается само сообщение

Используется для обмены сообщениями между клиентами

6 (тип int) подтверждение дозволенности хода

Используется для проверки занятости ячейки

7 (тип int) ход противника, после следуют координата хода по x и y (тип int)

Передает координаты хода противника

8 (тип int) отключение соединения

Информирует об отключении противника

9 (тип int) победа клиента

Информирует о победе клиента

10 (тип int) поражение клиента

Информирует о поражения клиента

11 (тип int) игра вничью

Информирует об окончании игры вничью

Сообщения Клиент → Сервер

Описание

1 (тип int) запрос на список игроков ожидающих соперника

Запрос на список игроков ожидающих соперника

2 (тип int) запрос на создание игры

Запрос на создание игры

3 (тип int) запрос на присоединение к игре, далее следует ID игры

Запрос на присоединение к игре

4 (тип int) сообщение, далее передается размер сообщения, и потом передается само сообщение

Используется для обмены сообщениями между клиентами

5 (тип int) ход клиента, после следуют координата хода по x и y (тип int)

Информирует о ходе клиента

6 (тип int) отключение клиента

Информирует об отключении клиента

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]