Пример #1
0
  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());
    }
  }
Пример #2
0
  /** Crée les cases une à une */
  public void addComponents(Container p) {
    Case curr = m.getDepart();
    String groupe;

    p.setLayout(new GridBagLayout());
    GridBagConstraints c = new GridBagConstraints();

    int lc = largeur / 8;
    int hc = hauteur / 8;

    c.gridy = 10;
    c.gridx = 10;
    CaseGraphique caseG = new CaseGraphique(lc, hc, curr, 0, m);
    caseG.setPreferredSize(new Dimension(lc, hc));
    caseG.setLast();
    p.add(caseG, c);
    curr = curr.suivante();
    cases.add(caseG.clone());

    lc = largeur / 12;
    for (int i = 9; i > 0; i--) {
      c.gridx = i;
      caseG = new CaseGraphique(lc, hc, curr, 0, m);
      caseG.setPreferredSize(new Dimension(lc, hc));
      p.add(caseG, c);
      curr = curr.suivante();
      cases.add(caseG.clone());
    }

    lc = largeur / 8;
    c.gridy = 10;
    c.gridx = 0;
    caseG = new CaseGraphique(lc, hc, curr, 90, m);
    caseG.setPreferredSize(new Dimension(lc, hc));
    caseG.setLast();
    p.add(caseG, c);
    curr = curr.suivante();
    cases.add(caseG.clone());

    lc = largeur / 12;
    for (int i = 9; i > 0; i--) {
      c.gridy = i;
      caseG = new CaseGraphique(lc, hc, curr, 90, m);
      caseG.setPreferredSize(new Dimension(hc, lc));
      p.add(caseG, c);
      curr = curr.suivante();
      cases.add(caseG.clone());
    }

    lc = largeur / 8;
    c.gridy = 0;
    c.gridx = 0;
    caseG = new CaseGraphique(lc, hc, curr, 180, m);
    caseG.setPreferredSize(new Dimension(lc, hc));
    caseG.setLast();
    p.add(caseG, c);
    curr = curr.suivante();
    cases.add(caseG.clone());

    lc = largeur / 12;
    for (int i = 1; i < 10; i++) {
      c.gridx = i;
      caseG = new CaseGraphique(lc, hc, curr, 180, m);
      caseG.setPreferredSize(new Dimension(lc, hc));
      p.add(caseG, c);
      curr = curr.suivante();
      cases.add(caseG.clone());
    }

    lc = largeur / 8;
    c.gridy = 0;
    c.gridx = 10;
    caseG = new CaseGraphique(lc, hc, curr, -90, m);
    caseG.setPreferredSize(new Dimension(lc, hc));
    caseG.setLast();
    p.add(caseG, c);
    curr = curr.suivante();
    cases.add(caseG.clone());

    lc = largeur / 12;
    for (int i = 1; i < 10; i++) {
      c.gridy = i;
      caseG = new CaseGraphique(lc, hc, curr, -90, m);
      caseG.setPreferredSize(new Dimension(hc, lc));
      p.add(caseG, c);
      curr = curr.suivante();
      cases.add(caseG.clone());
    }

    pc = new PanneauCentral(m);
    pc.setPreferredSize(new Dimension(largeur * 8 / 12, hauteur * 8 / 12));
    c.gridy = 1;
    c.gridx = 1;
    c.fill = GridBagConstraints.BOTH;
    c.gridwidth = 9;
    c.gridheight = 9;
    p.add(pc, c);
  }