import java.awt.*; import java.awt.event.*; import java.applet.Applet; public class Kabe1 extends Applet implements MouseListener{ //Defineerib globaalsed muutujad int[][] laud = new int[8][8]; int x=10, y=10; boolean algNuppOlemas = false, sihtNuppOlemas = false, uusKabe = true, valgeKord=true; int aktRida = -1, aktVeerg = -1; //Funktsioon esialgse kabelaua loomiseks public void algseis(){ int i, j; for (i = 0; i < 8; i++) { for (j = 0; j < 8; j++) { if (((i+j)%2) == 0) { if (i < 3) { laud[i][j] = 1; } else if (i > 4) { laud[i][j] = 2; } else { laud[i][j] = 0; } } } } } //Kabelaua seaded public void paint(Graphics g){ int algX=21, algY=21, sihtRida = -1, sihtVeerg = -1, ruuduLaius=20, rida, veerg; //int pL, pR, pU, pD; //float pX, pY; //Loob esialgse kabelaua if (uusKabe == true) { algseis(); uusKabe=false; } //Hiirekuular addMouseListener(this); //Aktiivse ja sihtkoha määramine if (algNuppOlemas == false) { aktRida = (int)((y - algY)/20); aktVeerg = (int)((x - algX)/20); if ((valgeKord == true && (laud[aktRida][aktVeerg] == 1 || laud[aktRida][aktVeerg] == 3)) || (valgeKord == false && (laud[aktRida][aktVeerg] == 2 || laud[aktRida][aktVeerg] == 4))) { algNuppOlemas = true; } else { //Ei kuva aktiivset nuppu aktRida = 0; aktVeerg = 1; } } else { sihtRida = (int)((y - algY)/20); sihtVeerg = (int)((x - algX)/20); if (laud[sihtRida][sihtVeerg] == 0) { if ((laud[aktRida][aktVeerg]==1 && ((sihtRida==(aktRida+1) && (sihtVeerg==(aktVeerg+1) || sihtVeerg==(aktVeerg-1))) || (sihtRida==(aktRida+2) && ((sihtVeerg==(aktVeerg+2) && laud[aktRida+1][aktVeerg+1]==2) || (sihtVeerg==(aktVeerg-2) && laud[aktRida+1][aktVeerg-1]==2))))) || (laud[aktRida][aktVeerg]==2 && ((sihtRida==(aktRida-1) && (sihtVeerg==(aktVeerg+1) || sihtVeerg==(aktVeerg-1))) || (sihtRida==(aktRida-2) && ((sihtVeerg==(aktVeerg+2) && laud[aktRida-1][aktVeerg+1]==1) || (sihtVeerg==(aktVeerg-2) && laud[aktRida-1][aktVeerg-1]==1)))))) { algNuppOlemas = false; sihtNuppOlemas = true; } else { //Ei kuva sihtkohta sihtRida = 0; sihtVeerg = 1; algNuppOlemas = false; } } else { //Ei kuva sihtkohta sihtRida = 0; sihtVeerg = 1; algNuppOlemas = false; } } //Nuppude asendamine if (sihtNuppOlemas == true) { laud[sihtRida][sihtVeerg] = laud[aktRida][aktVeerg]; if (sihtRida == 7 && laud[aktRida][aktVeerg] == 1) { laud[sihtRida][sihtVeerg] = 3; } if (sihtRida == 0 && laud[aktRida][aktVeerg] == 2) { laud[sihtRida][sihtVeerg] = 4; } laud[aktRida][aktVeerg] = 0; sihtNuppOlemas = false; if (sihtRida == (aktRida + 2) || sihtRida == (aktRida - 2)) { if (aktRida > sihtRida) { if (aktVeerg > sihtVeerg) { laud[aktRida-1][aktVeerg-1] = 0; } else { laud[aktRida-1][aktVeerg+1] = 0; } } else { if (aktVeerg < sihtVeerg) { laud[aktRida+1][aktVeerg+1] = 0; } else { laud[aktRida+1][aktVeerg-1] = 0; } } } //Käiguõiguse andmine teisele mängijale if (valgeKord == true) { valgeKord = false; } else { valgeKord = true; } } //Kabelaua väljastus g.setColor(Color.gray); g.fillRect(11, 11, 180, 180); g.setColor(Color.white); g.fillRect(algX, algY, 160, 160); g.setColor(Color.black); for (rida = 0; rida < 8; rida++) { for (veerg = 0; veerg < 8; veerg++) { if (((rida + veerg)%2) == 0) { g.fillRect(algX+ruuduLaius*veerg, algY+ruuduLaius*rida, ruuduLaius, ruuduLaius); //Tavaline valge nupp if (laud[rida][veerg] == 1) { g.setColor(Color.white); } //Tavaline must nupp if (laud[rida][veerg] == 2){ g.setColor(Color.gray); } //Vinge valge nupp if (laud[rida][veerg] == 3) { g.setColor(Color.lightGray); } //Vinge must nupp if (laud[rida][veerg] == 4){ g.setColor(Color.darkGray); } //Aktiveeritud nupp if (rida == aktRida && veerg == aktVeerg){ g.setColor(Color.green); } //Sihtkohaks olev ala if (rida == sihtRida && veerg == sihtVeerg){ g.setColor(Color.blue); } g.fillOval((20+ruuduLaius*veerg)+3, (20+ruuduLaius*rida)+3, ruuduLaius-4, ruuduLaius-4); g.setColor(Color.black); } } } } //Hiire kordinaatide hankimine public void mousePressed(MouseEvent e) { x=e.getX(); y=e.getY(); repaint(); } public void mouseReleased(MouseEvent e){} public void mouseClicked(MouseEvent e){} public void mouseEntered(MouseEvent e){} public void mouseExited(MouseEvent e){} //Main public static void main(String[] argumendid) { Frame f=new Frame(); f.add(new Kabe1()); f.setSize(210, 230); f.setVisible(true); } }