Программное и информационное обеспечение шахматной...
TRANSCRIPT
МОСКОВСКИЙ АВИАЦИОННЫЙ ИНСТИТУТ
(национальный исследовательский университет)
Руководитель доцент кафедры 806
Чернышов Лев Николаевич
Дипломник группы 08-608
Тер-Григорян Левон Арменович
Дипломная работа на тему:«ПРОГРАММНОЕ И
ИНФОРМАЦИОННОЕ ОБЕСПЕЧЕНИЕ ШАХМАТНОЙ ВЕБ-СИСТЕМЫ»
1
Москва 2015
Зачем использовать сетевые системы в играх на клеточной доске
• Возможность быстро начать игровой процесс с другим пользователем в любой точке мира
• Социализация игрового процесса
• Игра с наиболее подходящими соперниками
• Возможность выбора длительности игры
2
Функциональные:
• Возможность совместной игры
• Сбор игровой статистики
• Пользовательский рейтинг
• Автоматический подбор соперника
• Игровые режимы
Нефункциональные:
• Безопасность игрового процесса и пользовательских данных
• Удобство использования
3Требования к системе для игры на клеточной доске MessChess
Статистика
Режимы Совместная игра
Автоматический подбор
Игра с компьютером
ChessTempo
+ - - - +
ChessFree - - - - +
Lichess + + + - +
Sparkchess + + + - +
Chess Online
- - + - -
Mess Chess
+ + + + -
4Обзор аналогов
• .Net/C# для реализации компонент системы
• WCF для взаимодействия компонент
• Двусторонний канал связи поверх tcp socket
• База данных MSSQL
• ASP .Net MVC 4 + JavaScript для системы просмотра статистики
5Стек технологий системы MessChess
6Архитектура системы MessChess
• Пользователи хранятся в базе данных
• При передаче пароля используется хэш на стороне клиента SHA-256
• На серверной стороне используется функция замедленная PBKDF2 с “подсаливанием”
• Password=PBKDF2(SHA256(password’), Salt)
• Пример хранения паролей T1 и T2:
7Модуль аутентификации
• Сессия создается при аутентификации пользователя
• Клиент по расписанию обновляет сессию
• Состояние сессии отображает текущее действие пользователя
8Организация пользовательской сессии
• Основан на минимизации разницы силы игроков
• Формирование игр происходит по расписанию
• В качестве системы расчета силы игрока используется рейтинг Эло
• Рейтинг хранится в базе и зависит от режима
9Автоматический подбор соперника
• Моделирование на основе битовых досок• Каждому типу фигуры соответствует 64-х разрядное число• Позиции активных битов соответствуют позициям на доске
Соответствующая битовая доска для белых пешек имеет вид:
00000000 00000000 00000000 00000000 00000000 00000000 11111111 00000000
10Моделирование доски
=
• Компактность данных – для представления полной шахматной доски необходимо 12 чисел
• Использование битовых операций для сбора доступных позиций для перемещения и атаки
OR
11Преимущества использования битовых досок
• Время контролируется на основании одного из трех режимов – блиц игра, обычная игра, долгая игра
• Контролируется время хода, общее время ходов
• Контроль времени происходит на сервере
Время хода Общее время ходовБлиц игра 1 мин 5 мин
Обычная игра 5 мин 120 мин
Долгая игра 1 день 5 дней
12Контроль за временем
• Используется двусторонний канал связи клиента и сервера
• На сервере два сервиса: аутентификации и игровой
• Доска дублируется на клиенте и сервере
13Протокол взаимодействия
• Данные о партиях хранятся в базе данных
• Поиск игрока
• Графики изменения рейтинга в каждом режиме
14Система просмотра статистики
15Состояния игрового клиента
Игровое меню Модернизация пешки
Меню результатов
16Элементы игрового меню
17Результаты
• Разработана архитектура и компоненты веб-системы для игры на клеточной доске
• Для системы MessChess реализованы:• Автоматически разворачиваемое серверное
приложение• Графический игровой клиент• Веб приложение для просмотра статистики
• Исходный код системы находится в свободном доступе по адресу: https://bitbucket.org/Patrios/messchess
• Преимущества:• Оптимизация сетевых запросов, некорректные
ходы фильтруются на клиенте• В случае если клиент будет скомпрометирован
правила перепроверяются на сервере
• Недостатки:• Возможность десинхронизации досок в случае
сбоев• Двойные траты на проверку игровых правил
18Дублирование доски на клиенте и сервере
• Используется для игр с двумя игроками
• Рассчитывается по результатам игры
• Используется ФИДЕ
• Основан на сравнении набранных очков с ожиданием
• Формула нового рейтинга:S – набранные очкиE – мат ожидание набранных очковK – коэффициент зависит от силы игрока
)( ESKR R'
400101
1aRbR
E
19Рейтинг Эло