Final exam version with mass and speed

This commit is contained in:
2026-06-25 14:05:11 +03:00
parent b03800ab63
commit b3c86d92eb
8 changed files with 205 additions and 48 deletions

View File

@@ -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)