Писал код и возникла такая проблема, помогите решить пожалуйста Python
File "E:\pythonProject\Новая папка\pythonProject\main.py", line 50, in <module>
p0 = Planet(400, 400, 'red')
TypeError: Planet() takes no arguments
Вот ошибка
from tkinter import *
import math
G = 6.67 * 10**-11
class Planet:
def __int__(self, x, y, color):
self.coords = [x, y]
self.size = (20, 20)
self.mass = 1 * 10**24
self.color = color
self.velocity = [0, 0]
self.ball = c.create_oval(self.coords[0] - self.size[0]/2,
self.coords[1] - self.size[1]/2,
self.coords[0] + self.size[0]/2,
self.coords[1] + self.size[1]/2,
fill=color)
def do_force(self, *planets):
for p in planets:
delta = pow(10, 12)
vector = [p.coords[0] - self.coords[0], p.coords[1] - self.coords[1]]
vector_length = math.sqrt(pow(vector[0], 2) + pow(vector[1], 2))
if vector[0] == 0:
alpha = math.pi / 2
elif vector[0] < 0:
alpha = math.atan(vector[1] / vector[0]) + math.pi
else:
alpha = math.atan(vector[1] / vector[0])
if vector_length < self.size[0]:
vector_length = self.size[0]
F = G * self.mass * p.mass / pow(vector_length, 2)
Fx = F * math.cos(alpha)
Fy = F * math.sin(alpha)
self.velocity[0] += Fx / self.mass / delta
self.velocity[1] += Fy / self.mass / delta
def move(self):
x = self.velocity[0]
y = self.velocity[1]
prev = [self.coords[0], self.coords[1]]
self.coords[0] += x
self.coords[1] += y
c.move(self.ball, x, y)
c.create_line(prev[0], prev[1], self.coords[0], self.coords[1], fill=self.color, width=3)
root = Tk()
c = Canvas(root, width = 800, height = 800, bg = 'gray')
c.pack()
p0 = Planet(400, 400, 'red')
p1 = Planet(100, 200, 'yellow')
p2 = Planet(20, 50, 'blue')
while True:
root.update()
p0.do_force(p1, p2)
p1.do_force(p0, p2)
p2.do_force(p0, p1)
p0.move()
p1.move()
p2.move()
root.mainloop()
Источник: Stack Overflow на русском