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

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

м (Новая: Очередная версия Учебного проекта, функциональной идеей которого является простая игра. [[Игра "Полз...)
(нет различий)

Версия 19:27, 3 октября 2009

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

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

Цель

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

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

Особенности

разные интерфейсы

Release 11 представляет ряд проектов, которые имеют единую логику игры и управления, но различаются видом пользовательского интерфейса - Соnsole, ObjectConsole, Windows (в Персональной версии классы, представляющие пользовательский интерфейс Windows, помещены в библиотеку (.lib)).

использование библиотек на базе VIP

Некоторые компоненты представляются либо в виде исходных кодов (.PRO) либо в виде библиотек (LIB), написанных на VIP (представлены соответствующие альтернативные проекты). Представлен командный файл (.CMD), позволяющий строить библиотеку пользовательского интерфейса.

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

отделение логики от интерфейса

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

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

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

намеки на универсализм

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

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

новая модель игрока

В Release 11 к использовавшимся ранее моделям добавлена новая модель игрока - Computer3, которая представляется библиотекой Computer3.lib.

Эта модель не лучшая, но одна из возможных. Ее код не раскрывается не потому, что она содержит кокое-то Know-How.

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

Известные недостатки

На данном этапе развития проекта, который "вырос" из предыдущей версии проекта (Release 10) передача прав хода от одного игрока к другому происходит как неявный (глубоко законспирированный) рекурсивный процесс, где "требование" хвостовый рекурсии не выполняется.

Это приводит к тому, что, начиная с некоторых значений произведения размер игрового поля*число игр в режиме сериальных игр происходит переполнение стека вызовов и программа прекращает свое существование.

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


Установка

Для установки и запуска проектов семейства Polyline 11 следует:

  • Сгрузить архивы
    • PdcSpbSDK_72_PE_Examples_Polyline11_Classes.zip
    • PdcSpbSDK_72_PE_Examples_Polyline11_Programs.zip

используя страницу форума PDC VIP-Средства и Примеры

  • Разархивировать эти архивы в одной и той же директории. Следует иметь в виду, что каждый из архивов создает структуру папок (иногда с повторениями) с корнем PdcSpbSDK. В результате структура всего набора release 11 должна выглядеть так:

Polyline11Structure.jpg

  • Откройте, постройте и запустите проекты, используя только VIP 7.2:
    • Polyline11_Console - консоль
    • Polyline11_ConsoleLib - то же, но пользовательский интферфейс в виде библиотеки
    • Polyline11_ObjectConsole объектно-ориентированная консоль
    • Polyline11_ObjectConsoleLib - то же, но пользовательский интферфейс в виде библиотеки
    • Polyline11_ObjWindowsLib - windows, пользовательский интферфейс в виде библиотеки

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

Язык приложения определяется помещением в командной строке идентификатора языка:

  • ru - русский
  • en - английский

Представления

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

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

Cм. детали... Сгрузить и смотреть видео... (архив 2.33 Mb)
ObjectWinSmall.jpg Стандартный для Windows пользовательский интерфейс на базе концепции PFC/GUI. Нет Сгрузить и смотреть видео... (архив 2.9 Mb)

Ссылки