Учебный Проект. Релиз 11: различия между версиями
м |
м |
||
(не показано 8 промежуточных версий этого же участника) | |||
Строка 8: | Строка 8: | ||
|code= | |code= | ||
*Release 11 представляет ряд проектов, которые имеют единую логику игры и управления, но различаются видом пользовательского интерфейса - Соnsole, ObjectConsole, Windows). | *Release 11 представляет ряд проектов, которые имеют единую логику игры и управления, но различаются видом пользовательского интерфейса - Соnsole, ObjectConsole, Windows). | ||
*Некоторые компоненты представляются либо в виде исходных кодов (.PRO) либо в виде библиотек (LIB), написанных на VIP (представлены соответствующие альтернативные проекты) | *'''Построение и применение библиотек''' | ||
**Некоторые компоненты представляются либо в виде исходных кодов (.PRO) либо в виде библиотек (LIB), написанных на VIP (представлены соответствующие альтернативные проекты). | |||
При построении библиотек использована программа LIB фирмы Microsoft (Microsoft Linker Stub 7.10.3077), помещенная в директорию '''3P_Tools/MSTools'''. | **При построении библиотек использована программа LIB фирмы Microsoft (Microsoft Linker Stub 7.10.3077), помещенная в директорию '''3P_Tools/MSTools'''. | ||
*Существенным для проектов семейства release 11 является строгое отделение кода логики от кода, представляющего Пользовательский интерфейс. | *'''Изоляция логики от пользовательского интерфейса''' | ||
**Существенным для проектов семейства release 11 является строгое отделение кода логики от кода, представляющего Пользовательский интерфейс. | |||
Все проекты используют общий набор классов, поддерживающих логику игры и управления конфигурацией игры и ее ходом. | **Все проекты используют общий набор классов, поддерживающих логику игры и управления конфигурацией игры и ее ходом. | ||
**Каждый проект использует собственную концепцию пользовательского интерфейса. Это дает возможность создавать и другие виды пользовательских интерфейсов, например, основанных на представлениях HTML или XML или даже с использованием других языков, оперирующих элементами пользовательских интерфейсов. | |||
*'''Намек на универсализм.''' Структура кода логики управления конфигурацией и игрой в целом в принципе позволяет использовать логическую часть без изменения для организации класса подобных игр на плоскости, заменяя модуль, отвечающий за соблюдение правил игры (JuniourJudge). Естественно, модели игроков в этом случае должны соответствовать правилам игры. | |||
*Структура кода логики управления конфигурацией и игрой в целом в принципе позволяет использовать логическую часть без изменения для организации класса подобных игр на плоскости, заменяя модуль, отвечающий за соблюдение правил игры (JuniourJudge). | *'''Известная проблема.''' Проект Релиз 11 создан на базе проекта Релиз 10. Взаимодействие между игроками организовано в виде глубоко скрытого рекурсивного процесса, где условие хвостовой рекурсии не выполняется. По этой причине начиная с некоторых значений произведения '''<размер поля>x<число раундов в cериальных играх>''' в ходе игры происходит переполнение стека вызовов и приложение исчезает. Эта проблема решена в проекте Релиз 12. | ||
Естественно, модели игроков в этом случае должны соответствовать правилам игры. | |||
|functionality= | |functionality= | ||
{{Polyline11Functionality}} | {{Polyline11Functionality}} | ||
|install= | |install= | ||
Если у Вас имеется '''VipSpbSDK''', то все проекты находятся в директории '''Examples\Polyline\Polyline11\Programs''' | |||
{{PolylineInstall}} | {{PolylineInstall}} | ||
|open= | |open= | ||
==Построение== | ==Построение== | ||
[[PolylineVersionReference|Ознакомьтесь предварительно с особенностями Вашей версии]] | [[PolylineVersionReference|'''Ознакомьтесь предварительно с особенностями Вашей версии''']] | ||
Откройте и постройте проекты: | Откройте и постройте проекты: | ||
Строка 39: | Строка 38: | ||
*Polyline11_ObjWindowsLib | *Polyline11_ObjWindowsLib | ||
{{PolylineBuildCMD}} | |||
|run= | |run= |
Текущая версия на 13:40, 8 апреля 2011
Автор: Виктор Юхтенко. Email victor@pdc.spb.su
Очередная версия Учебного проекта, функциональной идеей которого является простая игра.
Цель
Демонстрация приемов программирования приложений на языке Visual Prolog:
- Разниица в методологии построения консольных и оконных приложений;
- Создание библиотек (LIB), написанных на Visual Prolog;
- Отделение логики от пользовательского интерфейса.
Функции
Фрагмент | Краткое описание | Детали | Видео |
---|---|---|---|
Построчная организция cценария диалога с пользователем в текстовой форме (на базе концепции PFC/Console) | Нет | Сгрузить и смотреть видео... (архив 640 Kb) | |
Организация взаимодействия с пользователем на базе интерфейсных компонентов типа "кнопка", "строковый редактор" и проч. с управлением мышью.
Построена на базе концепции PFC/Console. Концепция организации кода похожа на PFC/GUI, в том числе путем организации механизма событий. |
Cм. детали... | Сгрузить и смотреть видео... (архив 2.33 Mb) | |
Стандартный для Windows пользовательский интерфейс на базе концепции PFC/GUI. | Нет | Сгрузить и смотреть видео... (архив 2.9 Mb) |
Известная проблема
Начиная с некоторых значений произведения <размер поля>x<число раундов в cериальных играх> в ходе игры приложение исчезает. Причина описана в разделе Код.
Эта проблема решена в проекте Релиз 12.
Код
- Проверено на версии Visual Prolog 7.3 build 7302.
- Release 11 представляет ряд проектов, которые имеют единую логику игры и управления, но различаются видом пользовательского интерфейса - Соnsole, ObjectConsole, Windows).
- Построение и применение библиотек
- Некоторые компоненты представляются либо в виде исходных кодов (.PRO) либо в виде библиотек (LIB), написанных на VIP (представлены соответствующие альтернативные проекты).
- При построении библиотек использована программа LIB фирмы Microsoft (Microsoft Linker Stub 7.10.3077), помещенная в директорию 3P_Tools/MSTools.
- Изоляция логики от пользовательского интерфейса
- Существенным для проектов семейства release 11 является строгое отделение кода логики от кода, представляющего Пользовательский интерфейс.
- Все проекты используют общий набор классов, поддерживающих логику игры и управления конфигурацией игры и ее ходом.
- Каждый проект использует собственную концепцию пользовательского интерфейса. Это дает возможность создавать и другие виды пользовательских интерфейсов, например, основанных на представлениях HTML или XML или даже с использованием других языков, оперирующих элементами пользовательских интерфейсов.
- Намек на универсализм. Структура кода логики управления конфигурацией и игрой в целом в принципе позволяет использовать логическую часть без изменения для организации класса подобных игр на плоскости, заменяя модуль, отвечающий за соблюдение правил игры (JuniourJudge). Естественно, модели игроков в этом случае должны соответствовать правилам игры.
- Известная проблема. Проект Релиз 11 создан на базе проекта Релиз 10. Взаимодействие между игроками организовано в виде глубоко скрытого рекурсивного процесса, где условие хвостовой рекурсии не выполняется. По этой причине начиная с некоторых значений произведения <размер поля>x<число раундов в cериальных играх> в ходе игры происходит переполнение стека вызовов и приложение исчезает. Эта проблема решена в проекте Релиз 12.
Установка
Если у Вас имеется VipSpbSDK, то все проекты находятся в директории Examples\Polyline\Polyline11\Programs
Если Вам нужен полный набор проектов серии Polyline (персональная версия), сгрузите и разархивируйте файлы архивов, пользуясь ссылками на форуме PDC ЗДЕСЬ
- VipSpbSDK_PE_73_Examples_Polyline_1_14.zip
- VipSpbSDK_PE_73_Tools_Polyline_1_14.zip]
в удобную для Вас директорию.
Коммерческая версия представлена в виде одного архива и может быть получена Здесь.
Оплата в любой из указанных валют. При оплате с рублевой кредитной карты валюта оплаты конвертируется в рубли по курсу банка-эмитента карты.
Директория с именем VipSpbSDK будет создана автоматически.
Построение
Ознакомьтесь предварительно с особенностями Вашей версии
Откройте и постройте проекты:
- Polyline11_Console - консольное приложение
- Polyline11_ObjectConsole объектно-ориентированное консольное приложение
- Polyline11_ObjWindows - Windows PFC/GUI
Выполните командный файл Programs\BuildHumanInterfaceLib.cmd
- Откройте и постройте проекты, использующие библиотеки пользовательских интерфейсов:
- Polyline11_ConsoleLib;
- Polyline11_ObjectConsoleLib;
- Polyline11_ObjWindowsLib
Для построения проектов переменная SpbSolutions должна быть установлена как маршрут к директории, где располагается VipSpbSDK.
Комплексное построение проектов
Для упрощения начального построения и выполнения всех необходимых настроек имеется командный файл Build.cmd (BuildPersonal.cmd - в зависимости от версии, детали см. Справка по версиям или в файле Examples\Polyline\VersionReference.html).
Командный файл Build.cmd при его использовании:
- настраивает переменную среды программирования IDE SpbSolutions, применительно к условиям установки;
- "знает", где установлена система Visual Prolog и программа VipBuilder.exe;
- производит построение всех проектов, включая проекты в поддиректориях;
- производит построение всех необходимых библиотек;
- осуществляет регистрацию всех необходимых Pzl-компонент (при их использовании);
- информирует об успешном или неуспешном завершении каждой операции;
- может быть использован только совместно с версией Visual Prolog CE (детали см Справка по версиям или в файле Examples\Polyline\VersionReference.html).
Запуск
- Запуск приложения из среды по E или запустить исполняемое приложение из директории EXE.
- Язык приложения определяется помещением в командной строке идентификатора языка:
- ru - русский
- en - английский
- При запуске из среды IDE параметр языка помещается в поле формы "Project Settings"\Run Options\Run Arguments, получаемой из меню Project\Settings...