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