Package aplicacio

Source Code of aplicacio.Controlador

/*
* Controlador.java
*/
package aplicacio;

import domini.Carta;
import domini.Jugador;
import domini.Marcador;
import domini.Partida;
import java.awt.Color;
import java.awt.EventQueue;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.util.Collections;
import java.util.LinkedList;
import java.util.List;
import javax.swing.JButton;
import javax.swing.JOptionPane;
import presentacio.Gui;

/**
* Modela el controlador façana de l'aplicació.
* @author acots jamoros
*/
public class Controlador implements Runnable {

    private List<Gui> llistaGuis;
    private Partida partida;
    private List<Jugador> jugadors;  //No sé si ho hauria de posar aquí
    private List<CartaTapet> cartesTapet; //posaré les 4 cartes del tapet

    //Aquesta variable la fem pública, perquè també s'utilitza a la GUI
    public static final String missatgeUsabilitat = "Inici Partida\n    Premem el botó \'Iniciar P\' " +
                "(a qualsevol taulell)\n" +
                "    Aquesta acció ens porta el taulell del \'jugador 0\' a primer pla.\n" +
                "Repartiment\n" +
                "    Premem el botó \'Repartir\'.\n" +
                "    Ara podem ordenar les cartes," +
                " prement el botó \'Ordenar\' (opcional).\n" +
                "Cantar\n" +
                "    Aquest mateix jugador ha de cantar (o delegar = que canti el seu company)\n" +
                "    Premeu un dels botons (oros, copes, espases, bastos, butifarra, delego).\n" +
                "    Si heu picat delego el jugador company haurà de cantar...\n" +
                "Iniciar basa \n" +
                "    Despres de que algú hagi cantat, serà el torn del \'jugador 1\' \n" +
                "    per a això és IMPRESCINDIBLE PRÉMER el botó \'Nova Basa\'.\n" +
                "    Just després premem sobre la carta que volem llençar al tapet.\n" +
                "Següent basa \n" +
                "    Un cop han tirat les 4 cartes els 4 jugadors, el taulell del guanyador de la basa\n" +
                "    passa a primer pla. Aquest ha de prémer el botó NOVA BASA i tornar a tirar una carta...\n" +
                "    i així fins a esgotar les cartes.\n" +
                "(Hem fet que" +
                " la partida s\'acabi a 50)\nGràcies" ;


    public Controlador() {
        //Podríem estudiar quina és la resolució de la pantalla que juga i en funció d'aquesta
        //fer una geometria variable de les cartes i posició al taulell de tots els elements.

        final Toolkit t = Toolkit.getDefaultToolkit();
        final int ppp = t.getScreenResolution(); // Píxels per posada
        final int w = t.getScreenSize().width;  // Amplada en píxels
        final int h = t.getScreenSize().height;  // Altura en píxels
        System.out.println("Resolució de la pantalla ");
        System.out.println("Width = " + w);
        System.out.println("Height = " + h);
        System.out.println("Píxels per polsada = " + ppp);



        // No ho posem com a mètode a la GUI...
        // Missatge Alert per informar de la "usabilitat" del joc

        JOptionPane.showMessageDialog(null, missatgeUsabilitat, "Com testejar", JOptionPane.INFORMATION_MESSAGE);

        //creo els 4 jugadors
        jugadors = new LinkedList<Jugador>();
        for (int i = 0; i < 4; i++) {
            jugadors.add(new Jugador()); //lhaure de definir judador per tenir més informació
        }

        //creo les 4 gui  (hauria de passar informació dels jugadors..)
        llistaGuis = new LinkedList<Gui>();

        //Creo les cartes del tapet (s'ahuria de fer una classe amb gui-jugador i cartaTapet??? No pq nomès tindré una gui
        cartesTapet = new LinkedList<CartaTapet>();

        EventQueue.invokeLater(this);
        this.run();
    }

    public void run() {
        iniciarComponents();
       
    }

    private void iniciarComponents() {

        //així és molt cutre però si ho faig amb for tinc problemes amb el eoid de la gui
        Gui g1 = new Gui(0, this);
        Gui g2 = new Gui(1, this);
        Gui g3 = new Gui(2, this);
        Gui g4 = new Gui(3, this);
        llistaGuis.add(g1);
        llistaGuis.add(g2);
        llistaGuis.add(g3);
        llistaGuis.add(g4);

        /*        //Crea una llista de 8 guis, però amb les eoid que toca. COMPROVACIÓ
        System.out.println("size llistaGuis " + llistaGuis.size());
        for (int i = 0; i < 4; i++){
        System.out.println(llistaGuis.get(i).getEoid());
        }
         */

        llistaGuis.get(0).getJlParella1NomJugador1().setOpaque(true);
        llistaGuis.get(0).getJlParella1NomJugador1().setForeground(Color.red);
        llistaGuis.get(2).getJlParella1NomJugador2().setForeground(Color.red);
        llistaGuis.get(1).getJlParella2NomJugador1().setForeground(Color.red);
        llistaGuis.get(3).getJlParella2NomJugador2().setForeground(Color.red);
        llistaGuis.get(0).setLocation(10, 20);
        llistaGuis.get(1).setLocation(160, 20);
        llistaGuis.get(2).setLocation(310, 20);
        llistaGuis.get(3).setLocation(460, 20);
        llistaGuis.get(0).setVisible(true);
        llistaGuis.get(1).setVisible(true);
        llistaGuis.get(2).setVisible(true);
        llistaGuis.get(3).setVisible(true);

        //Creo un arrai de cartesTapet (poso una cartatapet per cada jugador)
        for (int i = 0; i < 4; i++) {
            cartesTapet.add(new CartaTapet(llistaGuis, i));
        }

        //inicialitzo les 4 cartaTapet a null
        for (int i = 0; i < 4; i++) {
            cartesTapet.get(i).pintaCartaTapet(null);
        }

        //poso el trumfo a null
        for (int i = 0; i < 4; i++) {
            llistaGuis.get(i).getJLTrumfo().setIcon(null);
            llistaGuis.get(i).getJLJugadorTrumfo().setText("");
        }

        //Creo un marcador perquè la partida encara no s'ha creat
        Marcador m = new Marcador();
        pintaMarcador(m);
    }

    /**
     * Gestiona l'acció corresponent a clicar sobre una carta en la gui:
     * cridem al mètode tirarJBCarta i desactivar el botó de la pròpia carta
     *
     * @param gui
     * @param evt
     */
    public void gestionarAccioBotoCarta1(Gui gui, ActionEvent evt) {
        System.out.println("S'ha fet un click al botó de la carta 1 del jugador" + gui.getEoid());
        tirarJBCarta(gui, gui.getJbCarta1());
        gui.getJbCarta1().setEnabled(false);
    }

    public void gestionarAccioBotoCarta2(Gui gui, ActionEvent evt) {
        System.out.println("S'ha fet un click al botó de la carta 2 del jugador" + gui.getEoid());
        tirarJBCarta(gui, gui.getJbCarta2());
        gui.getJbCarta2().setEnabled(false);
    }

    public void gestionarAccioBotoCarta3(Gui gui, ActionEvent evt) {
        System.out.println("S'ha fet un click al botó de la carta 3 del jugador" + gui.getEoid());
        tirarJBCarta(gui, gui.getJbCarta3());
        gui.getJbCarta3().setEnabled(false);
    }

    public void gestionarAccioBotoCarta4(Gui gui, ActionEvent evt) {
        System.out.println("S'ha fet un click al botó de la carta 4 del jugador" + gui.getEoid());
        tirarJBCarta(gui, gui.getJbCarta4());
        gui.getJbCarta4().setEnabled(false);
    }

    public void gestionarAccioBotoCarta5(Gui gui, ActionEvent evt) {
        System.out.println("S'ha fet un click al botó de la carta 5 del jugador" + gui.getEoid());
        tirarJBCarta(gui, gui.getJbCarta5());
        gui.getJbCarta5().setEnabled(false);
    }

    public void gestionarAccioBotoCarta6(Gui gui, ActionEvent evt) {
        System.out.println("S'ha fet un click al botó de la carta 6 del jugador" + gui.getEoid());
        tirarJBCarta(gui, gui.getJbCarta6());
        gui.getJbCarta6().setEnabled(false);
    }

    public void gestionarAccioBotoCarta7(Gui gui, ActionEvent evt) {
        System.out.println("S'ha fet un click al botó de la carta 7 del jugador" + gui.getEoid());
        tirarJBCarta(gui, gui.getJbCarta7());
        gui.getJbCarta7().setEnabled(false);
    }

    public void gestionarAccioBotoCarta8(Gui gui, ActionEvent evt) {
        System.out.println("S'ha fet un click al botó de la carta 8 del jugador" + gui.getEoid());
        tirarJBCarta(gui, gui.getJbCarta8());
        gui.getJbCarta8().setEnabled(false);
    }

    public void gestionarAccioBotoCarta9(Gui gui, ActionEvent evt) {
        System.out.println("S'ha fet un click al botó de la carta 9 del jugador" + gui.getEoid());
        tirarJBCarta(gui, gui.getJbCarta9());
        gui.getJbCarta9().setEnabled(false);
    }

    public void gestionarAccioBotoCarta10(Gui gui, ActionEvent evt) {
        System.out.println("S'ha fet un click al botó de la carta 10 del jugador" + gui.getEoid());
        tirarJBCarta(gui, gui.getJbCarta10());
        gui.getJbCarta10().setEnabled(false);
    }

    public void gestionarAccioBotoCarta11(Gui gui, ActionEvent evt) {
        System.out.println("S'ha fet un click al botó de la carta 11 del jugador" + gui.getEoid());
        tirarJBCarta(gui, gui.getJbCarta11());
        gui.getJbCarta11().setEnabled(false);
    }

    public void gestionarAccioBotoCarta12(Gui gui, ActionEvent evt) {
        System.out.println("S'ha fet un click al botó de la carta 12 del jugador" + gui.getEoid());
        tirarJBCarta(gui, gui.getJbCarta12());
        gui.getJbCarta12().setEnabled(false);
    }

    /**
     * Gestiona el que s'ha de fer quan s'ha clicat al botó de cantar un pal:
     * crida al mètode accioCantarTrumfo
     *
     * @param gui
     * @param evt
     */
    public void gestionarAccioBotoCantarOros(Gui gui, ActionEvent evt) {
        System.out.println("S'ha fet un click al botó de cantar oros.");
        //carrego el trumfo a les gui
        for (Gui g: llistaGuis){
            g.getJLTrumfo().setIcon(new javax.swing.ImageIcon(getClass().getResource("/serveis/imatges/orosP_1.jpg")));
        }
        accioCantarTrumfo(0, gui);
    }

    public void gestionarAccioBotoCantarCopes(Gui gui, ActionEvent evt) {
        System.out.println("S'ha fet un click al botó de cantar Copes.");
        //carrego el trumfo a les gui
        for (Gui g: llistaGuis){
            g.getJLTrumfo().setIcon(new javax.swing.ImageIcon(getClass().getResource("/serveis/imatges/copasP_1.jpg")));
        }
        accioCantarTrumfo(1, gui);
    }

    public void gestionarAccioBotoCantarEspases(Gui gui, ActionEvent evt) {
        System.out.println("S'ha fet un click al botó de cantar Espases.");
        //carrego el trumfo a les gui
        for (Gui g: llistaGuis){
            g.getJLTrumfo().setIcon(new javax.swing.ImageIcon(getClass().getResource("/serveis/imatges/espadasP_1.jpg")));
        }
        accioCantarTrumfo(3, gui);
    }

    public void gestionarAccioBotoCantarBastos(Gui gui, ActionEvent evt) {
        System.out.println("S'ha fet un click al botó de cantar Bastos.");
        //carrego el trumfo a les gui
        for (Gui g: llistaGuis){
            g.getJLTrumfo().setIcon(new javax.swing.ImageIcon(getClass().getResource("/serveis/imatges/bastosP_1.jpg")));
        }
        accioCantarTrumfo(2, gui);
    }

    public void gestionarAccioBotoCantarButifarra(Gui gui, ActionEvent evt) {
        System.out.println("S'ha fet un click al botó de cantar Butifarra.");
        //carrego el trumfo a les gui
        for (Gui g: llistaGuis){
            g.getJLTrumfo().setIcon(new javax.swing.ImageIcon(getClass().getResource("/serveis/imatges/butifarra.jpg")));
        }
        accioCantarTrumfo(4, gui);
    }

    /**
     * Gestiona què s'ha de fer quan es clica sobre el botó de delegar:
     * Activar els botons de cantar trumfo del company de la nostra parella,
     * desactivar els que no es necessiten i posar la gui del company a primer terme
     *
     * @param gui
     * @param evt
     */
    public void gestionarAccioBotoPassar(Gui gui, ActionEvent evt) {
        System.out.println("S'ha fet un click al botó de cantar Passar.");
        //desactivem els botons del trumfo i del propi botó passar
        desActivarBotonsCantar(gui);
        gui.getJbPassar().setEnabled(false);

        //activem els botons de cantar trumfo del company
        int company = (gui.getEoid() + 2) % 4;
        Gui guiCompany = llistaGuis.get(company);
        activarBotonsCantar(guiCompany);

        //deixem d'estar a primer pla i passa a estar-ho el company
        gui.setAlwaysOnTop(false);
        guiCompany.setAlwaysOnTop(true);
        guiCompany.toFront();
    }


    /**
     * Les cartes nomès es poden ordenar abans de la segona bassa del dat
     *
     * @param gui
     * @param evt
     */
    public void gestionarAccioBotoOrdenar(Gui gui, ActionEvent evt) {
        System.out.println("S'ha fet un click al botó d'0rdenar.");
        int jugador = gui.getEoid();
        Collections.sort(jugadors.get(jugador).getCartesJugador());
        pintaCartes(gui, jugadors.get(jugador));
        gui.getJbOrdenar().setEnabled(false);
    }

  
    /**
     * Al clicar sobre el botó "Nova Basa" de la gui es farà el següent:
     *  - fer una bassa del dat actual
     *  - fer les gestions necessaries en el cas que sigui l´ultima basa del dat
     *      (activar la gui del guanyador...) o l'última de la partida (mostrar una
     *      finestra d'informació)
     * Activar i desactivar els botons necessaris
     *
     * @param gui
     * @param evt
     */
    public void gestionarAccioBotoNovaBasa(Gui gui, ActionEvent evt) {
        System.out.println("S'ha fet un click al botó de cantar nova Basa.");
        System.out.println("Num de basa: " + partida.getDatActual().getNumBasa());

        //Primer mirem si ja és la última basa (s'ha d'apretar el botó una vegada s'han acabat les cartes)
        //ACABEM EL DAT
        if (partida.getDatActual().sHaAcabatElDat()) {
            System.out.println("S'ha acabat el dat.");
            //retirem les cartes del tapet
            retirarCartesTapet();

            //desactivem el trumfo que s'ha cantat
            for (Gui g: llistaGuis){
                g.getJLTrumfo().setIcon(null);
                g.getJLJugadorTrumfo().setText("");
            }

            //desactivar el botó de nova baza i les gui (els desactivo tots) fins que no es torni a repartir
            for (Gui g : llistaGuis) {
                g.getJbNovaBasa().setEnabled(false);
                g.setAlwaysOnTop(false);
            }

            //S'ha d'activar el botó de qui repartirà desprès i la seva gui
            Gui g = llistaGuis.get((partida.getQuiReparteix() + 1) % 4);
            g.getJbRepartir().setEnabled(true);
            g.setAlwaysOnTop(true);
            g.toFront();

            //Actualitzo el marcador de la partida
            partida.actualitzaMarcador();
            pintaMarcador(partida.getMarcador());
            System.out.println("Marcador de la partida: " + partida.getMarcador());

            //Si s'acaba la partida, mostrem un alert i sortim
            if (partida.sHaAcabatLaPartida()) {
                System.out.println("S'ha acabat la partida");
                String missatge;
                if (partida.getMarcador().getNos() > partida.getMarcador().getVos()) {
                    missatge = "Ha guanyat la parella 1 (els jugadors 0 - 2)";
                }
                else {
                    missatge = "Ha guanyat la parella 2 (els jugadors 1 - 3)";
                }
                JOptionPane.showMessageDialog(g, missatge, "S'ha acabat la partida", JOptionPane.OK_OPTION);
                for (Gui r : llistaGuis) {
                    r.dispose();
                }
            }
           
        } //Si no és la última, faig la basa
        else {
            System.out.println("Ha de començar el jugador" + partida.getDatActual().getjugadorQueComenca());
            //Passem a primer pla el taulell que començara
            llistaGuis.get(partida.getDatActual().getjugadorQueComenca()).toFront();
            llistaGuis.get(partida.getDatActual().getjugadorQueComenca()).setAlwaysOnTop(true);

            retirarCartesTapet();

            //Fem una baza
            partida.getDatActual().baza();

            //Desactivar el botó novaBasa  (Activar el del que ha guanyat ho fan les cartes)
            gui.getJbNovaBasa().setEnabled(false);

            //A la segona basa, desactivo el botó ordenar de tothom
            if (partida.getDatActual().getNumBasa() == 2) {
                for (Gui g : llistaGuis) {
                    g.getJbOrdenar().setEnabled(false);
                }
            }
        }
    }

    /**
     * Crea una nova partida. Aquest botó el pot acciona qualsevol dels quatre jugadors
     *
     * @param gui
     * @param evt
     */
    public void gestionarAccioIniciarPartida(Gui gui, ActionEvent evt) {
        System.out.println("S'ha fet un click al botó de iniciar la partida.");
        partida = new Partida(jugadors);
        partida.iniciaPartida();
        //Falta desactivar tots els botons excepte el de repartir del jugador 0
        //que es quiReparteix de moment
        System.out.println("Comencem la partida, reparteix " + partida.getQuiReparteix());
        //Desactivem els botons iniciarPartida de totes les gui

        for (Gui a : llistaGuis) {
            a.getJbSIniciarPartida().setEnabled(false);
        }

        int nosecomferquivullquecomenci = 0;
        //Activem el botó de repartir les cartes del quiReparteix (del jugador 0)
        Gui r = llistaGuis.get(nosecomferquivullquecomenci);
        r.getJbRepartir().setEnabled(true);
        //ATENCIO: en comptes del 0 hi hauria d'haver
        // partida.getQuiReparteix() però no em va bé pq quiReparteix està inicialitzat a -1

        //Poso a primer pla la gui del jugador que ha de repartir
        r.setAlwaysOnTop(true);
        r.toFront();
    }


    /**
     * Gestiona l'acció de clicar el botó repartir: crea un dat nou i reparteix
     * les cartes als jugadors. Activa els botons de cantar i delegar de qui reparteix
     *
     * @param gui
     * @param evt
     */
    public void gestionarAccioBotoRepartir(Gui gui, ActionEvent evt) {
        System.out.println("S'ha fet un click al botó repartir.");

        partida.nouDat();
        //Pinto les cartes per cada gui i acciono els botons
        for (int i = 0; i < 4; i++) {
            Gui g = llistaGuis.get(i);
            pintaCartes(g, jugadors.get(i));
            g.getJbCarta1().setEnabled(true);
            g.getJbCarta2().setEnabled(true);
            g.getJbCarta3().setEnabled(true);
            g.getJbCarta4().setEnabled(true);
            g.getJbCarta5().setEnabled(true);
            g.getJbCarta6().setEnabled(true);
            g.getJbCarta7().setEnabled(true);
            g.getJbCarta8().setEnabled(true);
            g.getJbCarta9().setEnabled(true);
            g.getJbCarta10().setEnabled(true);
            g.getJbCarta11().setEnabled(true);
            g.getJbCarta12().setEnabled(true);
        }
        System.out.println("Comencem el dat, reparteix " + partida.getQuiReparteix());

        //desactivar el botó repartir que estava activat
        llistaGuis.get(partida.getQuiReparteix()).getJbRepartir().setEnabled(false);

        //gestionar els botons contro, passo
        activarBotonsCantar(gui);
        gui.getJbPassar().setEnabled(true);

        //activar tots els botons ordenar
        for (int i = 0; i < 4; i++) {
            llistaGuis.get(i).getJbOrdenar().setEnabled(true);
        }
    }

    //Hauria de començar la partida aquí
    public void gestionarAccioMenuItemNovaPartiva(Gui gui, ActionEvent evt) {
        System.out.println("S'ha fet un click menú item Nova Partida.");
    }

    public static void main(String args[]) {
        new Controlador();
    }

    private void pintaCartes(Gui gui, Jugador jugador) {
        //Per cada carta la posem al seu botó
        //No controlem exceptions perquè segur que n'hi ha 12
        List<Carta> cartes12 = jugador.getCartesJugador();
        gui.getJbCarta1().setIcon((cartes12.get(0).getImatge()));
        gui.getJbCarta2().setIcon((cartes12.get(1).getImatge()));
        gui.getJbCarta3().setIcon((cartes12.get(2).getImatge()));
        gui.getJbCarta4().setIcon((cartes12.get(3).getImatge()));
        gui.getJbCarta5().setIcon((cartes12.get(4).getImatge()));
        gui.getJbCarta6().setIcon((cartes12.get(5).getImatge()));
        gui.getJbCarta7().setIcon((cartes12.get(6).getImatge()));
        gui.getJbCarta8().setIcon((cartes12.get(7).getImatge()));
        gui.getJbCarta9().setIcon((cartes12.get(8).getImatge()));
        gui.getJbCarta10().setIcon((cartes12.get(9).getImatge()));
        gui.getJbCarta11().setIcon((cartes12.get(10).getImatge()));
        gui.getJbCarta12().setIcon((cartes12.get(11).getImatge()));
    }

    /**
     * Gestiona les accions que s'han de fer quan es "tira" una carta (afegir-la a la bassa,
     * posar-la al tapet, activar els botons pertinents, posar la gui següent a primer pla,
     * mirar si s'acaba la bassa) ...
     *
     * @param gui
     * @param jBCarta
     */
    private void tirarJBCarta(Gui gui, JButton jBCarta) {

        //Miro de quin jugador és la gui
        int jugadorQueTira = gui.getEoid();

        //pinto la carta a tots els tapets en la posició del eoid
        cartesTapet.get(jugadorQueTira).pintaCartaTapet(jBCarta.getIcon());

        //afegeixo la carta a la llista de la basa
        Carta c = new Carta(jBCarta.getIcon());
        partida.getDatActual().getBasaActual().add(c);

        //trec la icona del botó de la carta de la gui que l'acciona
        jBCarta.setIcon(null);

        //si és l'última carta de la basa, gestiono el que s'ha de fer
        //ACABEM LA BASA
        if (partida.getDatActual().eslUltimaCartaDeLaBasa()) {
            System.out.println("S'ha acabat la basa");
            partida.getDatActual().acabarBasa();

            //activo novaBasa del guanyador i la seva gui
            //(primer desactivo totes les gui)
            for (Gui g : llistaGuis) {
                g.setAlwaysOnTop(false);
            }
            Gui r = llistaGuis.get(partida.getDatActual().getjugadorQueComenca());
            r.getJbNovaBasa().setEnabled(true);
            r.setAlwaysOnTop(true);
            r.toFront();
        } //Si no, activo la gui seguent
        else {
            //temporitzador:
            //for (long i = 0L; i < 1000000000L; i++) {
            //}
            gui.setAlwaysOnTop(false);
            Gui r = llistaGuis.get((jugadorQueTira + 1) % 4);
            r.setAlwaysOnTop(true);
            r.toFront();
        }
    }

    private void pintaMarcador(Marcador m) {
        String pNos = new Integer(m.getNos()).toString();
        String pVos = new Integer(m.getVos()).toString();
        for (Gui gui : llistaGuis) {
            gui.getJlParella1Punts().setText(pNos);
            gui.getJlParella2Punts().setText(pVos);
        }
    }

    //Activo tots els botons dels possibles trumfo
    private void activarBotonsCantar(Gui gui) {
        gui.getJbCantarBastos().setEnabled(true);
        gui.getJbCantarButifarra().setEnabled(true);
        gui.getJbCantarCopes().setEnabled(true);
        gui.getJbCantarEspases().setEnabled(true);
        gui.getJbCantarOros().setEnabled(true);
    }

    //Activo tots els botons dels possibles trumfo
    private void desActivarBotonsCantar(Gui gui) {
        gui.getJbCantarBastos().setEnabled(false);
        gui.getJbCantarButifarra().setEnabled(false);
        gui.getJbCantarCopes().setEnabled(false);
        gui.getJbCantarEspases().setEnabled(false);
        gui.getJbCantarOros().setEnabled(false);
    }

    /**
     * Gestiona el que s'ha de fer quan es canta un trumfo: posar-lo al dat,
     * posar el seu valor, activar el botó nova bassa de qui hagi de començar,
     * desactivar els botons que ja no són necessaris i posar la gui de que ha
     * de començar la bassa en primer plà
     *
     * @param pal
     * @param gui
     */
    private void accioCantarTrumfo(int pal, Gui gui) {
        //Poso el trumfo del dat
        partida.getDatActual().setTrumfo(pal);

        //Posar el jugador que l'ha cantat a les gui
        int j = gui.getEoid();
        String s = (new Integer(j)).toString();
        for (Gui g: llistaGuis){
            g.getJLJugadorTrumfo().setText(s);
        }

        //Si es buti, els punts valdran el doble
        if (pal == 4) {
            partida.getDatActual().setValor(2);
        }

        //activo i desactivo els botons pertinents
        desActivarBotonsCantar(gui);
        gui.getJbPassar().setEnabled(false);

        //Ha de posar-se actiu nomès el botó novaBasa de quiReparteix + 1
        Gui r = llistaGuis.get((partida.getQuiReparteix() + 1) % 4);
        r.getJbNovaBasa().setEnabled(true);

        //Es posa a davant la gui de qui reparteix + 1. Per fer-ho primer les desactivo totes
        for (Gui g : llistaGuis) {
            g.setAlwaysOnTop(false);
        }
        r.setAlwaysOnTop(true);
        r.toFront();
    }

    public void retirarCartesTapet() {
        for (int i = 0; i < 4; i++) {
            cartesTapet.get(i).pintaCartaTapet(null);
        }
    }
}


/*
* This program is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License version 3, as published
by the Free Software Foundation.

This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranties of
MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR
PURPOSE.  See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along
with this program.  If not, see <http://www.gnu.org/licenses/>.

(On Debian systems, the complete text of the GNU General
Public License can be found in '/usr/share/common-licenses/GPL-3')
*/
TOP

Related Classes of aplicacio.Controlador

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.