Development Plan
I have divided my development of Solitaire Pack into three main parts:
- General Application Functionality
- Implementation of the Solpack Engine
- Implementation of the Game Library
In order to spread the actual development over a longer period, I will be starting on programming "General Application
Functionality" right away, while continuing the design process for the engine and the games.
Specifically, general application functionality covers the following areas:
- The application object (CSolpackApp) (not to be confused with the engine, which implements ISolpackApp)
- Generic main window functionality (CMainWindow)
- The Instructions help pane (CHelpPane)
- The main WebBrowser control (CBrowserContainer)
- A generic Game Menuing system (CGameMenu), not using actual game data though
- Loading, storing, and modifying user preferences (CUserPrefs)
- Handling user registration
- The window status bar (CStatusBar)
- The 3D animation for when a game is won.
The Solpack engine functionality covers the following areas:
- The main engine object (CEngine), which implements the ISolpackApp interface.
- The pile objects (CPile), which implement the ISolpackPile interface.
- The card objects (CCard), which implement the ISolpackCard interface.
- Event handlers to detect mouse movement, clicks, and releases and direct messages to the game.
- The fragment object (CFragment), which implements the ISolpackFragment interface.
- Various Undo/Redo classes and functions.
The Game Library will cover the following areas:
- The library object (CGameLib), which implements the ISolpackGameLib interface.
- The array of static game information (CGameInfo).
- The CGameBase class, which provides common game implementation, and implements the ISolpackGame
interface.
- The CGameLaBelleLucie class, extending the CGameBase class to provide specific rules for La Belle Lucie.
- The CGameSpider class, extending the CGameBase class to provide specific rules for Spider.
|