Разработка алгоритма решения задачи

290366
знаков
23
таблицы
7
изображений

2.4 Разработка алгоритма решения задачи

Регистратор шахматных партий (РШП) реализуется на языке Java (j2se). РШП реализует протокол обмена данных DGT шахматных электронных досок, который в свою очередь базируется на прокотоле обмена через последовательный порт RS-232. В качестве компонента для работы с последовательным портом в Java была выбрана библиотека rxtx версии 1.72. Протокол DGT приведен в приложении 6 в виде заголовочного C файла (header). Задача РШП осуществлять трансляцию партий, при этом изменения позиции партий сохраняются в базу данных, откуда эти данные получает Транслятор шахматных партий (ТШП). Формат записи, в котором записываются шахматные ходы в базу данных, следующий:

[фигура{K(король),Q(ферзь),N(конь),B(слон),R(ладья),’ ’(пешка)}][вертикаль исходного поля][горизонталь исходного поля]-[вертикаль поля назначения][горизонталь поля назначения].

Например:

Kg8-g7

Ng1-f3

 e2-e4

Данные, получаемые РШП от электронной доски, интерпретируются согласно описанию в протоколе DGT. Например, дамп доски получается в виде 64 ASCII символов (информативная часть сообщения) – ‘rnbqkbnrpppppppp PPPPPPPPRNBQKBNR’ преобразуется в вид:

Рисунок 8 – Результат преобразования информативной части сообщения от ЭШД

ТШП реализован на технологии Ruby on Rails. Rails — это полноценный, многоуровневый фреймворк для построения веб-приложений, использующих базы данных, который основан на архитектуре Модель-Представление-Контроллер (Model-View-Controller, MVC). Динамичный AJAX-интерфейс, обработка запросов и выдача данных в контроллерах, предметная область, отраженная в базе данных, — для всего этого Rails предоставляет однородную среду разработки на Ruby. Все, что необходимо для начала — база данных и веб-сервер. Rails отлично работает со многими веб-серверами и СУБД. В качестве веб-сервера можно использовать Apache или lighttpd как с FastCGI, так и с SCGI. В качестве СУБД можно использовать MySQL, PostgreSQL, SQLite, Oracle, SQL Server, DB2 или Firebird. Использовать Rails можно на практически любой операционной системе.

Задача ТШП создавать трансляции и вещать шахматные партии. В ТШП предусмотрена система авторизации, что позволяет гибко настраивать права пользователей зарегистрированных в системе, по умолчанию существуют три профиля пользователей: Администратор (права на все), Руководитель (ему принадлежат права на создание/редактирование online трансляций, турниров, комментирование партий и т.д.) и Гость (только просмотр партий).

Модуль вещания партий реализован при помощи скриптов JavaScript, при этом обновление позиции запрашивается с сервера через AJAX запросы, без обновления всей страницы.

Листинг модуля вещания партий представлен в приложении 10.

2.5 Описание разработанного программного комплекса

2.5.1 Транслятор шахматных партий

В общем виде транслятор шахматных партий (ТШП) представляет собой следующие структуры:

-    модели данных (models);

-    представления (views);

-    контроллеры (controllers);

-    помощники (helpers).

Модели данных содержат объектные представления, задачи в виде классов бизнес-логики. Здесь описываются классы, к которым будут отнесены реальные данные. Бизнес-логика управляется одноименным контроллером, например, класс Cities (города) управляется одноименным контроллером cities_controller.rb. Модель может иметь одно или несколько представлений, которые отвечают за то, в каком виде будут отображаться данные. Помимо контроллеров всех классов существует главный контроллер main_controller.rb (в качестве главного может быть назначен любой контроллер). Он выполняет все функции по обслуживанию шахматного интернет-портала:

-    отображение главной веб-страницы;

-    возврат к предыдущей веб-странице;

-    показ партий в режиме реального времени (online) и архива турнирных партий (offline);

-    авторизация пользователей;

-    вход в личный кабинет пользователя;

-    напоминание при потере пароля или логина;

-    показ трансляции;

-    выгрузка шахматных партий в формате pgn (portable game notation);

-    выход пользователя;

-    интерфейс регистрации и т.д.

Снимки экрана (Screenshots) главной страницы rDGT-сервера, страницы авторизации пользователя, страницы просмотра текущих online трансляций и страницы просмотра шахматных партий представлены в приложении 5.

Скрипт трансляции шахматной партии реализован на языке Javascript. Обновление позиции осуществляется через асинхронные javascript-запросы к rDGT-серверу при использовании технологии Ajax без обновления всей страницы.

Клиентское приложение, содержит все необходимые функции, обеспечивающие корректную трансляцию шахматных партий. Оно создает отображение шахматной доски, фигур, времени часов, отображает динамику изменения позиции в соответствии с поступающими от rDGT-сервера данными, позволяет пользователю просматривать текущие партии, осуществлять навигацию по последовательности ходов в любом порядке.

Веб-интерфейс реализован на платформе Ruby on Rails, в соответствии с идеологией изложенной в разделе 2.4 . Портал можно разделить на несколько узловых разделов:

-    Раздел трансляций партий (online режим).

-    Раздел просмотра партий, сохраненных на сервере (offline режим).

-    Раздел редактирования данных портала, подразумевает авторизацию пользователя, которому доступны:

·                 добавление, удаление, изменение турниров;

·                 добавление, удаление, изменение игроков;

·                 добавление, удаление, изменение трансляций;

·                 добавление, удаление, изменение данных различных справочников (регламент проведения турнира, часовые регламенты, страны, города).

Общая структура транслятора шахматных партий, все атрибуты и методы его структурных элементов представлены в приложении 7


Информация о работе «Обеспечение всемирной трансляции спортивных шахматных соревнований с применением разработанного в ходе проекта законченного программного продукта»
Раздел: Информатика, программирование
Количество знаков с пробелами: 290366
Количество таблиц: 23
Количество изображений: 7

Похожие работы

Скачать
524386
0
0

... развития с деспотической властью, облеченную лишь в новую одежду. Преодолеть свойственный для страны традиционализм, развиваться по демократическому пути не удалось. Подтвердилось выдвинутое историками положение об истории России как движении по кругу вместо линейного развития. Контрольные вопросы: 1. Объясните сущность двоевластия. 2. Каков был расклад политических сил и каковы альтернативы ...

0 комментариев


Наверх