Orbit-Simulator
Orbit-Simulator copied to clipboard
Exception when a very small planet is attracted by a large one and has a considerable speed
Exception Details
Traceback (most recent call last):
File "C:\Users\iker\Downloads\Orbit-Simulator-master\Orbit-Simulator-master\main.py", line 259, in <module>
planet.update()
File "C:\Users\iker\Downloads\Orbit-Simulator-master\Orbit-Simulator-master\main.py", line 76, in update
Particle(
File "C:\Users\iker\Downloads\Orbit-Simulator-master\Orbit-Simulator-master\main.py", line 179, in __init__
self.radius = random.randint(min_radius, max_radius)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\iker\AppData\Local\Programs\Python\Python312\Lib\random.py", line 336, in randint
return self.randrange(a, b+1)
^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\iker\AppData\Local\Programs\Python\Python312\Lib\random.py", line 319, in randrange
raise ValueError(f"empty range in randrange({start}, {stop})")
ValueError: empty range in randrange(1, 1)
Steps to reproduce
- Create a big planet
- Create a small planet far from the big one (try to make the click as short as possible)
Possible Solutions
Solution 1
in planet.update(), replace:
particles.append(
Particle(
self.x,
self.y,
[np.subtract(self.color, (35, 35, 35))],
1,
int(-self.velocity[0]),
1,
int(-self.velocity[1]),
1,
int(self.radius / 1.5),
0.4,
0,
)
)
with
particles.append(
Particle(
self.x,
self.y,
[np.subtract(self.color, (35, 35, 35))],
1,
int(-self.velocity[0]),
1,
int(-self.velocity[1]),
1,
max(1, int(self.radius / 1.5)),
0.4,
0,
)
)
Solution 2
in particle.__init__(), replace:
self.radius = random.randint(min_radius, max_radius)
with
self.radius = random.randint(min(min_radius, max_radius), max(min_radius, max_radius))