Difference between revisions of "Tutorial Project Evolutions"
m |
m |
||
Line 1: | Line 1: | ||
{{spbCopyright}} | {{spbCopyright}} | ||
==Motivation== | |||
This is an example of the evolution of the project development beginning from the initial idea till the today status. A very easy game has been chosen as the basic idea. We do not know the initial name of this game so we call it Polyline. | |||
Each development step represented as the release, so you can see step by step the evolution of the application. Each release expands the functionality of the application, moving along the way the code is extended, modified and restructured or only restructured and modified. | |||
Looking carefully on the code of each release you can see technique of the using of the Visual Prolog and advanced tools. It can be used to study the Visual Prolog features. | |||
{{PolyLine Game Rules}} | {{PolyLine Game Rules}} | ||
==Before you start== | |||
VipSpbSDK_PE_73_Examples_Polyline is part of the VipSpbSDK. VipSpbSDK - is the set of tools to develop applications based on Visual Prolog from Prolog Development Center A/S | |||
To build and study projects of series you must install [http://www.visual-prolog.com|Visual Prolog programming system] | |||
The reference information regarding the features depending on the vesrion of the Visual Prolog and version of the VipSpb SDK please see in the [[Polyline Version Reference|’’’Version Reference’’’]]. | |||
Short information regarding each release may be found in the table below. | |||
{| cellspacing="0" border="1" | {| cellspacing="0" border="1" | ||
Line 13: | Line 21: | ||
!Release | !Release | ||
!Short Description | !Short Description | ||
!User | !User Interface | ||
{{example_chain | |||
|type=project | |||
|release=14 | |||
|description=[[Tutorial Project. Release 14|The demonstration of the use of the pzl-Technology (DLL-based agreements)]] | |||
|target=Win | |||
}} | |||
{{example_chain | {{example_chain | ||
Line 21: | Line 35: | ||
|description=[[Tutorial Project. Release 13|The demonstration of various ways of the interaction with components placed to DLLs]] | |description=[[Tutorial Project. Release 13|The demonstration of various ways of the interaction with components placed to DLLs]] | ||
|target=Win | |target=Win | ||
}} | }} | ||
Line 29: | Line 42: | ||
|description=[[Tutorial Project. Release 12|Projects family with UI - ObjectConsole, Windows. The game dimension problem solved]] | |description=[[Tutorial Project. Release 12|Projects family with UI - ObjectConsole, Windows. The game dimension problem solved]] | ||
|target=Con/Win | |target=Con/Win | ||
}} | }} | ||
Line 37: | Line 49: | ||
|description=[[Tutorial Project. Release 11|Projects family with different kinds of UI - Console, ObjectConsole, Windows. The usage of Libraries. New Player added.]] | |description=[[Tutorial Project. Release 11|Projects family with different kinds of UI - Console, ObjectConsole, Windows. The usage of Libraries. New Player added.]] | ||
|target=Con/Win | |target=Con/Win | ||
}} | }} | ||
Line 43: | Line 54: | ||
|type=project | |type=project | ||
|release=10 | |release=10 | ||
|description=[[Tutorial Project. | |description=[[Tutorial Project. Releases 10|Code modified. Communication with players based on events. ''NotificationAgency pack'' used.]] | ||
|target=Console | |target=Console | ||
}} | }} | ||
Line 51: | Line 61: | ||
|type=project | |type=project | ||
|release=9 | |release=9 | ||
|description=[[Tutorial Project. | |description=[[Tutorial Project. Releases 9|Code modified. Each class generates the Object.]] | ||
|target=Console | |target=Console | ||
}} | }} | ||
Line 59: | Line 68: | ||
|type=project | |type=project | ||
|release=8 | |release=8 | ||
|description=[[Tutorial Project. | |description=[[Tutorial Project. Releases 8|Code modified. The structure of the project reorganized. Each class placed to the separate package.]] | ||
|target=Console | |target=Console | ||
}} | }} | ||
Line 69: | Line 77: | ||
|description=[[Tutorial Project. Release 7|MultiLanguage feature. The code reorganized.]] | |description=[[Tutorial Project. Release 7|MultiLanguage feature. The code reorganized.]] | ||
|target=Console | |target=Console | ||
}} | }} | ||
Line 77: | Line 84: | ||
|description=[[Tutorial Project. Release 6|Multiple plays mode. Easy expansion of the list of players. The size of the field mutable. The code reorganized.]] | |description=[[Tutorial Project. Release 6|Multiple plays mode. Easy expansion of the list of players. The size of the field mutable. The code reorganized.]] | ||
|target=Console | |target=Console | ||
}} | }} | ||
Line 86: | Line 92: | ||
|target=Console | |target=Console | ||
|pe='''+''' | |pe='''+''' | ||
{{example_chain | {{example_chain | ||
Line 93: | Line 98: | ||
|description=[[Tutorial Project. Release 4|Safe computer's move - random. The code of the player-computer restructured.]] | |description=[[Tutorial Project. Release 4|Safe computer's move - random. The code of the player-computer restructured.]] | ||
|target=Console | |target=Console | ||
}} | }} | ||
Line 101: | Line 105: | ||
|description=[[Tutorial Project. Release 3|N players. The type of the player (computer or human) - by choice.]] | |description=[[Tutorial Project. Release 3|N players. The type of the player (computer or human) - by choice.]] | ||
|target=Console | |target=Console | ||
}} | }} | ||
Line 109: | Line 112: | ||
|description=[[Tutorial Project. Release 2|Players - objects. The initial move of the computer - random.]] | |description=[[Tutorial Project. Release 2|Players - objects. The initial move of the computer - random.]] | ||
|target=Console | |target=Console | ||
}} | }} | ||
Line 117: | Line 119: | ||
|description=[[Tutorial Project. Release 1|Players: computer and human. The initial move by choice.]] | |description=[[Tutorial Project. Release 1|Players: computer and human. The initial move by choice.]] | ||
|target=Console | |target=Console | ||
}} | }} | ||
|} | |} | ||
==Building notes== | |||
{{TestedWithEn}} | |||
Releases 1-7 projects may be easily created by copying the code directly from the wiki pages. | |||
Since Release 8 you need to download the set of projects. | |||
Releases 1-9 projects may be built one by one without any tricks. | |||
Since Release 10 all projects use SpbSolutions IDE variable, which must refer to the VipSpbSDK directory. | |||
Since Release 11 some projects demonstrate building libraries, thus user must have Microsoft lib.exe program tool (see details in the release appropriate Readme.html file). | |||
Some Projects since Release 13 demonstrate and use the DLL creation. So these projects must be built using VIP CE only (please see details in [[SpbSdk Examples Polyline Version Reference|VersionReference]]). | |||
Projects placed to the Release 14 (Polyline14) PzlBasedApplication folder need to run the registration procedure after building all projects placed to the Containers directory. This must be done using the Programs\pzlBasedApplication\RegisterComponents.cmd command file. | |||
{{PolylineBuildCMD}} | |||
[[Category:Examples]] | [[Category:Examples]] |
Revision as of 19:18, 12 April 2011
Written by Victor Yukhtenko. Email: victor@pdc.spb.su
Motivation
This is an example of the evolution of the project development beginning from the initial idea till the today status. A very easy game has been chosen as the basic idea. We do not know the initial name of this game so we call it Polyline.
Each development step represented as the release, so you can see step by step the evolution of the application. Each release expands the functionality of the application, moving along the way the code is extended, modified and restructured or only restructured and modified.
Looking carefully on the code of each release you can see technique of the using of the Visual Prolog and advanced tools. It can be used to study the Visual Prolog features.
Game description
- The game is played on an M x N board.
Game rules
- Each player on his turn adds a new point. The point must prolong the existing Polyline (or start the Polyline, if it doesn't exist).
- The resulting Polyline must be non-interrupted and each move can be taken in any of end of the line.
- The player, which locks the line (the point is set on the polyline), wins.
Before you start
VipSpbSDK_PE_73_Examples_Polyline is part of the VipSpbSDK. VipSpbSDK - is the set of tools to develop applications based on Visual Prolog from Prolog Development Center A/S To build and study projects of series you must install Prolog programming system
The reference information regarding the features depending on the vesrion of the Visual Prolog and version of the VipSpb SDK please see in the ’’’Version Reference’’’. Short information regarding each release may be found in the table below.
Building notes
Releases 1-7 projects may be easily created by copying the code directly from the wiki pages. Since Release 8 you need to download the set of projects.
Releases 1-9 projects may be built one by one without any tricks.
Since Release 10 all projects use SpbSolutions IDE variable, which must refer to the VipSpbSDK directory.
Since Release 11 some projects demonstrate building libraries, thus user must have Microsoft lib.exe program tool (see details in the release appropriate Readme.html file).
Some Projects since Release 13 demonstrate and use the DLL creation. So these projects must be built using VIP CE only (please see details in VersionReference).
Projects placed to the Release 14 (Polyline14) PzlBasedApplication folder need to run the registration procedure after building all projects placed to the Containers directory. This must be done using the Programs\pzlBasedApplication\RegisterComponents.cmd command file.
To build projects the IDE variable SpbSolutions must be set to the VipSpbSDK directory.
The complex building
To simplify the settings and initial building of applicaions the Build.cmd command file included (BuildPersonal.cmd - please see details in Polyline Version Reference or in Examples\Polyline\VersionReference.html).
The use of Build.cmd file:
- sets the SpbSolutions IDE variable, which refers to the VipSpb SDK directory;
- "knows" where Visual Prolog is installed and uses VipBuilder.exe;
- builds all projects containing in the subfolders;
- builds all needed libraries;
- registers all pzl-Components (if needed);
- informs regarding the result of each building operation;
- Build.cmd file may be used together with the Visual Prolog CE only (please see details in Polyline Version Reference or in Examples\Polyline\VersionReference.html).