Difference between revisions of "Tutorial Project. Release 11"

From wiki.visual-prolog.com

m
m
Line 78: Line 78:
To install and run the set of projects of the Release 11:  
To install and run the set of projects of the Release 11:  
*Download archives
*Download archives
**'''PdcSpbSDK_72_PE_Examples_Polyline11_Classes.zip'''  
**'''SpbVipSDK_73_PE_Examples_Polyline11_Classes.zip'''  
**'''PdcSpbSDK_72_PE_Examples_Polyline11_Programs.zip''',
**'''SpbVipSDK_73_PE_Examples_Polyline11_Programs.zip''',


using the PDC forum page [http://discuss.visual-prolog.com/viewtopic.php?p=31221#31221 VIP-Tools and Examples]
using the PDC forum page [http://discuss.visual-prolog.com/viewtopic.php?p=31221#31221 VIP-Tools and Examples]
Line 86: Line 86:
[[Image:Polyline11Structure.jpg]]
[[Image:Polyline11Structure.jpg]]


*Open, build and run (using '''VIP 7.2'''):
*Open, build and run (using '''VIP 7.3'''):
**Polyline11_Console - console
**Polyline11_Console - console
**Polyline11_ConsoleLib - the same but the User Interface placed to the library
**Polyline11_ConsoleLib - the same but the User Interface placed to the library

Revision as of 07:13, 5 June 2010

Written by Victor Yukhtenko. Email: victor@pdc.spb.su

The programs listed below are part of the Tutorial Project Evolutions article.

Game Rules ...

Features

user interfaces

Release 11 is the set of projects, which has the same game logic organization, but differs by the User Interface type - Соnsole, ObjectConsole, Windows (the implementation of the Windows-based HumanInterface represented in the library (.lib) in the Personal Edition).

the use of VIP-based libraries

Some components are represented same time as the source code (.PRO) and as the libraries (.LIB). Alternative projects presented in the Release 11. The text of the appropriate .CMD file to build libraries also presented.

To build libraries the application lib (Microsoft Linker Stub 7.10.3077) has been used.

logic and UI strongly separated

In all projects of the Release 11 the code, representing the logic and the code representing the User Interface are strongly separated.

All Projects of the Release 11 family use the common set of classes, which supports the logic of the game, configuration settings and the game managing.

The same time each project uses its own concept of the User Interface. It makes the possibility to create other user interface implementations and to use other UI concepts based say on HTML or XML. It is possible even to use other programming languages to create User Interface.

some hints on the universality

The structure of the code of the common used logical part gives the possibility to use the logical part with no change to organize the set of similar flat games. The only one JuniourJudge module must be replaced by the module with the same class name and interface and with the new rules support.

The new models of players must be created accordingly.

the new model of the player added

The new model of the player Computer3 created. This model is included as the library representation Computer3.lib.

This model is not the best, but it is one of possible models. We do not show its source code not because of it contains some Know-How.

The librarian representation gives the possibility first to show the competition of two different computer models on the big size boards. The second, it gives the possibility to make pair and group competitions of computer models with the hidden code, created by different people. And here the model Computer3.lib is one of them.

Known problems

The Release 11 set of projects has been grown on the basis of Release 10 project. The interaction between players is organized as the hidden (deeply recursive) process, where the tail recursion demand is not fulfilled.

Because of this reason after some value of the multiplication board size*amount of games in the serial games the call stack is overloaded and the application disappears.

The fixing of this problem will be the goal of one of the future releases.

Visual Demonstration

Picture Description Details Video
ConsoleSmall.jpg LineByLine User Interaction scenario organization. Ordinary Console strategy.

Multilingual support.

No details Download and see Movie... (Zip archive 640 Kb)
ObjectConsoleSmall.jpg Object-oriented Console. Based on interface components like PushButton, EditConrol etc., mouse based handling User-centered interaction.

Built on the PFC/Console. The concept is similar to PFC/GUI, including the event driven organization.

No multilingual support.

More Details ... Download and see Movie... (Zip archive 2.33 Mb)
ObjectWinSmall.jpg Windows-based User Interface. PFC/GUI concept used.

No multilingual support.

No details Download and see Movie... (Zip archive 2.9 Mb)

Download and Install

To install and run the set of projects of the Release 11:

  • Download archives
    • SpbVipSDK_73_PE_Examples_Polyline11_Classes.zip
    • SpbVipSDK_73_PE_Examples_Polyline11_Programs.zip,

using the PDC forum page VIP-Tools and Examples

  • Extract archives listed above to the same directory. You should have in mind, that each of the archives creates the structure of the folders with the root PdcSpbSDK. Repetitions are possible. The result the structure of the Release 11 should look like:

Polyline11Structure.jpg

  • Open, build and run (using VIP 7.3):
    • Polyline11_Console - console
    • Polyline11_ConsoleLib - the same but the User Interface placed to the library
    • Polyline11_ObjectConsole object-oriented console
    • Polyline11_ObjectConsoleLib - the same but the User Interface placed to the library
    • Polyline11_ObjWindowsLib - Windows PFC/GUI, the User Interface placed to the library

As before to build projects of the Polyline11 release the IDE variable SpbSolutions must be set to the PdcSpbSDK directory.

Run

The language of the application, if supported, may be defined in the command line by the language identifier:

  • en - English
  • ru - Russian