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

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

Перейти к: навигация, поиск

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

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

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

Содержание

Цель

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

  • Разниица в методологии построения консольных и оконных приложений;
  • Создание библиотек (LIB), написанных на Visual Prolog;
  • Отделение логики от пользовательского интерфейса.

Функции

Фрагмент Краткое описание Детали Видео
ConsoleSmall.jpg Построчная организция cценария диалога с пользователем в текстовой форме (на базе концепции PFC/Console) Нет Сгрузить и смотреть видео... (архив 640 Kb)
ObjectConsoleSmall.jpg Организация взаимодействия с пользователем на базе интерфейсных компонентов типа "кнопка", "строковый редактор" и проч. с управлением мышью.

Построена на базе концепции PFC/Console. Концепция организации кода похожа на PFC/GUI, в том числе путем организации механизма событий.

Cм. детали... Сгрузить и смотреть видео... (архив 2.33 Mb)
ObjectWinSmall.jpg Стандартный для 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...
На других языках