C/Visual C - salir de un cuarto

 
Vista:

salir de un cuarto

Publicado por daniel (1 intervención) el 06/03/2007 05:11:37
Hola, tengo poco tiempo programando en c++ y tengo un problema que no se como abordarlo. Tengo un cuarto rectangular,una esquina es el origen de los ejes coordenados, las dimensiones son libres, dentro hay 3 objetos rectangulares y una salida del cuarto, tengo que hacer que una "persona" (punto) aparezca en una locacion dentro del cuarto al azar, y tiene que encontrar la salida, la persona va a tener 3 sensores uno a su izquierda otro a su derecha y uno enfrente. Yo puedo diseñar el cuarto como me plazca, pero la person no sabe que tipo de objeto toca ni sus coordenadas dentro del cuarto. (todo es en 2 dimensiones)

Yo se como hacer lo del cuarto y lo de los obstaculos (a cada uno le asigno una clase), incluso hacer que se mueva la persona(incremento o decremento los atributos de posicion), pero no tengo idea de como implementar lo de los sensores. ¿Como puedo hacer que la persona "toque" el obstaculo o la pared?

por su atencion muchas gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:salir de un cuarto

Publicado por Nelek (816 intervenciones) el 06/03/2007 07:36:10
Hola,

si ya tienes hecho lo otro, esto es facil. Solo tienes que tener en cuenta un par de cosas (de hecho una por "sensor").

distancia = posicion_obstaculo - posicion_persona;

pero hay cayendo en la cuenta que dicha resta habra veces que sea positiva y veces que sea negativa. Si por ejemplo, el eje X es positivo significa que tu persona estara a la izquierda del obstaculo, si tu distancia es negativa, tu persona estara a la derecha del obstaculo.

La cosa esta en usar el signo para la direccion y el modulo (valor absoluto) para el valor de la distancia en si.

Otra cosa que no debes olvidar es que la posicion de la persona no es fija, pero la de los obstaculos si, por lo que deberas tener en cuenta la posicion de la persona para tomar la coordenada (left, top, bottom, right) del obstaculo segun te convenga.

Espero haber aclarado un poco lo que querias. Si tienes algun problema no dudes en volver a preguntar.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar