From 744d081018517c57aa3d03a52f21d74592d73d2b Mon Sep 17 00:00:00 2001 From: Jessica Chan Date: Wed, 23 Sep 2020 01:47:17 -0700 Subject: [PATCH 1/5] completed Wave 1 by doing planet.rb and main.rb --- main.rb | 12 ++++++++++++ planet.rb | 18 ++++++++++++++++++ 2 files changed, 30 insertions(+) create mode 100644 main.rb create mode 100644 planet.rb diff --git a/main.rb b/main.rb new file mode 100644 index 00000000..3671f6f5 --- /dev/null +++ b/main.rb @@ -0,0 +1,12 @@ +require_relative 'planet' + +def main + tatooine = Planet.new('Tatooine', 'orange-ish', 6.34e48, 1.29e13, 'has two moons') + pluto = Planet.new('Pluto', 'purple', 10, 2.8e293, 'counts as a planet in some books') + + puts "#{tatooine.name} is #{tatooine.color} and #{tatooine.fun_fact}." + puts "#{pluto.name} has a mass of #{pluto.mass_kg} kgs and #{pluto.fun_fact}." + puts "#{tatooine.summary}" +end + +main \ No newline at end of file diff --git a/planet.rb b/planet.rb new file mode 100644 index 00000000..dda966f0 --- /dev/null +++ b/planet.rb @@ -0,0 +1,18 @@ +class Planet + + attr_reader :name, :color, :mass_kg, :distance_from_sun_km, :fun_fact + + def initialize (name, color, mass_kg, distance_from_sun_km, fun_fact) + @name = name + @color = color + @mass_kg = mass_kg + @distance_from_sun_km = distance_from_sun_km + @fun_fact = fun_fact + end + + def summary + return "#{@name} is #{@color}, has a mass of #{@mass_kg} kg, is #{@distance_from_sun_km} km from the sun and #{@fun_fact}" + end + + +end \ No newline at end of file From c82854f627d29550fec95525ba6e3aa91c137721 Mon Sep 17 00:00:00 2001 From: Jessica Chan Date: Wed, 23 Sep 2020 03:31:01 -0700 Subject: [PATCH 2/5] completed wave 2 by addinng solar_system.rb --- main.rb | 27 ++++++++++++++++++++++++--- solar_system.rb | 22 ++++++++++++++++++++++ 2 files changed, 46 insertions(+), 3 deletions(-) create mode 100644 solar_system.rb diff --git a/main.rb b/main.rb index 3671f6f5..5017effb 100644 --- a/main.rb +++ b/main.rb @@ -1,12 +1,33 @@ require_relative 'planet' +require_relative 'solar_system' def main + solar_system = SolarSystem.new('Zeus') tatooine = Planet.new('Tatooine', 'orange-ish', 6.34e48, 1.29e13, 'has two moons') pluto = Planet.new('Pluto', 'purple', 10, 2.8e293, 'counts as a planet in some books') + solar_system.add_planet(tatooine) + solar_system.add_planet(pluto) + list = solar_system.list_planets + found_planet = solar_system.find_planet_by_name('Pluto') + + puts found_planet.summary + + # puts "#{tatooine.name} is #{tatooine.color} and #{tatooine.fun_fact}." + # puts "#{pluto.name} has a mass of #{pluto.mass_kg} kgs and #{pluto.fun_fact}." + # puts "#{tatooine.summary}" + puts list + +end + +def control_loop + puts "Please choose one of these options: +1. List Planets +2. Get Planet Details +3. Add Planet" + + # option = gets.chomp - puts "#{tatooine.name} is #{tatooine.color} and #{tatooine.fun_fact}." - puts "#{pluto.name} has a mass of #{pluto.mass_kg} kgs and #{pluto.fun_fact}." - puts "#{tatooine.summary}" end +control_loop main \ No newline at end of file diff --git a/solar_system.rb b/solar_system.rb new file mode 100644 index 00000000..08f7a540 --- /dev/null +++ b/solar_system.rb @@ -0,0 +1,22 @@ +class SolarSystem + attr_reader :star_name, :planets + + def initialize(star_name) + @star_name = star_name + @planets = [] + end + + def add_planet(planet) + @planets << planet + end + + def list_planets + planets_output = "Planets orbiting #{@star_name}\n" + @planets.each_with_index {|planet, i| planets_output += "#{i+1}. #{planet.name}\n"} + return planets_output + end + + def find_planet_by_name(find_planet) + @planets.each {|planet| return planet if planet.name.downcase == find_planet.downcase} + end +end \ No newline at end of file From 164fc541d7365a4d91698e8d46aad27a74e16fea Mon Sep 17 00:00:00 2001 From: Jessica Chan Date: Wed, 23 Sep 2020 04:16:38 -0700 Subject: [PATCH 3/5] rough draft of wave 3 --- main.rb | 42 ++++++++++++++++++++++++++++-------------- 1 file changed, 28 insertions(+), 14 deletions(-) diff --git a/main.rb b/main.rb index 5017effb..ac7f6876 100644 --- a/main.rb +++ b/main.rb @@ -1,6 +1,14 @@ require_relative 'planet' require_relative 'solar_system' +# def create_solar_system +# solar_system = SolarSystem.new('Zeus') +# tatooine = Planet.new('Tatooine', 'orange-ish', 6.34e48, 1.29e13, 'has two moons') +# pluto = Planet.new('Pluto', 'purple', 10, 2.8e293, 'counts as a planet in some books') +# solar_system.add_planet(tatooine) +# solar_system.add_planet(pluto) +# end + def main solar_system = SolarSystem.new('Zeus') tatooine = Planet.new('Tatooine', 'orange-ish', 6.34e48, 1.29e13, 'has two moons') @@ -8,26 +16,32 @@ def main solar_system.add_planet(tatooine) solar_system.add_planet(pluto) list = solar_system.list_planets - found_planet = solar_system.find_planet_by_name('Pluto') - puts found_planet.summary + option = "" - # puts "#{tatooine.name} is #{tatooine.color} and #{tatooine.fun_fact}." - # puts "#{pluto.name} has a mass of #{pluto.mass_kg} kgs and #{pluto.fun_fact}." - # puts "#{tatooine.summary}" - puts list + until option == "exit" + puts "Please choose one of these options: + 1. list planets + 2. get planet details + 3. add planet + 4. exit" -end + option = gets.chomp.downcase -def control_loop - puts "Please choose one of these options: -1. List Planets -2. Get Planet Details -3. Add Planet" + case option + when 'list planets' + puts list + when 'get planet details' + puts "Which planet's details do you want to know? " + get_planet = gets.chomp + puts solar_system.find_planet_by_name(get_planet).summary - # option = gets.chomp + when 'add planet' + puts 'Please enter new planet details' + solar_system.add_planet(Planet.new(gets.chomp, gets.chomp, gets.chomp.to_f, gets.chomp.to_f, gets.chomp)) + end + end end -control_loop main \ No newline at end of file From 918613b394a75ab2be0057cdbe5f7dbcf5c96cb0 Mon Sep 17 00:00:00 2001 From: Jessica Chan Date: Wed, 23 Sep 2020 04:23:47 -0700 Subject: [PATCH 4/5] fixed list planets; all options work, but no input validation --- main.rb | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/main.rb b/main.rb index ac7f6876..cf08d9b5 100644 --- a/main.rb +++ b/main.rb @@ -1,21 +1,12 @@ require_relative 'planet' require_relative 'solar_system' -# def create_solar_system -# solar_system = SolarSystem.new('Zeus') -# tatooine = Planet.new('Tatooine', 'orange-ish', 6.34e48, 1.29e13, 'has two moons') -# pluto = Planet.new('Pluto', 'purple', 10, 2.8e293, 'counts as a planet in some books') -# solar_system.add_planet(tatooine) -# solar_system.add_planet(pluto) -# end - def main solar_system = SolarSystem.new('Zeus') tatooine = Planet.new('Tatooine', 'orange-ish', 6.34e48, 1.29e13, 'has two moons') pluto = Planet.new('Pluto', 'purple', 10, 2.8e293, 'counts as a planet in some books') solar_system.add_planet(tatooine) solar_system.add_planet(pluto) - list = solar_system.list_planets option = "" @@ -30,12 +21,11 @@ def main case option when 'list planets' - puts list + puts solar_system.list_planets when 'get planet details' puts "Which planet's details do you want to know? " get_planet = gets.chomp puts solar_system.find_planet_by_name(get_planet).summary - when 'add planet' puts 'Please enter new planet details' solar_system.add_planet(Planet.new(gets.chomp, gets.chomp, gets.chomp.to_f, gets.chomp.to_f, gets.chomp)) From 1aa291660806dc54dea54e6bc03e28d3b2509dba Mon Sep 17 00:00:00 2001 From: Jessica Chan Date: Wed, 23 Sep 2020 04:44:47 -0700 Subject: [PATCH 5/5] added input prompts for 'add planet' --- main.rb | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/main.rb b/main.rb index cf08d9b5..6bfd99c6 100644 --- a/main.rb +++ b/main.rb @@ -20,15 +20,25 @@ def main option = gets.chomp.downcase case option - when 'list planets' + when "list planets" puts solar_system.list_planets - when 'get planet details' + when "get planet details" puts "Which planet's details do you want to know? " get_planet = gets.chomp puts solar_system.find_planet_by_name(get_planet).summary - when 'add planet' - puts 'Please enter new planet details' - solar_system.add_planet(Planet.new(gets.chomp, gets.chomp, gets.chomp.to_f, gets.chomp.to_f, gets.chomp)) + when "add planet" + puts "Please enter new planet name" + name = gets.chomp + puts "Enter planet color" + color = gets.chomp + puts "Enter planet mass" + mass = gets.chomp.to_f + puts "Enter planet distance from sun" + distance = gets.chomp + puts "Enter a fun fact about the planet" + fact = gets.chomp + + solar_system.add_planet(Planet.new(name, color, mass, distance, fact)) end end