Attualmente sto tentando di creare un gioco di carte collezionabili e ho già a disposizione un'intera serie di funzioni, ma ora sono bloccato nella parte in cui un giocatore può attaccare un altro giocatore (più rigorosamente: le carte mostri di un altro giocatore sul campo). Il gioco è progettato principalmente per essere giocato con due giocatori in mente, anche se averlo aperto per future estensioni non è mai una cattiva idea.
Questo è il design che ho finora, mostrato come un esempio minimalista in pseudo-codice:
class Game
private final Player self
private final Player opponent
class Player
private final String name
...
Il gioco scorre su tutti i giocatori e li lascia fare il loro turno, il che può comportare l'attacco ad un altro giocatore. Questo metodo ha la seguente struttura:
class AttackMonsterAction
private final int monsterIndex
private final int targetMonsterIndex
private final Player targetPlayer
public void performAction(final Player player)
Se è di qualche rilevanza, lo sto codificando in Java.
La mia domanda concreta è la seguente: Come posso creare il mio design di classe in modo che AttackMonsterAction
chiamato da un certo oggetto Player
, possa fare riferimento a "l'altro giocatore"?