Professional Documents
Culture Documents
Minesweeper
Minesweeper
*;
import java.awt.*;
import javax.swing.*;
import java.util.*;
public class Minesweeper extends JFrame implements ActionListener{
private JPanel p!new JPanel"#;
private JPanel p$!new JPanel"new %ridLa&out"'('##;
private )con ico!new )mage)con"*smile&.gi+*#;
private )con ico$!new )mage)con"*mine.gi+*#;
private J,utton s!new J,utton"ico#;
private J,utton -.-. b!new J,utton-'.-'.;
int -.-.m!new int-$.-$.;
private JMenu,ar mb!new JMenu,ar"#;
private JMenu m!new JMenu"*/ptiuni*#;
private JMenu)tem mi!new JMenu)tem"*0ew game*#;
private JMenu)tem mi$!new JMenu)tem"*1xit*#;
public Minesweeper"#{
super"*M)012311P14*#;
setJMenu,ar "mb#;
mb.add"m#;
m.add"mi#;
m.add2eparator"#;
m.add"mi$#;
add"p(,orderLa&out.0/456#;
add"p$#;
p.add"s#;
generare"$'#;
parcurgere"#;
+or"int i!';i7b.lengt8;i99#
+or"int j!';j7b-i..lengt8;j99#{
b-i.-j.!new J,utton"#;
:: i+"m-i9.-j9.!!;# b-i.-j..set,ac<ground"=olor.41>#;
p$.add"b-i.-j.#;
b-i.-j..addActionListener"t8is#;
?
set2i@e"A''(A''#;
setLocation4elative5o"null#;
set4esi@able"+alse#;
setBisible"true#;
s.addActionListener"
new ActionListener"#{
public void actionPer+ormed"Action1vent ev#{
new%ame"#;
?
?
#;
mi.addActionListener"
new ActionListener"#{
public void actionPer+ormed"Action1vent ev#{
new%ame"#;
?
?
#;
mi$.addActionListener"
new ActionListener"#{
public void actionPer+ormed"Action1vent ev#{
2&stem.exit"'#;
?
?
#;
Ce&2tro<e <s!Ce&2tro<e.getCe&2tro<e"*control D*#;
mi$.setAccelerator"<s#;
Ce&2tro<e <s$!Ce&2tro<e.getCe&2tro<e"*control alt 0*#;
mi.setAccelerator"<s$#;
m.setMnemonic"EoE#;
?
public void initiali@are"#{
+or"int i!';i7m.lengt8;i99#
+or"int j!';j7m-i..lengt8;j99#{
m-i.-j.!';
?
?
public void generare"int n#{
4andom r!new 4andom"#;
+or"int i!';i7n;i99#{
int x!r.next)nt"'#9;
int &!r.next)nt"'#9;
i+"m-x.-&.!!;#i;;;
else{
m-x.-&.!;;
?
?
?
public void parcurgere"#{
+or"int i!;i7m.lengt8;;i99#
+or"int j!;j7m-i..lengt8;;j99#{
i+"m-i.-j.F!;#{
i+"m-i;.-j;.!!;# m-i.-j.99;
i+"m-i;.-j.!!;# m-i.-j.99;
i+"m-i;.-j9.!!;# m-i.-j.99;
i+"m-i.-j;.!!;# m-i.-j.99;
i+"m-i.-j9.!!;# m-i.-j.99;
i+"m-i9.-j;.!!;# m-i.-j.99;
i+"m-i9.-j.!!;# m-i.-j.99;
i+"m-i9.-j9.!!;# m-i.-j.99;
?
?
?
public void actionPer+ormed"Action1vent ev#{
J,utton bx!"J,utton# ev.get2ource"#;
+or"int i!';i7b.lengt8;i99#
+or"int j!';j7b-i..lengt8;j99#{
i+"bx!!b-i.-j.#{
i+"m-i9.-j9.!!;#{
game/ver"#;
?
else{
b-i.-j..set5ext"m-i9.-j9.9**#;
b-i.-j..set1nabled"+alse#;
?
?
?
?
public void activare,utoane"boolean bool#{
+or"int i!';i7b.lengt8;i99#
+or"int j!';j7b-i..lengt8;j99#
b-i.-j..set1nabled"bool#;
?
public void a+isareMine"#{
+or"int i!';i7b.lengt8;i99#
+or"int j!';j7b-i..lengt8;j99#
i+"m-i9.-j9.!!;# b-i.-j..set)con"ico$#;
?
public void new%ame"#{
int r!J/ptionPane.s8ow=on+irm>ialog"null(*2igur vrei sa incepi un nou
jocG*(*)ntrebare*(J/ptionPane.H12I0/I/P5)/0#;
i+"rF!J/ptionPane.H12I/P5)/0# return;
initiali@are"#;
generare"$'#;
parcurgere"#;
desetareMine"#;
activare,utoane"true#;
?
public void game/ver"#{
activare,utoane"+alse#;
a+isareMine"#;
J/ptionPane.s8owMessage>ialog"null(*%AM1 /B14F*#;
?
public void desetareMine"#{
+or"int i!';i7b.lengt8;i99#
+or"int j!';j7b-i..lengt8;j99#
{b-i.-j..set)con"null#;
b-i.-j..set5ext"null#;
?
?
public static void main"2tring -. args#{
new Minesweeper"#;
?
?