Исходник игры Девятка построен на принципе многопотоковой работы . Применение отдельных потоков для вспомогательных операций существенно разгружает главный поток. При построении однопоточного приложения невозможно добиться приемлемой производительности. Но и применение дополнительных потоков требует четкого согласования общего взаимодействия, создание возможности мгновенной остановки всех запущенных потоков при определенных действиях пользователя.
Исходный код описывает режим трудной игры, в игровой программе используется достаточно "умный" алгоритм вычисления хода компьютера против пользователя, без всякого жульничества по отношению к игрокам. В исходнике имеется код оживления игры, включающий анимацию карт и монет, пошаговое графическое изменение «денежных доходов» игроков, запуск звуковых эффектов.
Игра способна запоминать настройки пользователя и сохранять их в реестре. Общая функциональность для игр Девятка, такое как декоративное оформление игр, класс инкапсулирующий свойства игрока, контроль движения карт, монет, изменение вида "денежных доходов" игроков и др., отделена в динамическую библиотеку nine.dll. Кроме уменьшения байтового веса приложений, такое построение позволило в самих кодах NineK2.exe и NineKNet1.exe сосредоточиться практически только над логикой игры.
Особо хочется сказать о первой сетевой версии игры Девятка NineKNet1. Сетевая работа в приложении построена на мощной и удобной библиотеке DirectPlay9, входящей в состав DirectX9. Microsoft DirectPlay специально разработан для создания сетевых игр. Его интерфейсы выглядят сложнее чем Socket-реализации, но при внимательном изучении и практическом применении сразу видна мощь и удобство работы с DirectPlay. Вся рутинная работа, обработка уникальных идентификаторов приложений, идентификаторов игроков, отправка и извлечение сообщений, отправка и извлечение данных игроков, автоматическое восстановление соединения после отключения от игры хостующего игрока и другие удобства берет на себя DirectPlay. Жаль, что в дальнейших версиях DirectPlay был удален, но в 9-ой версии он есть.
Исходные коды на языке программирования С++. Исходники имеют подробный комментарий важных строк исходного кода. Среда программирования Microsoft Visual Studio.NET 2003, DirectX9 SDK October 2004.
Скачать исходник
Тема: «Исходник карточной игры NineK»
ninek2_vs8.zip
Размер:769 КбайтЗагрузки:9042