Non so perché parli di ActionListener. L'avanzare della Partita, non sapendo nulla del tuo programma, può avvenire (per dire) perché l'utente ha fatto una mossa o il computer deve fare una mossa.Ma è la GUI che deve comunicare alla Partita di avanzare tramite qualche azione svolta da un ActionListener.. solo che non so come.
Allora immagino che Partita abbia dei metodi come:
void userPlay(PlayerAction action) // mi invento PlayerAction non sapendo cosa può fare un player
void computerPlay()
La GUI chiamerà userPlay() e computerPlay() quando l'utente muoverà una carta e quando avrà finito il suo turno.