Autor Tema: Resuelto: ¿Cómo E y R determinan I?

0 Usuarios y 1 Visitante están viendo este tema.

19 Noviembre, 2025, 09:53 am
Respuesta #10

Tachikomaia

  • $$\Large \color{#5b61b3}\pi\,\pi\,\pi\,\pi\,\pi$$
  • Mensajes: 1,297
  • País: uy
  • Karma: +0/-0
  • Sexo: Masculino
Ya tengo los datos corregidos (aproximados).
InfluenciaDeRotacion: 1
InfluenciaDeRotacion: 2.99009900990099
InfluenciaDeRotacion: 5.9604940692089
InfluenciaDeRotacion: 9.90147927644446
InfluenciaDeRotacion: 14.8034448281628

Normalmente sería
1
3
6
10
15
pero lo que se suma va disminuyendo, o sea, en vez de
1+2+3+4+5...
es
1 + 1/1.01 + 1/(1.01^2) + 1/(1.01^3) + 1/(1.01^4)...
¿no?

Necesito la fórmula, no quiero hacer sumas asi. Sé que si no hubiera disminución sería
InfluenciaDeRotacion = Ejecuciones(Ejecuciones + 1) / 2
¿Con disminución como dije cómo sería?

Lo hablé con chatbox pero me dan fórmulas algo confusas, y Deepseek luego me dijo que está mal.

Hola, es difícil  recomendarte , sin saber exactamente que es lo que quieres lograr.
Ya lo expliqué.
El meteoro sale de la nave naranja con una velocidad al azar hacia arriba y con una rotación al azar hacia un costado, lo cual hace que se vaya curvando hacia un costado. La rotación va disminuyendo, y se quiere asignar una velocidad hacia un costado para que el meteoro (a pesar de que su trayectoria se curve) cuando llegue arriba esté en el centro.

En la siguiente imágen el meteoro no terminó en el centro, pero mira la trayectoria amarilla y la verde.

Supon que la cantidad de curva es la misma. Se quiere que haga la trayectoria verde, para eso hay que asignarle una velocidad hacia la izquierda. Se requiere calcular cuánta.

Citar
Nunca lo confirmaste si una vez el de abajo golpea, quieres adivinar (anticipar) la posición de llegada para llevar el azul a pegar al meteoro.
Cuando resuelva el problema que tengo quizá piense en eso, por ahora déjalo, la nave azul intenta ir hacia la misma posición X del meteoro, a lo bruto, no intenta averiguar dónde terminará.
El problema que estoy planteando no tiene que ver con la IA del rival, hasta puedes ignorar la nave azul si te queda más cómodo, el problema tiene que ver con qué tan al centro queda el meteoro cuando llega arriba.

Citar
1) Si las trayectorias  son rectas y no hay impacto  en las paredes laterales, sabes hacerlo?
Sí, creo que ya hice eso. El proceso que hago ya fue descrito...

Citar
2) Si las trayectorias  son rectas y  hay impacto  en las paredes laterales , sabes hacerlo?
No, pero no es lo que intento, de hecho intento que no toque las paredes.

Citar
3) Si las trayectorias  son curvas(parábolas) y no hay impacto  en las paredes , sabes hacerlo?
No, por eso estoy consultando, es lo que quiero lograr.

Citar
4) Si las trayectorias  son curvas y  hay impacto  en las paredes , sabes hacerlo?
No, pero no es lo que intento, de hecho intento que no toque las paredes.

Citar
Aceleración constante, o variable, ? En horizontal  o vertical  o ambas a la vez?
Ya lo dije, hacia arriba adquiere una velocidad al azar que se mantiene. Hacia un costado va aumentando debido a la rotación que tenga, pero la rotación va disminuyendo un poco. En la atmósfera con las pelotas creo que pasa eso, va disminuyendo la rotación.

Citar
Lo que veo es que en cada frame calculas la posición siguiente  en base a la última calculada, no es un inconveniente,  pero tiene la suma de muchos errores  de precisión.
Sí, lo intenté hacer como me enseñó otro usuario del foro, multiplicando la velocidad inicial por el tiempo, pero cuando rebota con una pared no sé cómo corregirlo. Como por ahora no quiero que rebote podría probar, luego te digo.

Ha pasado mucho tiempo en parte porque tuve problemas con mis vecinos que ponían música de noche.

Citar
calculas cuanto tiempo tardará en llegar hasta arriba
Lo hago así:
TardanzaY = Math.ceil(DistanciaY/-MeteorYSpeed);

Citar
luego divides. ese tiempo por el tiempo entre frame y frame y tendrás cuantos frases debes calcular para ejecutar un loop qué vaya ilustrado cada posición,.
Eso no lo entiendo, yo uso los frames como tiempo, el real no lo uso, no cuento en segundos sino en frames. Cuántos segundos dura un frame se puede cambiar pero es irrelevante aquí.

Citar
De ese modo conociendo la posición  inicial y final del deslizador o golpeador de arriba
No tiene que ver con lo que busco.

Citar
no deduzco  de tu código el tipo de curva que quieres, parábola, elíptica, hiperbolica,  exponencial etc.
Se asigna un valor al azar a la rotación del meteoro y dependiendo de cómo sea hace que parezca una recta | o más una curva así ) o ( o tan curva que parece así > o <

Citar
O bien directamente la curva no depende de la posición  de las paredes laterales.
Eso.

23 Noviembre, 2025, 08:22 am
Respuesta #11

Tachikomaia

  • $$\Large \color{#5b61b3}\pi\,\pi\,\pi\,\pi\,\pi$$
  • Mensajes: 1,297
  • País: uy
  • Karma: +0/-0
  • Sexo: Masculino
Creo que ya Deepseek y yo lo resolvimos.

Para que se vea claro:
- Quité las paredes.
- Puse que al tocar la nave azul el meteoro vaya derecho (sino podría salirse de la pantalla).

Al tocar la nave naranja, el meteoro va hacia arriba y termina en el centro aproximadamente sin importar la rotación inicial.

Solución:
Cuando el meteoro toca la nave naranja:
Código: [Seleccionar]
if (Meteor.hitTest(Player) && MeteorYSpeed>0) {
// Determinar rotación y velocidad Y al azar:
MeteorRotation = Math.random()*(180+Dificultad)*(2*random(2)-1);
MeteorYSpeed = -Math.random()*(2+Dificultad)-1;
// Distancia Y desde el meteoro hasta el punto hacia donde se lo apuntó:
DistanciaY = MeteorY-ApuntandoY;
// Cuánto tardará el meteoro en recorrerla:
TardanzaY = Math.ceil(DistanciaY/-MeteorYSpeed);
// Distancia X desde el meteoro hasta el punto hacia donde se lo apuntó:
DistanciaX = ApuntandoX+400-MeteorX;
// Determinar cuánto de moverá debido a la curva (falta considerar la reducción):
MovimientoPorCurva = MeteorRotation/1000*(101*TardanzaY-10100+10100*Math.pow(1.01, -TardanzaY));
// Determinar la velocidad X para que el meteoro llegue...
// al punto X apuntado justo cuando llega al punto Y apuntado:
MeteorXSpeed = (DistanciaX-MovimientoPorCurva)/TardanzaY;

ApuntandoY y ApuntandoX es que se está apuntando hacia arriba y al centro, ya lo puedo cambiar, pero era en vano si no podía hacer que la velocidad X se ajuste a la rotación.

Lo que Deepseek me dijo evidentemente es la fórmula esta:
MovimientoPorCurva = MeteorRotation/1000*(101*TardanzaY-10100+10100*Math.pow(1.01, -TardanzaY));

La conversación:
https://chat.deepseek.com/share/16y0pm66c099tzo5cb
Si no la ven copio los mensajes, pero como tienen fórmulas matemáticas con "renglones" y otras cosas, sería complicado.

23 Noviembre, 2025, 11:05 am
Respuesta #12

Richard R Richard

  • Ingeniero Industrial
  • $$\Large \color{#9c57a6}\pi\,\pi\,\pi\,\pi\,\pi\,\pi$$
  • Mensajes: 4,041
  • País: ar
  • Karma: +2/-0
  • Sexo: Masculino
  • Dentro de la ciencia todo,fuera de la ciencia nada
Hola. Como va, me alegro  lo hayas resuelto, 
Siento no haber podido  ser mas rapido . Quería  terminar de contar cubos y esferas, para otro hilo,
Tengo escrita una nota que se hizo larga, para copiar y pegar aquí ,con una solución a lo que pedías, pero me temía, que si te ponía solo las fórmulas, quizás no las pudieses adaptar directamente como paso en principio con las de la gravedad y resistencia  en el tenis (que mo se si las terminaste), así  que si bien la cosa era corta en principio me estaba tomando  tiempo para que una IA devuelva el código directamente, no solo para que vaya al medio sino que vaya a cualquier punto siempre con

  • Velocidad constante hacia arriba.
  • El radio de curvatura de la trayectoria  descendiente, esto es más curva al inicio que al fin
  • Velocidad de inicio y trayectoria  determinada por una variable  aleatoria reconocible.
  • Decidir automáticamente la forma de la trayectoria dependiendo de la posición de inicio y llegada.
Una porción de  elipse era perfecta, pero me quedaba como escribir la explicación del código para que se entienda de porqué si te sirve y una especie de diccionario de variables que necesita para que tu cambies  correctamente los nombres  de variables  que use por los que tu usas en tu programa.
Si aun te puede interesar continuo.
Saludos  \(\mathbb {R}^3\)

23 Noviembre, 2025, 12:54 pm
Respuesta #13

Tachikomaia

  • $$\Large \color{#5b61b3}\pi\,\pi\,\pi\,\pi\,\pi$$
  • Mensajes: 1,297
  • País: uy
  • Karma: +0/-0
  • Sexo: Masculino
Probablemente no lo entienda, así que mejor ayuda a otro, otro día pediré otra cosa xD

En el tenis no recuerdo en qué me quedé, sólo que concluí que mejor hacía 1ero videojuegos más sencillos. Estoy en eso:

- Un Pong, este tema era para eso. Ahora lo que tengo en mente es que el jugador pueda decidir hacie qué lado rotar el meteoro, por suerte no tiene que ver con Matemática ^^u

- Un Black Jack, decidí que los símbolos de las cartas se coloquen en posiciones al azar y sin tocarse, se achicarán si se tocan, me pareció una idea interesante, tuve que calcular que no se coloquen tan cerca de los bordes también, aún no lo terminé.

- Un 3 en línea, pero el mío puede tener otros valores. Hacer la IA me resultó muy difícil, no sé qué fallaba, así que estoy haciendo una para un juego más sencillo. Lento pero avanzo.

- Un juego de cartas tipo Yugioh pero mucho más simple. Me complicó poner una carta con opciones, y me complica evitar usar ifs innecesariamente. Decidí no preocuparme tanto por eso último y crear funciones independientes entre sí. Mucho lío, no recuerdo tanto detalle.

- Uno basado en el 1er juego de Nintendo, barriles caen y debes cruzar la pantalla sin que te toquen. Hace tiempo intenté algo más simple que eso pero no podía haber tantos barriles en pantalla, si todos están en el piso, el personaje no podría avanzar.