import java.applet.*; import java.awt.*; import java.awt.event.*; /* Creem un Canvas on dibuixarem el taulell. A mes, gestionara la colocació de peces.*/ class Escaquer extends Canvas{ /* constants de l'escaquer */ static final int sqsize=32; static final int rows= 8; static final int columns=8; static final String taulerInicial[][]= {{"tn","cn","an","dn","rn","an","cn","tn"}, {"pn","pn","pn","pn","pn","pn","pn","pn"}, {"","","","","","","",""}, {"","","","","","","",""}, {"","","","","","","",""}, {"","","","","","","",""}, {"pb","pb","pb","pb","pb","pb","pb","pb"}, {"tb","cb","ab","db","rb","ab","cb","tb"}}; /* Variables per a la gestio de la peça seleccionada */ boolean casellaSeleccionada; int iSel, jSel; /* Matriu d'Strings amb els noms de les peces */ String tauler[][]; /* Vector on hi haura els .gif */ Image [] figures; /* Imatge per fer el doble buffer */ Image dobleBuffer=null; public Escaquer(Image [] fig) { figures = fig; /* dimensionem el Canvas, (el taulell) */ setSize(sqsize*columns, sqsize*rows); } public void iniciaTauler() { /* posem les peces al inici de partida... */ tauler=new String [columns][rows]; for (int i = 0; i=0)&&(filaMouse<8)&&(columnaMouse>=0)&&(columnaMouse<8)) { if (escaquer.casellaSeleccionada) { if ((escaquer.iSel==columnaMouse)&&(escaquer.jSel==filaMouse)) escaquer.casellaSeleccionada = false; else { escaquer.posaPeca(filaMouse,columnaMouse,escaquer.agafaPeca(escaquer.jSel,escaquer.iSel)); escaquer.posaPeca(escaquer.jSel,escaquer.iSel,""); escaquer.casellaSeleccionada = false; } } else if (!escaquer.agafaPeca(filaMouse,columnaMouse).equals("")) { escaquer.casellaSeleccionada = true; escaquer.iSel=columnaMouse; escaquer.jSel=filaMouse; } repaint(); } } /* Aquest mètode captura i gestiona les accions */ public void actionPerformed(ActionEvent ae) { if (ae.getSource()==reinici) { escaquer.iniciaTauler(); repaint(); } } }