[ DavorPro @ 11.02.2007. 17:01 ] @
Kompajlirajte kod i zaigrajte nasu malu slagalicu. Ako imate kakvu dobru ideju za poboljsanje ove igrice podjelite sa nama. Code: /* * Slagalica.java * * Created on 2007. veljača 06, 19:02 * * To change this template, choose Tools | Template Manager * and open the template in the editor. */ /** * * @author Davor */ import java.awt.*; import java.awt.event.*; import javax.swing.*; public class SlagalicaDZ extends JFrame{ JPanel panel=new JPanel(); int brojPoteza=0; int[] randomi= new int[99]; public SlagalicaDZ() { initiComponents(); } private void initiComponents(){ this.setContentPane(panel); panel.setLayout(new GridLayout(10,10)); popuniRandome(); dodajDugmeta(); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setBounds(10,10,800,700); this.setResizable(false); //neda povecavati ili smanjivati this.setVisible(true); this.repaint(); } private void popuniRandome(){ int brojac=0; while(brojac<99){ int tmp=(int)(Math.random()*99)+1; if(!postoji(tmp)){ randomi[brojac]=tmp; brojac++; } } } private boolean postoji(int broj){ for(int i=0;i<randomi.length;i++){ if (randomi[i]==broj)return true; } return false; } private void dodajDugmeta(){ for(int i=0;i<randomi.length;i++){ MojeDugme temp=new MojeDugme(""+randomi[i]); panel.add(temp,""+randomi[i]); } panel.add(new JLabel(),"labela"); } public static void main (String[] args){ SwingUtilities.invokeLater(new Runnable(){ public void run(){ new SlagalicaDZ(); } }); } public void dogodioSeKlik(ActionEvent e){ MojeDugme dugme=(MojeDugme)e.getSource(); Component[] c=panel.getComponents(); int pozicijaDugmeta= dajPozicijuDugmeta(dugme); int pozicijaLabele=dajPozicijuLabela(); if(pozicijaDugmeta+10==pozicijaLabele || pozicijaDugmeta-10==pozicijaLabele || pozicijaDugmeta+1==pozicijaLabele || pozicijaDugmeta-1==pozicijaLabele){ Component temp=panel.getComponent(pozicijaLabele); panel.add(dugme,pozicijaLabele); panel.add(temp,pozicijaDugmeta); this.paintAll(this.getGraphics()); brojPoteza++; this.setTitle("Broj poteza:"+brojPoteza); } } private int dajPozicijuDugmeta(MojeDugme dugme){ Component[] c= panel.getComponents(); for(int i=0;i<c.length;i++){ if(c[i]instanceof MojeDugme)//2 if((MojeDugme)c[i]==dugme){ //1 return i; } } return -1; } private int dajPozicijuLabela(){ Component[] polje=panel.getComponents(); for(int i=0;i<polje.length;i++){ if(polje[i]instanceof JLabel) return i; } return -1; } class MojeDugme extends JButton implements ActionListener{ public void actionPerformed(ActionEvent e) { dogodioSeKlik(e); } MojeDugme(String title){ this.setText(title); this.addActionListener(this); } } } [Ovu poruku je menjao hyle dana 12.02.2007. u 08:56 GMT+1] |