EP11 Funçao houve_colisão - Complemento

EP11 Funçao houve_colisão - Complemento

por Osorio Danton Paixao e Silva -
Número de respostas: 2

Prezados - Bom Dia!

Complementando a mensagem anterior: 

Os dados do astro e da Thurtleship coincidem com os do exemplo 2 do teste da

main() do Ep11, mostrados logo abaixo:

t2 = ['-150000','0','0','66000','0','0','green','Leonardo','ship','True']
a2 = ['0','0','0','0','1.98e+30','696342','yellow','Sol','astro','True']

Nesse exemplo 2 do módulo ships.py, ao rodar a main() retorna no PythonShell que não houve colisão, (portanto False) o que difere do resultado mostrado na mensagem anterior, transcrita abaixo.

No código que implementei para a função houve_colisao(turtleship, lista_astros)

é  usada a função distancia do módulo Newton.py para calcular a distancia entre a Thurtleship e cada um dos astros, retornando True, se uma dessas distancias for zero (indicativo de colisão) ou todas diferentes de zero (indictivo de que não houve colisão. 

Por que ocorre a divergencia?

Grato

Osorio

Segue cópia da msg anterior:

Ao enviar o EP11 retorna o abaixo erro na função houve_colisao:

"houve_colisao(): iniciando avaliação com testes do enunciado... (vale 2 ponto(s))
Resultado incorreto: 'False', esperado 'True'
Dados:
Turtleship = [[-150000, 0], [0, 66000], 0, 0, 'green', 'Leonardo', 't', True]
Astros = [[[0, 0], [0, 0], 1.98e+30, 696342, 'yellow', 'Sol', 'a', True]]"

Minha dúvida é a seguinte: Para ter havido colisão, as coordenadas cartesianas

da Turtleship e do astro não deveriam ser iguais (caso em que a distancia entre eles seria nula)?

No exemplo acima o astro está em x=0 e y-0, enquanto a Turtleship está em

x=-150000 e y=0. Como pode ter ocorrido colisão?

Muito Grato

Osorio

Em resposta à Osorio Danton Paixao e Silva

Re: EP11 Funçao houve_colisão - Complemento

por José Coelho de Pina -

Olá Osório,

Muito obrigado por compartilhar a sua dúvida.

[...]

Por que ocorre a divergencia?

Essa mensagem de não houve colisão que é exibida quando você executa a função main() do módulo ships.py é devida a sua função houve_colisao(). O main() é as outras função que estão completas no esqueleto, são apenas intermediárias.
A resposta correta, para vocês compararem com a mensagem que a sua função exibe, aparece na seção Exemplos do enunciado do EP11.

Em resposta à José Coelho de Pina

Re: EP11 Funçao houve_colisão - Eureca!

por Osorio Danton Paixao e Silva -

Ola Professor Coelho!

Agradeço a orientação.

Acabo de descobrir qual foi o meu equívoco:

Simplesmente eu estava raciocinando com os critérios da Mecanica da Partícula(ou do ponto material). Entretanto corpos celestes, em geral são extensos. Aplicam-se a eles, portanto, os critérios da Mecanica dos corpos rígidos. Agora funcionou. 

Muito Obrigado!

Osorio