Есть ли способ расширить этот код для определенного пользователем количества объектов? - PullRequest
0 голосов
/ 06 ноября 2019

Нам дали домашнее задание, которое потребовало от нас моделирования проблемы преследования классических мышей. https://en.wikipedia.org/wiki/Mice_problem. Я написал код для симуляции мышей в 3-х гон, то есть в треугольнике. Я также могу легко добавить других мышей вручную, чтобы имитировать мышей на вершинах квадрата. Этого вполне достаточно для домашней работы, но я пытаюсь сделать в этой программе то, что я хотел бы создать симуляцию из n мышей, где у пользователя есть свобода выбора любого произвольного n.

Myкод (In VPython) :

#instantiating objects

s1 = sphere(pos=vector(0,0,0), radius=0, make_trail='True', trail_color=color.red)
s2 = sphere(pos=vector(2,0,0), radius=0, make_trail='True', trail_color=color.blue)
s3 = sphere(pos=vector(1,sqrt(3),0), radius=0, make_trail='True', trail_color=color.green)

#defining constants

speed = 5
dt = 0.01

#defining driving function

def move_snail(s, dir):
    return s.pos += speed * dt * dir

#setting up animating loop

while True:
    rate(10)

    p1 = s1.pos
    p2 = s2.pos
    p3 = s3.pos

    #defining directions

    dir_1 = hat(p2-p1)
    dir_2 = hat(p3-p2)
    dir_3 = hat(p1-p3)

    #calling function and updating position

    move_snail(s1, dir_1)
    move_snail(s2, dir_2)
    move_snail(s3, dir_3)
...