Программное и информационное обеспечение шахматной...

19
МОСКОВСКИЙ АВИАЦИОННЫЙ ИНСТИТУТ (национальный исследовательский университет) Руководитель доцент кафедры 806 Чернышов Лев Николаевич Дипломник группы 08-608 Тер-Григорян Левон Арменович Дипломная работа на тему: «ПРОГРАММНОЕ И ИНФОРМАЦИОННОЕ ОБЕСПЕЧЕНИЕ ШАХМАТНОЙ ВЕБ- СИСТЕМЫ» 1 Москва 2015

Upload: sergey-maslennikov

Post on 15-Aug-2015

89 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: Программное и информационное обеспечение шахматной системы

МОСКОВСКИЙ АВИАЦИОННЫЙ ИНСТИТУТ

(национальный исследовательский университет)

Руководитель доцент кафедры 806

Чернышов Лев Николаевич

Дипломник группы 08-608

Тер-Григорян Левон Арменович

Дипломная работа на тему:«ПРОГРАММНОЕ И

ИНФОРМАЦИОННОЕ ОБЕСПЕЧЕНИЕ ШАХМАТНОЙ ВЕБ-СИСТЕМЫ»

1

Москва 2015

Page 2: Программное и информационное обеспечение шахматной системы

Зачем использовать сетевые системы в играх на клеточной доске

• Возможность быстро начать игровой процесс с другим пользователем в любой точке мира

• Социализация игрового процесса

• Игра с наиболее подходящими соперниками

• Возможность выбора длительности игры

2

Page 3: Программное и информационное обеспечение шахматной системы

Функциональные:

• Возможность совместной игры

• Сбор игровой статистики

• Пользовательский рейтинг

• Автоматический подбор соперника

• Игровые режимы

Нефункциональные:

• Безопасность игрового процесса и пользовательских данных

• Удобство использования

3Требования к системе для игры на клеточной доске MessChess

Page 4: Программное и информационное обеспечение шахматной системы

Статистика

Режимы Совместная игра

Автоматический подбор

Игра с компьютером

ChessTempo

+ - - - +

ChessFree - - - - +

Lichess + + + - +

Sparkchess + + + - +

Chess Online

- - + - -

Mess Chess

+ + + + -

4Обзор аналогов

Page 5: Программное и информационное обеспечение шахматной системы

• .Net/C# для реализации компонент системы

• WCF для взаимодействия компонент

• Двусторонний канал связи поверх tcp socket

• База данных MSSQL

• ASP .Net MVC 4 + JavaScript для системы просмотра статистики

5Стек технологий системы MessChess

Page 6: Программное и информационное обеспечение шахматной системы

6Архитектура системы MessChess

Page 7: Программное и информационное обеспечение шахматной системы

• Пользователи хранятся в базе данных

• При передаче пароля используется хэш на стороне клиента SHA-256

• На серверной стороне используется функция замедленная PBKDF2 с “подсаливанием”

• Password=PBKDF2(SHA256(password’), Salt)

• Пример хранения паролей T1 и T2:

7Модуль аутентификации

Page 8: Программное и информационное обеспечение шахматной системы

• Сессия создается при аутентификации пользователя

• Клиент по расписанию обновляет сессию

• Состояние сессии отображает текущее действие пользователя

8Организация пользовательской сессии

Page 9: Программное и информационное обеспечение шахматной системы

• Основан на минимизации разницы силы игроков

• Формирование игр происходит по расписанию

• В качестве системы расчета силы игрока используется рейтинг Эло

• Рейтинг хранится в базе и зависит от режима

9Автоматический подбор соперника

Page 10: Программное и информационное обеспечение шахматной системы

• Моделирование на основе битовых досок• Каждому типу фигуры соответствует 64-х разрядное число• Позиции активных битов соответствуют позициям на доске

Соответствующая битовая доска для белых пешек имеет вид:

00000000 00000000 00000000 00000000 00000000 00000000 11111111 00000000

10Моделирование доски

Page 11: Программное и информационное обеспечение шахматной системы

=

• Компактность данных – для представления полной шахматной доски необходимо 12 чисел

• Использование битовых операций для сбора доступных позиций для перемещения и атаки

OR

11Преимущества использования битовых досок

Page 12: Программное и информационное обеспечение шахматной системы

• Время контролируется на основании одного из трех режимов – блиц игра, обычная игра, долгая игра

• Контролируется время хода, общее время ходов

• Контроль времени происходит на сервере

Время хода Общее время ходовБлиц игра 1 мин 5 мин

Обычная игра 5 мин 120 мин

Долгая игра 1 день 5 дней

12Контроль за временем

Page 13: Программное и информационное обеспечение шахматной системы

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

• На сервере два сервиса: аутентификации и игровой

• Доска дублируется на клиенте и сервере

13Протокол взаимодействия

Page 14: Программное и информационное обеспечение шахматной системы

• Данные о партиях хранятся в базе данных

• Поиск игрока

• Графики изменения рейтинга в каждом режиме

14Система просмотра статистики

Page 15: Программное и информационное обеспечение шахматной системы

15Состояния игрового клиента

Page 16: Программное и информационное обеспечение шахматной системы

Игровое меню Модернизация пешки

Меню результатов

16Элементы игрового меню

Page 17: Программное и информационное обеспечение шахматной системы

17Результаты

• Разработана архитектура и компоненты веб-системы для игры на клеточной доске

• Для системы MessChess реализованы:• Автоматически разворачиваемое серверное

приложение• Графический игровой клиент• Веб приложение для просмотра статистики

• Исходный код системы находится в свободном доступе по адресу: https://bitbucket.org/Patrios/messchess

Page 18: Программное и информационное обеспечение шахматной системы

• Преимущества:• Оптимизация сетевых запросов, некорректные

ходы фильтруются на клиенте• В случае если клиент будет скомпрометирован

правила перепроверяются на сервере

• Недостатки:• Возможность десинхронизации досок в случае

сбоев• Двойные траты на проверку игровых правил

18Дублирование доски на клиенте и сервере

Page 19: Программное и информационное обеспечение шахматной системы

• Используется для игр с двумя игроками

• Рассчитывается по результатам игры

• Используется ФИДЕ

• Основан на сравнении набранных очков с ожиданием

• Формула нового рейтинга:S – набранные очкиE – мат ожидание набранных очковK – коэффициент зависит от силы игрока

)( ESKR R'

400101

1aRbR

E

19Рейтинг Эло