Final exam version with mass and speed
This commit is contained in:
@@ -18,6 +18,7 @@ TICKET_CONFIG = {
|
||||
"first_orbit": 48,
|
||||
"orbit_step": 24,
|
||||
"color": (255, 190, 40),
|
||||
"mass": 1.989e30,
|
||||
},
|
||||
{
|
||||
"name": "Star 2",
|
||||
@@ -26,6 +27,7 @@ TICKET_CONFIG = {
|
||||
"first_orbit": 58,
|
||||
"orbit_step": 38,
|
||||
"color": (255, 150, 55),
|
||||
"mass": 1.750e30,
|
||||
},
|
||||
],
|
||||
"rules": {
|
||||
@@ -50,7 +52,14 @@ class SolarSystem:
|
||||
self.stars = []
|
||||
|
||||
for star_data in TICKET_CONFIG["stars"]:
|
||||
star = Star(0, 0, radius=34, color=star_data["color"], name=star_data["name"])
|
||||
star = Star(
|
||||
0,
|
||||
0,
|
||||
radius=34,
|
||||
color=star_data["color"],
|
||||
name=star_data["name"],
|
||||
mass=star_data["mass"],
|
||||
)
|
||||
planet_count = star_data["planet_count"]
|
||||
planets_per_orbit = star_data["planets_per_orbit"]
|
||||
orbit_count = math.ceil(planet_count / planets_per_orbit)
|
||||
@@ -67,7 +76,16 @@ class SolarSystem:
|
||||
break
|
||||
|
||||
angle = base_angle + place * (2 * math.pi / planets_per_orbit)
|
||||
planet = Planet(star, orbit_number, orbit_radius, angle, speed, direction)
|
||||
planet_mass = random.uniform(3.0e24, 8.0e24)
|
||||
planet = Planet(
|
||||
star,
|
||||
orbit_number,
|
||||
orbit_radius,
|
||||
angle,
|
||||
speed,
|
||||
direction,
|
||||
mass=planet_mass,
|
||||
)
|
||||
star.add_planet(planet)
|
||||
created += 1
|
||||
|
||||
@@ -115,3 +133,9 @@ class SolarSystem:
|
||||
objects.append(star)
|
||||
objects.extend(star.planets)
|
||||
return objects
|
||||
|
||||
def get_total_mass(self):
|
||||
return sum(obj.mass for obj in self.get_all_objects())
|
||||
|
||||
def get_planet_count(self):
|
||||
return sum(len(star.planets) for star in self.stars)
|
||||
|
||||
Reference in New Issue
Block a user