My friend and I are planning on starting a Warhammer 40K campaign, and I thought it might present an opportunity for me to put my (limited) C++ skill to work. However, I'm finding it much more difficult to get it started, and I figured I could bounce it off the community for suggestions, ideas, and advice.
Basically, I need the program to simulate the galaxy for us. I started a program, but I'm not sure my design is capable of what I need it to do. Here's what I have:
I want Main to start by creating the galaxy. It will run through a 3 dimensional array and create Solar Systems. Each Solar System will consist of 2 to 12 planets, and each planet will consist of 3 to 7 territories. Subsequent uses of the program will allow us to pull specific locations on the galactic map, as well as run through each solar system to determine random events such as planetary catastrophes, invasions, etc.
I figure I'll have at least these classes:
A Galaxy class that holds a three dimensional array of Solar Systems.
A Solar System class that holds whether the system has been discovered, number of planets, controlling race, and other undetermined details.
A Planet class that holds 3-7 territories, a controlling race, climate, environmental details, etc.
A Territory class that holds resources per turn, strategic bonuses, and controlling factions.
From a generalized standpoint, do you have any suggestions on how you would go about doing this? Are there any specific programming practices that I'll need (for example: arrays are obvious, and classes, I can see inheritance being useful, but not necessary . . . ) ? Is it efficient to have Galaxy holding a 3 dimensional array of Solar Systems (I'm particularly uncertain about the areas of the array that simply don't have a Solar System, wouldn't this setup be allotting memory for a Solar System even though it should be non-existent?)? Or would it be better to have it hold a bool (true = a solar system exists, false = undiscovered area) and an int (the int would be an index so we know which solar system is there)?
Anyway, I don't want to make the post too long. I appreciate any suggestions, and, at the very least, hopefully it will bring up some new ideas and challenges for me and like-leveled programmers.