public void update(Observable o, Object arg) { repaint(); if (arg == null) return; if (arg.equals("winner")) { JOptionPane.showMessageDialog(null, "Le " + ((Joueur) o).nom() + " remporte la partie"); JOptionPane.showMessageDialog(null, "Fin de la partie"); } else if (arg.equals("argent")) pc.refresh(); else if (arg.equals("suivant")) JOptionPane.showMessageDialog(null, "Au tour du joueur suivant"); else if (arg.equals("elimine")) JOptionPane.showMessageDialog(null, "Le " + ((Joueur) o).nom() + " est éliminé de la partie"); else { if (arg instanceof TirerDes) { TirerDes e = (TirerDes) arg; JOptionPane.showMessageDialog(null, "Vous avez fait : " + e.tir1() + "."); if (e.tirDouble() != 0) JOptionPane.showMessageDialog( null, "Double ! Vous allez aussi avancer de : " + e.tirDouble() + " cases."); } else if (arg instanceof TirerCarte) JOptionPane.showMessageDialog( null, "Vous tirez : \"" + ((TirerCarte) arg).carte().nom() + "\""); else if (arg instanceof Emprisonner) JOptionPane.showMessageDialog(null, "Allez en prison !"); else if (arg instanceof PayerImpot && !((PayerImpot) arg).destinataire().equals(m.courant())) JOptionPane.showMessageDialog(null, ((PayerImpot) arg).nom()); else if (arg instanceof Depenser) JOptionPane.showMessageDialog(null, "Vous dépensez : " + ((Depenser) arg).somme() + "F"); else if (arg instanceof Recette) JOptionPane.showMessageDialog(null, "Vous gagnez : " + ((Recette) arg).somme() + "F"); else if (arg instanceof Achat && ((Achat) arg).peutPayer()) JOptionPane.showMessageDialog(null, "Vous dépensez : " + ((Achat) arg).somme() + "F"); else if (arg instanceof Achat && !((Achat) arg).peutPayer()) JOptionPane.showMessageDialog(null, "Vous ne possédez pas assez d'argent"); else if (!(arg instanceof DeplacementRelatif || arg instanceof Deplacement || arg instanceof Choix || arg instanceof Depenser || arg instanceof Carte || arg instanceof PayerImpot)) JOptionPane.showMessageDialog(null, arg.toString()); } }