juego de cartas

gusk
25 de Octubre del 2004
Hola, os comento un problema con un programilla a ver si me podéis ayudar:

Es un juego de cartas con interfaz gráfica. Existe una clase Jugador abstracta de la que heredan Humano y CPU. También hay una clase Partida en la que hay una pila de cartas llamada mesa y que tendría algo así:

barajar();
repartir();

for(int i=0; i< numeroJugadores; i++){

jugador[i].cogerCartaDeLaMesa( mesa.pop() );
mesa.push( jugador[i].dejarCarta() );
}

La última línea con código sería mi problema. Si jugador[i] es de tipo CPU, su método dejarCarta() tendría un algoritmo para decidir qué carta dejar. Pero si es de tipo Humano tendría que decidirlo mediante un evento (arrastrando una carta a la mesa), es decir que según yo lo entiendo tendría que pararse y esperar a que le dieran una respuesta (como al leer por teclado) y después retornar la carta que el Humano escogió. Pues yo no sé cómo parar ahí a esperar a que se produzca el evento.

Bueno pues eso que querría saber si lo estoy planteando mal y si no cómo tengo que hacerlo porque lo que no quiero es tener que usar instanceof para saber de qué tipo es el Jugador aunque si no me queda otro remedio...

Muchas gracias y saludos.