Учебный Проект. Релиз 11: различия между версиями

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

м
м
Строка 1: Строка 1:
{{copyright}}
{{PolylineTemplateRu
 
|goal=
Очередная версия Учебного проекта, функциональной идеей которого является простая игра.
 
[[Игра "Ползунок". Правила игры|Правила игры ...]]
 
==Цель==
Демонстрация приемов программирования приложений на языке Visual Prolog:
Демонстрация приемов программирования приложений на языке Visual Prolog:
* разниица в методологии построения консольных и оконных приложений
|goalContent=
* создание библиотек (LIB), написанных на Visual Prolog
* Разниица в методологии построения консольных и оконных приложений;
* отделение логики от пользовательского интерфейса  
* Создание библиотек (LIB), написанных на Visual Prolog;
 
* Отделение логики от пользовательского интерфейса.
==Особенности==
|code=
===разные интерфейсы===
*Release 11 представляет ряд проектов, которые имеют единую логику игры и управления, но различаются видом пользовательского интерфейса - Соnsole, ObjectConsole, Windows).
Release 11 представляет ряд проектов, которые имеют единую логику игры и управления, но различаются видом пользовательского интерфейса - Соnsole, ObjectConsole, Windows (в Персональной версии классы, представляющие пользовательский интерфейс Windows, помещены в библиотеку (.lib)).
*Некоторые компоненты представляются либо в виде исходных кодов (.PRO) либо в виде библиотек (LIB), написанных на VIP (представлены соответствующие альтернативные проекты). Представлен командный файл (.CMD), позволяющий строить библиотеку пользовательского интерфейса.  
===использование библиотек на базе VIP===
Некоторые компоненты представляются либо в виде исходных кодов (.PRO) либо в виде библиотек (LIB), написанных на VIP (представлены соответствующие альтернативные проекты). Представлен командный файл (.CMD), позволяющий строить библиотеку пользовательского интерфейса.  


При построении библиотек использована программа 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 или даже с использованием других языков, оперирующих элементами пользовательских интерфейсов.
Но каждый проект использует собственную концепцию пользовательского интерфейса. Это дает возможность создавать и другие виды пользовательских интерфейсов, например, основанных на представлениях HTML или XML или даже с использованием других языков, оперирующих элементами пользовательских интерфейсов.
 
*Структура кода логики управления конфигурацией и игрой в целом в принципе позволяет использовать логическую часть без изменения для организации класса подобных игр на плоскости, заменяя модуль, отвечающий за соблюдение правил игры (JuniourJudge).
===намеки на универсализм===
Структура кода логики управления конфигурацией и игрой в целом в принципе позволяет использовать логическую часть без изменения для организации класса подобных игр на плоскости, заменяя модуль, отвечающий за соблюдение правил игры (JuniourJudge).


Естественно, модели игроков в этом случае должны соответствовать правилам игры.
Естественно, модели игроков в этом случае должны соответствовать правилам игры.
|functionality=
{{PolylineVersionReference}}


==Известные недостатки==
На данном этапе развития проекта, который "вырос" из предыдущей версии проекта (Release 10) передача прав хода от одного игрока к другому происходит как неявный (глубоко законспирированный) рекурсивный процесс, где "требование" хвостовый рекурсии не выполняется.
Это приводит к тому, что, начиная с некоторых значений произведения '''размер игрового поля'''*'''число игр в режиме сериальных игр''' происходит переполнение  стека вызовов и программа прекращает свое существование.
Поиск способов решения этой проблемы - задача одного из следующих релизов.
==Установка==
'''Для установки и запуска''' проектов семейства Polyline 11 следует:
*Сгрузить архивы
**'''PdcSpbSDK_72_PE_Examples_Polyline11_Classes.zip'''
**'''PdcSpbSDK_72_PE_Examples_Polyline11_Programs.zip'''
используя страницу  форума PDC [http://discuss.visual-prolog.com/viewtopic.php?p=31221#31221 VIP-Средства и Примеры]
*Разархивировать эти архивы в одной и той же директории. Следует иметь в виду, что каждый из архивов создает структуру папок (иногда с повторениями) с корнем PdcSpbSDK. В результате структура всего набора release 11 должна выглядеть так:
[[Image:Polyline11Structure.jpg]]
*Откройте, постройте и запустите проекты, используя только '''VIP 7.2''':
**Polyline11_Console - консоль
**Polyline11_ConsoleLib - то же, но пользовательский интферфейс в виде библиотеки
**Polyline11_ObjectConsole объектно-ориентированная консоль
**Polyline11_ObjectConsoleLib - то же, но пользовательский интферфейс в виде библиотеки
**Polyline11_ObjWindowsLib - windows, пользовательский интферфейс в виде библиотеки
Как и прежде, для построения проектов Polyline11 переменная SpbSolutions среды программирования IDE должна быть определена как маршрут к директории PdcSpbSDK.
Язык приложения определяется помещением в командной строке идентификатора языка:
*ru - русский
*en - английский
==Представления==
{| cellspacing="0" border="1"
{| cellspacing="0" border="1"
|-
|-
Строка 74: Строка 31:
|-
|-
|[[Image:ConsoleSmall.jpg]]
|[[Image:ConsoleSmall.jpg]]
|Построчная организция cценария диалога с пользователем в текстовой форме (на базе концепции PFC/Consol)  
|Построчная организция cценария диалога с пользователем в текстовой форме (на базе концепции PFC/Console)  
|Нет
|Нет
|[http://www.prolog-soft.com/Visual-Prolog/Downloads/consoleMovie.zip Сгрузить и смотреть видео... (архив 640 Kb)]
|[http://www.prolog-soft.com/Visual-Prolog/Downloads/consoleMovie.zip Сгрузить и смотреть видео... (архив 640 Kb)]
Строка 92: Строка 49:


|}
|}
|install={{PolylineInstall}}
|open=
{{Polyline1_10Open|project='''Examples\Polyline\Polyline11\Polyline11.prj'''}}
==Построение==
Ознакомьтесь предварительно с особенностями [[PolylineVersionReference Вашей версии]]
Откройте и постройте проекты:
*Polyline11_Console - консольное приложение
*Polyline11_ObjectConsole объектно-ориентированное консольное приложение
*Polyline11_ObjWindows - Windows PFC/GUI
Выполните командный файл Programs\BuildHumanInterfaceLib.cmd
*Откройте и постройте проекты, использующие библиотеки пользовательских интерфейсов:
*Polyline11_ConsoleLib;
*Polyline11_ObjectConsoleLib;
*Polyline11_ObjWindowsLib
Для построения проектов переменная SpbSolutions должна быть установлена как маршрут к директории, где располагается VipSpbSDK.
Для упрощения начального построения и выполнения всех необходимых настроек имеется командный файл Build.cmd (BuildPersonal.cmd - в зависимости от версии, детали см. в файле VersionReference.html).
Командрый файл Build.cmd:
*настраивает переменную среды программирования IDE SpbSolutions, применительно к условиям установки;
*"знает", где установлена система Visual Prolog и программа VipBuilder.exe;
*производит построение всех проектов, включая проекты в поддиректориях;
*производит построение всех необходимых библиотек;
*осуществляет при необходимости регистрацию PZL-компонентов;
*информирует об успешном или неуспешном завершении каждой операции;
*может быть использован только совместно с версией Visual Prolog CE (детали см в файле VersionReference.html).


=Ссылки=
|run=
[[en:Game Polyline. Release 11]]
{{PolylineRun7_X}}
[[Category:Проекты]]
|enver=
[[Category:Игры]]
[[en:Tutorial Project. Release 11]]
}}

Версия 16:09, 6 апреля 2011

Автор: Виктор Юхтенко. 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)

{

Код

  • Проверено на версии Visual Prolog 7.3 build 7302.
  • Release 11 представляет ряд проектов, которые имеют единую логику игры и управления, но различаются видом пользовательского интерфейса - Соnsole, ObjectConsole, Windows).
  • Некоторые компоненты представляются либо в виде исходных кодов (.PRO) либо в виде библиотек (LIB), написанных на VIP (представлены соответствующие альтернативные проекты). Представлен командный файл (.CMD), позволяющий строить библиотеку пользовательского интерфейса.

При построении библиотек использована программа LIB фирмы Microsoft (Microsoft Linker Stub 7.10.3077), помещенная в директорию 3P_Tools/MSTools.

  • Существенным для проектов семейства release 11 является строгое отделение кода логики от кода, представляющего Пользовательский интерфейс.

Все проекты используют общий набор классов, поддерживающих логику игры и управления конфигурацией игры и ее ходом.

Но каждый проект использует собственную концепцию пользовательского интерфейса. Это дает возможность создавать и другие виды пользовательских интерфейсов, например, основанных на представлениях HTML или XML или даже с использованием других языков, оперирующих элементами пользовательских интерфейсов.

  • Структура кода логики управления конфигурацией и игрой в целом в принципе позволяет использовать логическую часть без изменения для организации класса подобных игр на плоскости, заменяя модуль, отвечающий за соблюдение правил игры (JuniourJudge).

Естественно, модели игроков в этом случае должны соответствовать правилам игры.

Установка

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

  • VipSpbSDK_PE_73_Examples_Polyline_1_14.zip
  • VipSpbSDK_PE_73_Tools_Polyline_1_14.zip]

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

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

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

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

Если у Вас установлен VipSpbSDK, то следует открыть проект Examples\Polyline\Polyline11\Polyline11.prj

Построение

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

  • Polyline11_Console - консольное приложение
  • Polyline11_ObjectConsole объектно-ориентированное консольное приложение
  • Polyline11_ObjWindows - Windows PFC/GUI

Выполните командный файл Programs\BuildHumanInterfaceLib.cmd

  • Откройте и постройте проекты, использующие библиотеки пользовательских интерфейсов:
  • Polyline11_ConsoleLib;
  • Polyline11_ObjectConsoleLib;
  • Polyline11_ObjWindowsLib

Для построения проектов переменная SpbSolutions должна быть установлена как маршрут к директории, где располагается VipSpbSDK.

Для упрощения начального построения и выполнения всех необходимых настроек имеется командный файл Build.cmd (BuildPersonal.cmd - в зависимости от версии, детали см. в файле VersionReference.html).

Командрый файл Build.cmd:

  • настраивает переменную среды программирования IDE SpbSolutions, применительно к условиям установки;
  • "знает", где установлена система Visual Prolog и программа VipBuilder.exe;
  • производит построение всех проектов, включая проекты в поддиректориях;
  • производит построение всех необходимых библиотек;
  • осуществляет при необходимости регистрацию PZL-компонентов;
  • информирует об успешном или неуспешном завершении каждой операции;
  • может быть использован только совместно с версией Visual Prolog CE (детали см в файле VersionReference.html).

Запуск

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