Redesenhando a bolinha

Redesenhando a bolinha

por Ana Claudia Mancusi Valeije -
Número de respostas: 6
Com relação àquela entrada que o Felipe postou, temos que fazer a bolinha receber a posição da parede. Em sala, o professor disse que era também para redesenhar a bolinha ao invés de só movê-la. Mas isso deixou o EP extremamente lento, mesmo que eu só redesenhe a bolinha quando ela estiver na parede ou na saída. Mesmo sem time.sleep o Ep demora horas pra terminar de rodar dependendo das entradas... Não tem problema isso, na hora da correção do EP? Eu não agüentaria esperar tanto se fosse monitora... XD
Em resposta à Ana Claudia Mancusi Valeije

Re: Redesenhando a bolinha

por Ana Carolina Bottura de Barros -
Ana,

apesar de não ter resolvido o problema no meu ep ainda para as bolinhas não atravessarem as paredes, ja implementei redesenhar a bolinha e não ficou tão mais lento assim, na verdade ainda não sei porque minhas bolinhas as vezes atravessam as paredes se alguem puder me ajudar agradeceria.
Em resposta à Ana Carolina Bottura de Barros

Re: Redesenhando a bolinha

por Paulo José da Silva e Silva -
Uma dica que usei para "depurar meu EP".

No laço que calcula a próxima posição mandei que o computador fizesse o seguinte:

1) Imprimisse informação sobre cada passo, como posição da bolinha e tempo que levou desde a última alteração.

2) Fiz o programa abortar na hora que ele visse que a bolinha saiu da sala. Para fazer isso basta você importar o módulo "sys" e chamarem o função "sys.exit(1)".

Descobri o erro observando a posição da bolinha antes do problema e vendo que o próximo intervalo de tempo era ridicularmente pequeno.

Outra boa dica é vocês se preocuparem primeiro em ter o EP funcionando para velocidades razoáveis (até no máximo 5m/s, por exemplo, ou um pouco menos). Depois de ter certeza que está tudo OK aí (e já garantir que tem algo bom para entregar), passe a analisar velocidades altas.


Em resposta à Paulo José da Silva e Silva

Re: Redesenhando a bolinha

por Ana Carolina Ribeiro Gomez -
posso ter certeza então que o problema que você mencionou (de ter de redesenhara bolinha) só acontece para velocidades acima de 5 m/s né? Ou seja, não é esse o meu problema...
Em resposta à Ana Carolina Ribeiro Gomez

Re: Redesenhando a bolinha

por Paulo José da Silva e Silva -
Sim,

Estava citando o caso de problemas com velocidades altas.


De qualquer forma a dica de fazer o seu programa escrever informações até acontecer o erro (que no meu caso era a bola sair da sala) e então parar é uma boa estratégia. É claro que para que isso possa ser usado é preciso que você consiga verificar no programa se o erro aconteceu ou não (que no caso citado é fácil).



Em resposta à Ana Claudia Mancusi Valeije

Re: Redesenhando a bolinha

por Paulo José da Silva e Silva -
Note que eu apenas disse para redesenhar a bolinha em caso de choque com uma parede e não em movimentos ordinários no interior da sala, nesse caso usem "move" mesmo.

Sobre a lentidão, não há o que fazer. Aceitem isso. O programa só deve ficar muito lento para velocidades altas e monitor saberá disso.