hola
pues ahi vas a tener buen trabajo, no es complicado, pero si es largo. Se me ocurre que para empezar debes de manejar bien lo que son matrices, para llevar el "mapa" de las cartas. Para mostrar las cartas puedes usar un JPanel para cada carta y que se cambie cuando esta sea elegida. Otra cosa, si el juego va a ser tan generico que se puede usar muchas o pocas cartas tienes que usar Layouts que se adecuen a lo que buscas, de pronto te puede servir el GridLayout sobre el JFrame que va a tener las cartas para que estan esten posicionadas en filas y columnas.
saludos