Учебный Проект. Релиз 14

Материал из wikiru.visual-prolog.com

Автор: Виктор Юхтенко. Email victor@pdc.spb.su

Очередная версия Учебного проекта, функциональной идеей которого является простая игра.

Правила игры ...

Цель

Демонстрация расширенных приемов программирования приложений на языке Visual Prolog:

  • Демонстрация взаимодействия главного приложения с частями проекта, помещенными в специальный вид DLL (Dynamically Linked Library - динамически связываемые библиотеки) - Pzl-Контейнеры.
  • Pzl-Контейнер содержит Pzl-Компоненты. Как Pzl-Контейнеры, так и Pzl-Компоненты удовлетворяют соглашениям Pzl-Технологии (Vp Puzzle Технологии). Подробное описание VpPuZzle технологии приведено в [1]

Функции

Без изменений.

Код

  • Проверено на версии Visual Prolog 7.3 build 7302.
  • Релиз 14 содержит набор проектов, которые демонстрируют различные фазы преобразования приложения Polyline Релиз 13 в приложение, выполненное на базе Pzl-Технологии:
    • Проект MonoApplicaion\Polyline.prj6 показывает как классы преобразованы в pzl-Компоненты.
    • Проект MonoApplicaionLib\Polyline.prj6 является повторением проекта MonoApplicaion\Polyline.prj6 с тем отличием, что модуль HumanInterface и модуль Computer3 представлены библиотеками.
    • Раздел pzlBasedApplication содержит, в свою очередь, набор проектов - главное приложение Polyline.prj6 и проекты, соответствующие контейнерам ( см. Особенности Вашей версии или в файле VersionReference.html)
      • Containers\Competitors\Competitors.prj6
      • Containers\PolylineBlackHorsePlayers\PolylineBlackHorsePlayers.prj6 (the source code available in the Professional Version only)
      • Containers\PolylineGame\PolylineGame.prj6
      • Containers\PolylineGameStatistics\PolylineGameStatistics.prj6
      • Containers\PolylineHumanInterface\PolylineHumanInterface.prj6 (the source code available in the Professional Version only)
      • Containers\PolylineJuniourJudge\PolylineJuniourJudge.prj6
      • Containers\PolylinePublicPlayers\PolylinePublicPlayers.prj6
      • Containers\PolylineSeniourJudge\PolylineSeniourJudge.prj6

Установка

Если у Вас имеется VipSpbSDK, то все проекты находятся в директории Examples\Polyline\Polyline14\Programs

Если Вам нужен полный набор проектов серии Polyline (персональная версия), сгрузите и разархивируйте файлы архивов, пользуясь ссылками на форуме PDC ЗДЕСЬ

  • VipSpbSDK_PE_73_Examples_Polyline_1_14.zip
  • VipSpbSDK_PE_73_Tools_Polyline_1_14.zip]

в удобную для Вас директорию.

Коммерческая версия представлена в виде одного архива и может быть получена Здесь.

Оплата в любой из указанных валют. При оплате с рублевой кредитной карты валюта оплаты конвертируется в рубли по курсу банка-эмитента карты.

Директория с именем VipSpbSDK будет создана автоматически.

Построение

Ознакомьтесь предварительно с особенностями Вашей версии

Откройте и постройте проект Programs\MonoApplicaion\Polyline.prj6, в котором все Pzl-Компоненты помещены в один проект,

Выполните командные файлы

  • Programs\BuildComputer3Lib.cmd
  • Programs\BuildHumanInterfaceLib.cmd

При необходимости постройте проект Programs\MonoApplicaionLib\Polyline.prj6

Откройте и постройте проекты

  • Programs\pzlBasedApplication\Polyline.prj6
  • Programs\pzlBasedApplication\Containers\Competitors\Competitors.prj6
  • Programs\pzlBasedApplication\Containers\PolylineBlackHorsePlayers\PolylineBlackHorsePlayers.prj6
  • Programs\pzlBasedApplication\Containers\PolylineBlackHorsePlayersLib\PolylineBlackHorsePlayers.prj6
  • Programs\pzlBasedApplication\Containers\PolylineGame\PolylineGame.prj6
  • Programs\pzlBasedApplication\Containers\PolylineGameStatistics\PolylineGameStatistics.prj6
  • Programs\pzlBasedApplication\Containers\PolylineHumanInterface\PolylineHumanInterface.prj6
  • Programs\pzlBasedApplication\Containers\PolylineHumanInterfaceLib\PolylineHumanInterface.prj6
  • Programs\pzlBasedApplication\Containers\PolylineJuniourJudge\PolylineJuniourJudge.prj6
  • Programs\pzlBasedApplication\Containers\PolylinePublicPlayers\PolylinePublicPlayers.prj6
  • Programs\pzlBasedApplication\Containers\PolylineSeniourJudge\PolylineSeniourJudge.prj6

Запустите на выполнение командный файл Programs\pzlBasedApplication\RegisterComponents.cmd, который зарегистрирует компоненты

Для построения проектов переменная 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).

Запуск

  • Запускается приложение, соответствующее проекту Programs\MonoApplicaion\Polyline.prj6, в котором все компоненты включены в один исполняемый файл;
  • Запускается приложение, соответствующее проекту Programs\pzlBasedApplication\Polyline.prj6, которое взаимодействует с компонентами, помещенными в различные контейнеры и зарегистрированными в файле PzlRegistry.pzr. Файл PzlRegistry.pzr должен находиться в той же директории, где и исполняемый .exe файл.
  • Запуск приложения из среды по E или запустить исполняемое приложение из директории EXE.
  • Язык приложения определяется помещением в командной строке идентификатора языка:
    • ru - русский
    • en - английский
  • При запуске из среды IDE параметр языка помещается в поле формы "Project Settings"\Run Options\Run Arguments, получаемой из меню Project\Settings...