aboutsummaryrefslogtreecommitdiff
path: root/JBriscola/all_versions/0.2/0.2 Beta 2/src/Frame.java
diff options
context:
space:
mode:
Diffstat (limited to 'JBriscola/all_versions/0.2/0.2 Beta 2/src/Frame.java')
-rwxr-xr-xJBriscola/all_versions/0.2/0.2 Beta 2/src/Frame.java243
1 files changed, 243 insertions, 0 deletions
diff --git a/JBriscola/all_versions/0.2/0.2 Beta 2/src/Frame.java b/JBriscola/all_versions/0.2/0.2 Beta 2/src/Frame.java
new file mode 100755
index 0000000..c7b6c36
--- /dev/null
+++ b/JBriscola/all_versions/0.2/0.2 Beta 2/src/Frame.java
@@ -0,0 +1,243 @@
1/*
2Copyright 2009 Sebastiano Tronto <sebastiano@luganega.org>
3
4This file is part of JBriscola.
5
6 JBriscola is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 2 of the License, or
9 (at your option) any later version.
10
11 JBriscola is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
15
16 You should have received a copy of the GNU General Public License
17 along with JBriscola; if not, write to the Free Software
18 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
19
20*/
21
22import javax.swing.*;
23import javax.sound.sampled.*;
24import java.io.*;
25import java.awt.*;
26import java.awt.event.*;
27
28public class Frame extends JFrame {
29 public static boolean mazzo;
30 public static Main main;
31 public static Pannello pannello;
32 public static JPanel pannello2;
33 public static JButton button;
34 public static JMenuBar barraMenu;
35 public static JMenu file, puntoInterrogativo;
36 public static JMenuItem nuovaPartita, opzioni, esci, informazioni, punti;
37 public static ImageIcon retro1, retro2, ultimaCarta;
38 public static ImageIcon[] giocata = new ImageIcon[2];
39 public static ImageIcon[] carteInMano = new ImageIcon[3];
40 public static ImageIcon[] carteCPU = new ImageIcon[3];
41 public static ImageIcon[] arrayCarteMescolate = new ImageIcon[40];
42 public static ImageIcon[][] arrayCarte = new ImageIcon[10][4];
43 public Frame() {
44 super( "Tronto's JBriscola " + main.version );
45 mazzo = true;
46 main = new Main();
47 pannello = new Pannello();
48 pannello2 = new JPanel( new FlowLayout() );
49 button = new JButton( main.stringaBottonePrendi );
50 button.addActionListener( new ActionListener() {
51 public void actionPerformed( ActionEvent e ) {
52 if ( giocata[0] != null && giocata[1] != null )
53 main.mano++;
54 try {
55 main.chiPrende();
56 } catch ( Exception ex ) {
57 JOptionPane.showMessageDialog( Frame.this, main.stringaPrimaGioca, "JBriscola " + main.version, JOptionPane.WARNING_MESSAGE );
58 }
59 if ( main.mano == 16 )
60 JOptionPane.showMessageDialog( Frame.this, main.stringaUltime4, "JBriscola " + main.version, JOptionPane.INFORMATION_MESSAGE );
61 if ( main.mano == 17 ) {
62 mazzo = false;
63 ultimaCarta = null;
64 pannello.repaint();
65 Frame.this.repaint();
66 }
67 if ( main.mano == 20 ) {
68 String titolo = "";
69 String suonoFinale = "";
70 if ( main.punteggio > main.punteggioCPU ) {
71 titolo = main.stringaVinto;
72 suonoFinale = "sounds/perso.wav";
73 }
74 if ( main.punteggio < main.punteggioCPU ) {
75 titolo = main.stringaPerso;
76 suonoFinale = "sounds/vinto.wav";
77 }
78 if ( main.punteggio == main.punteggioCPU ) {
79 titolo = main.stringaPareggio;
80 suonoFinale = "sounds/pareggio.wav";
81 }
82 if ( main.sound ) {
83 try {
84 AudioFileFormat aff = AudioSystem.getAudioFileFormat( ClassLoader.getSystemResource( suonoFinale ) );
85 AudioInputStream ais = AudioSystem.getAudioInputStream( ClassLoader.getSystemResource( suonoFinale ) );
86 AudioFormat af = aff.getFormat();
87 DataLine.Info info = new DataLine.Info(
88 Clip.class,
89 ais.getFormat(),
90 ( (int) ais.getFrameLength() *
91 af.getFrameSize() ) );
92 Clip ol = ( Clip ) AudioSystem.getLine( info );
93 ol.open(ais);
94 ol.loop( 0 );
95 } catch ( Exception ex ) {
96 System.err.println( e );
97 }
98 }
99 JOptionPane.showMessageDialog( Frame.this, main.stringaGiocatore + main.punteggio + main.stringaComputer + main.punteggioCPU, titolo, JOptionPane.PLAIN_MESSAGE );
100 }
101 }
102 } );
103 barraMenu = new JMenuBar();
104 file = new JMenu( "File" );
105 nuovaPartita = new JMenuItem( main.stringaNuovaPartita );
106 nuovaPartita.addActionListener( new ActionListener() {
107 public void actionPerformed( ActionEvent e ) {
108 if ( main.mano == 20 ) {
109 main.mischia();
110 pannello.repaint();
111 repaint();
112 }
113 else {
114 int selezione = JOptionPane.showOptionDialog( Frame.this, main.stringaVuoiDavveroIniziare, "JBriscola " + main.version, JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, new String[] { main.stringaSi, main.stringaNo }, main.stringaNo );
115 if ( selezione == JOptionPane.YES_OPTION ) {
116 main.mischia();
117 pannello.repaint();
118 repaint();
119 }
120 }
121 }
122 });
123 opzioni = new JMenuItem( main.stringaOpzioni );
124 opzioni.addActionListener( new ActionListener() {
125 public void actionPerformed( ActionEvent e ) {
126 OptionFrame optionFrame = new OptionFrame();
127 optionFrame.setDefaultCloseOperation( JFrame.DISPOSE_ON_CLOSE );
128 optionFrame.setResizable( false );
129 optionFrame.setAlwaysOnTop( true );
130 optionFrame.setSize( 300, 150 );
131 optionFrame.setLocation( (Toolkit.getDefaultToolkit().getScreenSize().width - 300) / 2,
132 (Toolkit.getDefaultToolkit().getScreenSize().height - 150) / 2);
133 optionFrame.setVisible( true );
134 }
135 });
136 esci = new JMenuItem( main.stringaEsci );
137 esci.addActionListener( new ActionListener() {
138 public void actionPerformed( ActionEvent e ) {
139 int selezione = JOptionPane.showOptionDialog( Frame.this, main.stringaVuoiDavveroUscire, "JBriscola " + main.version, JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, new String[] { main.stringaSi, main.stringaNo }, main.stringaNo );
140 if ( selezione == JOptionPane.YES_OPTION )
141 Frame.this.dispose();
142 }
143 });
144 file.add( nuovaPartita );
145 file.add( opzioni );
146 file.addSeparator();
147 file.add( esci );
148 puntoInterrogativo = new JMenu( "?" );
149 informazioni = new JMenuItem( main.stringaInformazioni );
150 informazioni.addActionListener( new ActionListener() {
151 public void actionPerformed( ActionEvent e ) {
152 JOptionPane.showMessageDialog( Frame.this, main.stringaInformazioni2, main.stringaInformazioni, JOptionPane.PLAIN_MESSAGE );
153 }
154 } );
155 punti = new JMenuItem( main.stringaPunteggio );
156 punti.addActionListener( new ActionListener() {
157 public void actionPerformed( ActionEvent e ) {
158 JOptionPane.showMessageDialog( Frame.this, main.stringaGiocatore + main.punteggio + "\n" + main.stringaComputer + main.punteggioCPU, main.stringaPunteggio, JOptionPane.PLAIN_MESSAGE );
159 }
160 } );
161 puntoInterrogativo.add( punti );
162 puntoInterrogativo.add( informazioni );
163 barraMenu.add( file );
164 barraMenu.add( puntoInterrogativo );
165 setJMenuBar( barraMenu );
166 retro1 = new ImageIcon( ClassLoader.getSystemResource( "img/retro1.jpg" ) );
167 retro2 = new ImageIcon( ClassLoader.getSystemResource( "img/retro2.jpg" ) );
168 for (int i = 0; i < 10; i++)
169 for (int j = 0; j < 4; j++)
170 arrayCarte[i][j] = new ImageIcon( ClassLoader.getSystemResource( "img/" + (i+1) + "-" + (j+1) + ".jpg" ) );
171 main.mischia();
172 pannello2.add( button );
173 setLayout( new BorderLayout() );
174 add( pannello, BorderLayout.CENTER );
175 add( pannello2, BorderLayout.SOUTH );
176 addMouseListener(
177 new MouseAdapter() {
178 public void mouseClicked ( MouseEvent e ) {
179 if ( mettiCarta( e.getX(), e.getY() ) ) {
180 if ( !main.CPUHaGiocato )
181 main.giocaCPU();
182 }
183 }
184 }
185 );
186 addWindowListener(
187 new WindowAdapter() {
188 public void windowClosing( WindowEvent e ) {
189 int selezione = JOptionPane.showOptionDialog( Frame.this, main.stringaVuoiDavveroUscire, "JBriscola " + main.version, JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, new String[] { main.stringaSi, main.stringaNo }, main.stringaNo );
190 if ( selezione == JOptionPane.YES_OPTION )
191 System.exit( 0 );
192 }
193 }
194 );
195 }
196 public boolean mettiCarta( int x, int y ) {
197 if ( !main.toccaAllaCPU && giocata[0] == null ) {
198 if ( main.sound &&
199 ( ( x > 230 && x < 290 && y > 340 && y < 566 ) ||
200 ( x > 300 && x < 360 && y > 340 && y < 566 ) ||
201 ( x > 370 && x < 430 && y > 340 && y < 566 ) ) ) {
202 try {
203 double a = Math.random() * 6;
204 int i = (int) a;
205 AudioFileFormat aff = AudioSystem.getAudioFileFormat( ClassLoader.getSystemResource("sounds/" + i + ".wav") );
206 AudioInputStream ais = AudioSystem.getAudioInputStream( ClassLoader.getSystemResource("sounds/" + i + ".wav") );
207 AudioFormat af = aff.getFormat();
208 DataLine.Info info = new DataLine.Info(
209 Clip.class,
210 ais.getFormat(),
211 ( (int) ais.getFrameLength() *
212 af.getFrameSize() ) );
213 Clip ol = ( Clip ) AudioSystem.getLine( info );
214 ol.open(ais);
215 ol.loop( 0 );
216 } catch ( Exception e ) {
217 System.err.println( e );
218 }
219 }
220 if ( x > 230 && x < 290 && y > 340 && y < 566 ) {
221 giocata[0] = carteInMano[0];
222 carteInMano[0] = null;
223 pannello.repaint();
224 return true;
225 }
226 if ( x > 300 && x < 360 && y > 340 && y < 566 ) {
227 giocata[0] = carteInMano[1];
228 carteInMano[1] = null;
229 pannello.repaint();
230 return true;
231 }
232 if ( x > 370 && x < 430 && y > 340 && y < 566 ) {
233 giocata[0] = carteInMano[2];
234 carteInMano[2] = null;
235 pannello.repaint();
236 return true;
237 }
238 }
239 return false;
240 }
241}
242
243

Generated with cgit - Back to sebastiano.tronto.net