Let's make a planetary system!
- Create a
Planet
class with a name attribute. - You should be able to instantiate a new
Planet
object with an associated name.
- Get creative! Give each instance of
Planet
at least five attributes. These could be diameters, mass, moons... whatever! - Allow these attributes to be set using a hash in
initialize
. - You should be able to create many different planets with different properties, like Mercury, Venus, Earth, Mars, Jupiter, etc.
- Give each planet a rate of solar rotation
- Give each planet a
@distance_from_the_sun
attribute - Write a program that asks for user input to query the planets:
- First, ask the user to select a planet they'd like to learn about.
- Present the user with a list of planets from which they can choose. Something like:
1. Mercury, 2. Venus, 3. Earth, 4. Secret Earth, 5. Mars, 6. Jupiter, ... 13. Exit
- Provide the user with well formatted information about the planet (diameter, mass, number of moons, primary export, etc.)
- Then ask the user for another planet.
- Create a
SolarSystem
class that has an attributeplanets
that has zero to manyPlanet
instances. There are a few different options for how to associate the planets with your solar system:- Initialize the list of planets in the constructor of the solar system
- Create a method that adds a single planet to a solar system
- Create a method that adds a list of planets to the existing list of planets
- Ensure that the each planet has a
@distance_from_the_sun
attribute. Using this data, add a method to determine the distance from any other planet (assuming planets are in a straight line from the sun) - Give your solar system a formation year (in earth years).
- Define a method that returns the local year of the planet based on it's rotation since the beginning of the solar system