Не корректно работает код

zhalil05

Новичок
Пользователь
Янв 22, 2021
1
0
1
Решил задачу, и задача кода определить время, сколько секунд видит взрослый ребенка и наоборот,но каждый раз выводит 600 сек:
У ребенка хорошее зрение, он может заметить взрослого за 80 метров. А у взрослого зрение хуже, он может заметить ребенка за 40 метров. Нужно написать программу на Python которая позволит экспериментально определить (1) сколько секунд ребенок будет в поле зрения взрослого и (2) сколько секунд взрослый будет в поле зрения ребенка, если они будут 10 минут ходить по полю 300 х 300 метров. При этом в каждую секунду ребенок и взрослый может перемещать на один метр по горизонтали или вертикали.
Примечания:
В начале эксперимента взрослый и ребенок находятся в противоположных углах квадрата.
Если взрослый или ребенок выходит за пределы поля, то он появляется с противоположной его стороны


Код:
# Инициализируем переменные

# i - время

# r - секунды, когда взрослый находился в зоне видимости ребенка

# k - секунды, когда ребенок находился в зоне видимости взрослого

# reb - зона видимости ребенка

# vzr - зона видимости взрослого

# x1 - координата взрослого на оси X

# y1 - координата взрослого на оси Y

# х2 - координата ребенка на оси Х

# y2 - координата ребенка на оси Y

#1)Прибавляем к времени 1 секунду

#2)Рассматриваем вариант конца времени(tmax=t?)

#3)Сгенерируем число от 1 до 4(для ребенка и взрослого)

#4)Обновляем координаты, обращая внимание на направление

#5)Рассматриваем варианты выхода субъекта за территорию(для ребенка и взрослого)

#6)Вычисляем расстояние между взрослым и ребенком

#7)Варианты видимости ребенка взрослого и наоборот



from math import *

import random

import math

reb = 80

vzr = 40

r = 0

k = 0

x = 300

y = 300

x1 = 1

x2 = 300

y1 = 1

y2 = 300

c = 0



def distance(x1, y1, x2, y2):

    c = sqrt((x2 - x1) ** 2 + (y2 - y1) ** 2)

    print(c)



#1 и 2

t = 1

while t <= 600:



    t += 1



    #3

    object1 = random.randint(1, 4)



    object2 = random.randint(1, 4)



    #пусть 1- движение вправо, 2-вниз, 3-влево, 4-вверх. Далее в пункте 4 в зависимости от сгенерированного числа нужно

    #обновлять координаты с помощью заявления "if"



    #4

    if object1 == 1:

        x1 = x1 + 1

    elif object1 == 3:

        x1 = x1 - 1



    if object1 == 2:

        y1 = y1 - 1

    elif object1 == 4:

        y1 = y1 + 1



    if object2 == 1:

        x2 = x2 + 1

    elif object2 == 3:

        x2 = x2 - 1



    if object2 == 2:

        y2 = y2 - 1

    elif object2 == 4:

        y2 = y2 + 1



    #5

    if x1 >= 301:

        x1 = 1

    elif x1 <= 0:

        x1 = 300

    if y1 >= 301:

        y1 = 1

    elif y1 <= 0:

        y1 = 300

    if x2 >= 301:

        x2 = 1

    elif x2 <= 0:

        x2 = 300

    if y2 >= 301:

        y2 = 1

    elif y2 <= 0:

        y2 = 300

    #6

    distance(x1, y1, x2, y2)

    #7



    if c <= reb:

        r = r + 1



    if c <= vzr:

        k = k + 1



print(r)

print(k)
 
Последнее редактирование:

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 642
472
83
код вставляйте с помощью тегов code, где пишите сообщение чуть выше есть панель инструментов, там есть три точки, далее выбираете код, далее Python и туда вставляете свой код...
без отступов ничего не понятно...
 

Форум IT Специалистов