Pong IA

Leos

Voy al lio, estoy haciendo un pong, pero no tengo ni idea de como hacer la IA del rival, yo se que aquí hay gente que controla y me gustaría que participarais todos dando vuestro punto de vista sobre como hacerla, seguro que hay varias maneras.

También se puede opinar/discutir por que una manera puede ser mejor que otra siempre aportando una explicacion, no quiero malos rollos, se que es algo sencillo, pero me gustaria ver que opinais todos.

Sokar92

Yo creo que depende del nivel de dificultad que quieras darle a la IA. La más jodida seguiría en el eje Y la trayectoria casi exacta de la bola. Y desde ahí pondría un tiempo de reacción para cambiar de dirección. Cuanto más tiempo, más fácil la IA. ;D

2 respuestas
Leos

#2 La idea, es que la dificultad vaya aumentando con el tiempo, o con los partidos(?) eso aún no lo tengo muy claro. Pero con lo que dices, ya podría trabajar con cosillas! Gracias por la aportación <3

1
totespare

#2 eso iba a decir. Puedes añadirle movimientos random también. O directamente puedes hacer un random de la posición de la Y. Es decir, si tienes la bola en un Y=5, que la posición de la IA sea un random entre 3 y 7, por ejemplo. Luego ya puedes ir jugando con esos valores, trampearlos etc. a tu gusto

2
starfucker

Una de las maneras es esa, la ia tiene un tiempo de reaccion y una velocidad de moviemiento de la pala.
Tambien se le puede poner un radio de accion, haciendo que en el momento que entre la bola en el radio vaya a golpearla. Entonces cuanto mas radio de accion mas dificultad tendria ya que veria antes la bola llegar.

3
Leos

Bueno esto va tomando formas, ya hay dos opciones para hacerlo! Me gusta ver los diversos modos en los que lo veis, a ver si se sigue pasando alguien más!!!!

kesada7

Venga Leos ya te lo explico yo como va la IA en videojuegos:

5 1 respuesta
starfucker

#7 Pero eso es un arbol de toma de decisiones, que tambien se podria hacer, pero es complicarse un poco para hacer la ia de una pala que va de derecha a izquierda, creo yo :joy:

B

puedes hacer varios niveles:
pero tienes que hacer que se mueva de la misma manera que el jugador (sumas y restas a su posición cada iteración?)

fácil: estableces el centro de la IA, si la bola está arriba, subes y viceversa

normal: cuando el jugador golpee la bola haces un cálculo de dónde va a acabar la bola (con una bola fantasma invisible mucho más rápida) y haces lo posible para llevar la barra a esa altura.

(y asumiendo que depende de donde le des con la pala afectas la dirección)

difícil: puedes dar una vuelta más de rizo y al nivel anterior además sumarle que no solo se ponga en el sitio sino que use sus esquinas y similares aleatoriamente para aumentar la dificultad

dios: hacer un cálculo de la posición en la que tendría que estar para que cuando le de la bola, rebotar una bola al lugar más alejado del jugador.

no se me ocurre mucho más

2 1 respuesta
Leos

#9 ostras me has dado bastantes ideas para hacer los niveles, bastante mejor que la que tenia yo pensada jajajajaja gracias!

B

Si quieres algo diferente, haz una búsqueda con las keys "neural network pong"

1 1 respuesta
Leos

#11 quizás esto es lo que intente aunque no tenga ni puta idea, más que nada porque ese campo me interesa mucho

1 1 respuesta
B

#12

1
_Rpv

Yo hice un pong y para la "IA" del rival fue calcular en que posición va a terminar la bola (se obtiene a partir de la posición actual, velocidad y dirección)
y así sabes en qué coordenadas de "y" de las coordenadas "x" de la paleta del rival (la "x" no cambia) terminará la pelota.
A partir de esa información te puedes complicar lo que quieras, sí darle con el centro de la pala, con un lateral para que la bola termine justo en la otra punta del rival...

Sería más interesante hacer una red neuronal

2

Usuarios habituales