import java.applet.Applet; import java.awt.*; import java.awt.event.*; import java.awt.image.*; import java.lang.*; import java.util.*; public class Mang1 extends Applet implements ActionListener, Runnable{ Image pilt1=Toolkit.getDefaultToolkit().getImage("lepatriinu.gif"); Image pilt2=Toolkit.getDefaultToolkit().getImage("tigu.gif"); Image pilt3=Toolkit.getDefaultToolkit().getImage("punanelill.gif"); Image pilt4=Toolkit.getDefaultToolkit().getImage("sininelill.gif"); Image pilt5=Toolkit.getDefaultToolkit().getImage("roosalill.gif"); Image[] pilt={pilt1,pilt2,pilt3,pilt4,pilt5}; //piltide massiiv int[][] arvud=new int[6][6]; //kahemõõtmeline massiiv piltide numbrite jaoks int hiirevajutus=0; //hiireklõpsu lugeja int i=0, j=0, k=0, l=0; //hiireklõpsude koordinaadid int x=0, y=0; //pildi koordinaadid int nr, nr1; //tsüklimuutujad, mille abil joonistatakse pildid long alghetk=new Date().getTime(); int punkte=0; Graphics piltg; Button nupp1=new Button("Kolm"); Label punktisilt, ajasilt; boolean veel=true; public Mang1(){ setLayout(new BorderLayout()); Panel p1=new Panel(new GridLayout(2, 1)); p1.add(punktisilt=new Label("Punkte: "+punkte)); p1.add(ajasilt=new Label("Aeg: "+(new Date().getTime()-alghetk)/1000)); p1.add(nupp1); nupp1.addActionListener(this); addMouseListener(new HiireKuular()); add(p1, BorderLayout.SOUTH); segapildid(); new Thread(this).start(); } public void paint(Graphics g){ //joonistab suvaliselt valitud 6x6 pilti (pildi suurus 35 punkti) y=0; for(nr1=0; nr1<6; nr1++){ for(nr=0; nr<6; nr++){ x=x+36; g.drawImage(pilt[arvud[nr][nr1]], x, y, this); } x=0; y=y+36; } } void kolmYhesugust(){ //kustutab 3 ühesugust kõrvutiasetsevat pilti ja genereerib suvaliselt uued for(int nr1=0; nr1<6; nr1++){ for(int a=0; a<4; a++){ if(arvud[a][nr1]==arvud[a+1][nr1] && arvud[a+1][nr1]==arvud[a+2][nr1]){ arvud[a][nr1]=(int)(Math.random()*5); arvud[a+1][nr1]=(int)(Math.random()*5); arvud[a+2][nr1]=(int)(Math.random()*5); punkte=punkte+3; System.out.println(punkte); } } } for(int nr=0; nr<6; nr++){ for(int a=0; a<4; a++){ if(arvud[nr][a]==arvud[nr][a+1] && arvud[nr][a+1]==arvud[nr][a+2]){ arvud[nr][a]=(int)(Math.random()*5); arvud[nr][a+1]=(int)(Math.random()*5); arvud[nr][a+2]=(int)(Math.random()*5); punkte=punkte+3; System.out.println(punkte); } } } punktisilt.setText("Punkte: "+punkte); } public void actionPerformed(ActionEvent e){ kolmYhesugust(); repaint(); } void segapildid(){ //segab pildid for(nr1=0; nr1<6; nr1++){ for(nr=0; nr<6; nr++){ double m=Math.random()*5; arvud[nr][nr1]=(int)m; System.out.print(arvud[nr][nr1]); } System.out.println(); } System.out.println("-------"); } public void run(){ while(veel){ try{Thread.sleep(1000);}catch(Exception e){} ajasilt.setText("Aeg: "+(new Date().getTime()-alghetk)/1000); } } class HiireKuular extends MouseAdapter{ //vahetab kaks pilti omavahel public void mouseClicked(MouseEvent e){ Graphics g=Mang1.this.getGraphics(); if(hiirevajutus==0){ i=e.getX()/36-1; j=e.getY()/36; hiirevajutus++; } else { if(hiirevajutus==1){ k=e.getX()/36-1; l=e.getY()/36; hiirevajutus=0; int c; c=arvud[i][j]; arvud[i][j]=arvud[k][l]; arvud[k][l]=c; } } Mang1.this.repaint(); System.out.println("H: "+hiirevajutus); } } public void windowClosing(WindowEvent e){ //sulgeb mänguakna X-ist System.exit(0); } }