Forum » Programiranje » Puzzle 15 koda
Puzzle 15 koda
Serial ::
Zdravo.
Pri predmetu programiranje mam za nardit Igrico Puzzle 15 v java kodi.
Igra zgleda tako http://www.javaonthebrain.com/java/puzz...
Sicer zdej gremo k mojemu problemu.. na internetu sem najdel dokaj lepo kodo sam so določeni deli ki jih ne razumem v tej kodi in bi rabil malo pomoči..V komentarjih sem napisal kje in kaj ne razumem :(
import java.awt.*;
import java.awt.event.*;
public class Puzzle extends Frame{
Button[] buton=new Button[16];
String[] stevilopuzla={"1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"};
boolean[] preveri={false,false,false,false,false,false,false,false,false,false,false,false,false,false,false};
// čemu služijo tej false,sklepam da so zato tle da lahko med seboj v igri gumbe menjavamo sam ne razumem kako to deluje. :/
public Puzzle(){
setLayout(new GridLayout(4,4));
buton[i]=new Button();
add(buton[i]);}
/*******random label********/
labelVer:
for(;;){
int k=(int)(Math.random()*15);
if(preveri[k]){
continue labelVer;
}
else{
buton[i].setLabel(stevilopuzla[k]);
preveri[k]=true;
break;
}
}
}
/***************************/
//tle se začne uno kar me najbolj muči
buton[i].addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ae){
if((ae.getSource()).equals(buton[0])){
degistir(0,1); //kaj pomenijo te številke?
degistir(0,4);}
//prvo sem mislil da so kordinate kje se nahajajo gumbi v tej naši "mreži" kasneje sem opazil da zo ni to..te številke služijo temu da s katerimi sosednjimi gumbi lahko mi menjujejo gumbe med seboj....ampak bi rabil da mi kdo to razloži kako to deluje, hvala :)
if((ae.getSource()).equals(buton[1])){
degistir(1,0);
degistir(1,5);
degistir(1,2);
}
if((ae.getSource()).equals(buton[2])){
degistir(2,1);
degistir(2,6);
degistir(2,3);
}
if((ae.getSource()).equals(buton[3])){
degistir(3,2);
degistir(3,7);
}
if((ae.getSource()).equals(buton[4])){
degistir(4,0);
degistir(4,5);
degistir(4,8);
}
if((ae.getSource()).equals(buton[5])){
degistir(5,1);
degistir(5,4);
degistir(5,6);
degistir(5,9);
}
if((ae.getSource()).equals(buton[6])){
degistir(6,2);
degistir(6,5);
degistir(6,7);
degistir(6,10);
}
if((ae.getSource()).equals(buton[7])){
degistir(7,3);
degistir(7,11);
degistir(7,6);
}
if((ae.getSource()).equals(buton[8])){
degistir(8,4);
degistir(8,12);
degistir(8,9);
}
if((ae.getSource()).equals(buton[9])){
degistir(9,8);
degistir(9,10);
degistir(9,5);
degistir(9,13);
}
if((ae.getSource()).equals(buton[10])){
degistir(10,9);
degistir(10,11);
degistir(10,6);
degistir(10,14);
}
if((ae.getSource()).equals(buton[11])){
degistir(11,15);
degistir(11,10);
degistir(11,7);
}
if((ae.getSource()).equals(buton[12])){
degistir(12,8);
degistir(12,13);
}
if((ae.getSource()).equals(buton[13])){
degistir(13,12);
degistir(13,14);
degistir(13,9);
}
if((ae.getSource()).equals(buton[14])){
degistir(14,13);
degistir(14,10);
degistir(14,15);
}
if((ae.getSource()).equals(buton[15])){
degistir(15,14);
degistir(15,11);
}
}
});
}
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent we){ // za zapret okno
dispose();
System.exit(0);//do tle velja
}
});
setSize(400,400);
setVisible(true);
}
public static void main(String args[]){
Puzzle p=new Puzzle();}
public void degistir(int x, int y){ // tega tle na koncu tudi ne razumem kaj preveč
if((buton[y].getLabel()).equals(""))
{buton[y].setLabel(buton[x].getLabel());
buton[x].setLabel("");}
}
}
to je to :)
Lep pozdrav
Pri predmetu programiranje mam za nardit Igrico Puzzle 15 v java kodi.
Igra zgleda tako http://www.javaonthebrain.com/java/puzz...
Sicer zdej gremo k mojemu problemu.. na internetu sem najdel dokaj lepo kodo sam so določeni deli ki jih ne razumem v tej kodi in bi rabil malo pomoči..V komentarjih sem napisal kje in kaj ne razumem :(
import java.awt.*;
import java.awt.event.*;
public class Puzzle extends Frame{
Button[] buton=new Button[16];
String[] stevilopuzla={"1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"};
boolean[] preveri={false,false,false,false,false,false,false,false,false,false,false,false,false,false,false};
// čemu služijo tej false,sklepam da so zato tle da lahko med seboj v igri gumbe menjavamo sam ne razumem kako to deluje. :/
public Puzzle(){
setLayout(new GridLayout(4,4));
buton[i]=new Button();
add(buton[i]);}
/*******random label********/
labelVer:
for(;;){
int k=(int)(Math.random()*15);
if(preveri[k]){
continue labelVer;
}
else{
buton[i].setLabel(stevilopuzla[k]);
preveri[k]=true;
break;
}
}
}
/***************************/
//tle se začne uno kar me najbolj muči
buton[i].addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ae){
if((ae.getSource()).equals(buton[0])){
degistir(0,1); //kaj pomenijo te številke?
degistir(0,4);}
//prvo sem mislil da so kordinate kje se nahajajo gumbi v tej naši "mreži" kasneje sem opazil da zo ni to..te številke služijo temu da s katerimi sosednjimi gumbi lahko mi menjujejo gumbe med seboj....ampak bi rabil da mi kdo to razloži kako to deluje, hvala :)
if((ae.getSource()).equals(buton[1])){
degistir(1,0);
degistir(1,5);
degistir(1,2);
}
if((ae.getSource()).equals(buton[2])){
degistir(2,1);
degistir(2,6);
degistir(2,3);
}
if((ae.getSource()).equals(buton[3])){
degistir(3,2);
degistir(3,7);
}
if((ae.getSource()).equals(buton[4])){
degistir(4,0);
degistir(4,5);
degistir(4,8);
}
if((ae.getSource()).equals(buton[5])){
degistir(5,1);
degistir(5,4);
degistir(5,6);
degistir(5,9);
}
if((ae.getSource()).equals(buton[6])){
degistir(6,2);
degistir(6,5);
degistir(6,7);
degistir(6,10);
}
if((ae.getSource()).equals(buton[7])){
degistir(7,3);
degistir(7,11);
degistir(7,6);
}
if((ae.getSource()).equals(buton[8])){
degistir(8,4);
degistir(8,12);
degistir(8,9);
}
if((ae.getSource()).equals(buton[9])){
degistir(9,8);
degistir(9,10);
degistir(9,5);
degistir(9,13);
}
if((ae.getSource()).equals(buton[10])){
degistir(10,9);
degistir(10,11);
degistir(10,6);
degistir(10,14);
}
if((ae.getSource()).equals(buton[11])){
degistir(11,15);
degistir(11,10);
degistir(11,7);
}
if((ae.getSource()).equals(buton[12])){
degistir(12,8);
degistir(12,13);
}
if((ae.getSource()).equals(buton[13])){
degistir(13,12);
degistir(13,14);
degistir(13,9);
}
if((ae.getSource()).equals(buton[14])){
degistir(14,13);
degistir(14,10);
degistir(14,15);
}
if((ae.getSource()).equals(buton[15])){
degistir(15,14);
degistir(15,11);
}
}
});
}
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent we){ // za zapret okno
dispose();
System.exit(0);//do tle velja
}
});
setSize(400,400);
setVisible(true);
}
public static void main(String args[]){
Puzzle p=new Puzzle();}
public void degistir(int x, int y){ // tega tle na koncu tudi ne razumem kaj preveč
if((buton[y].getLabel()).equals(""))
{buton[y].setLabel(buton[x].getLabel());
buton[x].setLabel("");}
}
}
to je to :)
Lep pozdrav
Serial ::
manjkajo tri for zanke ker mi je težilo da niso zaklučene kode in sem jih dal vn.. če komu rabijo da bi mi pomagal naj pove :)
Serial ::
no razumev sem kaj pomenijo tiste številke in kako delujejo...
tisti del kode s številkami se nanaša potem spodaj na to
public void degistir(int x, int y){
if((gumbek[y].getLabel()).equals(""))
{gumbek[y].setLabel(gumbek[x].getLabel());
gumbek[x].setLabel("");}
bi mi lahko kdo povedal kaj to dela (bolj kmečko razožitev bi rabil) ? :)
tisti del kode s številkami se nanaša potem spodaj na to
public void degistir(int x, int y){
if((gumbek[y].getLabel()).equals(""))
{gumbek[y].setLabel(gumbek[x].getLabel());
gumbek[x].setLabel("");}
bi mi lahko kdo povedal kaj to dela (bolj kmečko razožitev bi rabil) ? :)
blaz_ ::
če te zanima za tole kodo?
public void degistir(int x, int y){
if((gumbek[y].getLabel()).equals(""))
{gumbek[y].setLabel(gumbek[x].getLabel());
gumbek[x].setLabel("");}
potem tale primerja vrednost label gumba na poziciji y, ter gumba na poziciji x
če je labela na poziciji y enaka "" (se pravi prazna - s .equals se primerja za enakost stringov)
potem je tam prostor da se premakne ploščico (to naredi s gumbek[y].setLabel, ta postane gumbek[x].label)
kar je potrebno narediti še, je da se tisti kvadratek, kjer je bila prej ploščica označi, kot da je prazen
to naredi s gumbek[x].setLabel("");
podobno je pri tej kodi:
if((ae.getSource()).equals(buton[0])){
degistir(0,1); //kaj pomenijo te številke?
degistir(0,4);
}
vzame za preverjanje en gumb (v tem primeru za prvo ploščico)
ter preveri če je ta ploščica pritisnjena (verjetno je zato tam razred Button, nanj pa actionListener), če je pritisnjena, se pač premakne to ploščico, ampak ker je samo eno prazen polje, bo degistir(x,y), samo pri tistem polju dejansko premaknil ploščico
Lp
public void degistir(int x, int y){
if((gumbek[y].getLabel()).equals(""))
{gumbek[y].setLabel(gumbek[x].getLabel());
gumbek[x].setLabel("");}
potem tale primerja vrednost label gumba na poziciji y, ter gumba na poziciji x
če je labela na poziciji y enaka "" (se pravi prazna - s .equals se primerja za enakost stringov)
potem je tam prostor da se premakne ploščico (to naredi s gumbek[y].setLabel, ta postane gumbek[x].label)
kar je potrebno narediti še, je da se tisti kvadratek, kjer je bila prej ploščica označi, kot da je prazen
to naredi s gumbek[x].setLabel("");
podobno je pri tej kodi:
if((ae.getSource()).equals(buton[0])){
degistir(0,1); //kaj pomenijo te številke?
degistir(0,4);
}
vzame za preverjanje en gumb (v tem primeru za prvo ploščico)
ter preveri če je ta ploščica pritisnjena (verjetno je zato tam razred Button, nanj pa actionListener), če je pritisnjena, se pač premakne to ploščico, ampak ker je samo eno prazen polje, bo degistir(x,y), samo pri tistem polju dejansko premaknil ploščico
Lp
Ko tehnologija odpove, uporabi macolo.
Blinder ::
Na keri soli mate to za naredit?
99.991% of over-25 population has tried kissing.
If you're one of the 0.009% who hasn't, copy & paste this in your Signature.
Intel i3-12100f gtx 3050 Pismo smo stari v bozjo mater. Recesija generacija
If you're one of the 0.009% who hasn't, copy & paste this in your Signature.
Intel i3-12100f gtx 3050 Pismo smo stari v bozjo mater. Recesija generacija
Serial ::
Hvala Blaz, se mi je zdelo neki takega sam sem mislu da da program gumbom pač koordinate (naprimer gumb 1 (x=2,y=3) in da se nahaja na tem mestu v naši "mreži") in zato mi ni blo jasno zakaj primerja x in y posamično..
Šola pa je famnit (rač & informatika ).
lp
Šola pa je famnit (rač & informatika ).
lp
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | [Java]Problem z vektorjemOddelek: Programiranje | 1479 (1348) | KernelPanic |
» | java, Swing in vmesnik ActionListenerOddelek: Programiranje | 698 (635) | marjan_h |
» | 4 v vrsto [java pomoč]Oddelek: Programiranje | 1528 (1355) | Spura |
» | [Java] Zagon appleta v HTMLOddelek: Programiranje | 1559 (1381) | Bela01 |
» | [NALOGA][Java] Težave pri pisanju slikarjaOddelek: Programiranje | 2309 (1951) | l0g1t3ch |