Project 2 / TrainFramework

CS559 Train Project - Framework Code

written October 2008, by Mike Gleicher

This provides a framework for the CS559 Train Project . It is a simple system that provides all of the basic features so that students can add their own train and other features. The user interface for this project is described at TrainUI.

This code also serves as the basis for the example solution. When the macro "EXAMPLE_SOLUTION" is defined, a few extra files are included. These files are not provided to the students.

The source code for the framework is available in TrainProject2009_1026.zip. Note that the version date (here Oct 26) is in the file name. If newer versions are released they will be announced.

The executable for the framework is TrainFramework.exe. This is what you should get if you build the code. The example solution is available as TrainExample2009.exe.

We strongly recommend that you start by playing with the example solution to get an idea of what the assignment is about.

Getting things to compile

The visual studio project is set up to use the FLTKHOME environment variable. Before running visual studio, make sure that this variable points to the root of your FLTK installation.

Files

Most of the files are in the "TrainFiles" directory. A few utility files are in the "Utilities" directory that muse be placed in the same directory as the TrainFiles directory. (the zip file should get this right)

There is a "TrackFiles" directory inside of the TrainFiles directory that contains sample track layouts.

Getting Started and Learning your way Around

First, run the example solution and try it out. Look at the ReadMe-UI.txt file for help in using it.

Then open up the solution and have a look. If you search for "TODO:" you will see places in the code that we expect you to want to add your own things.

You don't need to understand everything - you can do the entire assignment just by adding things where we day "TODO". In fact, you can see all of the places where the Example Solution (which is relatively complete) had to add things to the code.

Some Hints:

Known issues (this list will probably grow...)