//Created by mathieu albanese import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.event.*; public class SetteMezzo extends JPanel implements Runnable { // Variabili private JLabel giocatore, computer; private JPanel panel1, panel2, panel3; private JPanel[] emptyPanels1, emptyPanels2, emptyPanels3; private Carta[] carte; private int carta, counterGiocatore, counterComputer; private Thread thread; private boolean active; // Costruttore public SetteMezzo() { thread = new Thread(this); thread.start(); thread.suspend(); panel1 = new JPanel(new GridLayout(1, 11, 1, 1)); panel1.setBackground(new Color(0, 128, 0)); panel2 = new JPanel(new GridLayout(1, 11, 1, 1)); panel2.setBackground(new Color(0, 128, 0)); panel3 = new JPanel(new GridLayout(1, 11, 1, 1)); panel3.setBackground(new Color(0, 128, 0)); carte = new Carta[41]; for (int i = 0; i < 41; i++) carte[i] = new Carta(i); emptyPanels1 = new JPanel[10]; for (int i = 0; i < 10; i++) { emptyPanels1[i] = new JPanel(); emptyPanels1[i].setBackground(new Color(0, 128, 0)); } emptyPanels2 = new JPanel[10]; for (int i = 0; i < 10; i++) { emptyPanels2[i] = new JPanel(); emptyPanels2[i].setBackground(new Color(0, 128, 0)); } emptyPanels3 = new JPanel[10]; for (int i = 0; i < 10; i++) { emptyPanels3[i] = new JPanel(); emptyPanels3[i].setBackground(new Color(0, 128, 0)); } setBackground(new Color(0, 128, 0)); setPreferredSize(new Dimension(1020, 600)); setBorder(BorderFactory.createLoweredBevelBorder()); setLayout(new GridLayout(3, 1, 1, 1)); // Components giocatore = new JLabel(""); giocatore.setFont(new Font("Verdana", 1, 13)); giocatore.setHorizontalAlignment(JLabel.CENTER); giocatore.setForeground(Color.white); computer = new JLabel(""); computer.setFont(new Font("Verdana", 1, 13)); computer.setHorizontalAlignment(JLabel.CENTER); computer.setForeground(Color.white); panel1.add(giocatore, 0); for (int i = 1; i < 11; i++) { panel1.add(emptyPanels1[i - 1], i); } panel2.add(carte[0], 0); for (int i = 1; i < 11; i++) { panel2.add(emptyPanels2[i - 1], i); } panel3.add(computer, 0); for (int i = 1; i < 11; i++) { panel3.add(emptyPanels3[i - 1], i); } add(panel1); add(panel2); add(panel3); } public void startGame() { generaCarta(); counterGiocatore++; giocatore.setText("Giocatore"); panel1.remove(counterGiocatore); panel1.add(carte[carta], counterGiocatore); updateScoreGiocatore(); } public void updateScoreGiocatore() { SetteMezzoMain.punteggioG.setForeground(Color.red); double score = Double.valueOf(SetteMezzoMain.punteggioG.getText()) .doubleValue(); if (carta == 30) { score = 7.5; SetteMezzoMain.punteggioG.setText("" + score); verifyValue(score); return; } else if (carta < 8) score = score + carta; else if (carta == 8 || carta == 9 || carta == 10) score = score + 0.5; else { StringBuffer s = new StringBuffer("" + carta); String lastNString = new String("" + s.charAt(1)); int lastN = Integer.valueOf(lastNString).intValue(); if (lastN > 0 && lastN < 8) score = score + lastN; else score = score + 0.5; } SetteMezzoMain.punteggioG.setText("" + score); verifyValue(score); } public void updateScoreComputer() { double score = Double.valueOf(SetteMezzoMain.punteggioC.getText()) .doubleValue(); if (carta == 30) { score = 7.5; SetteMezzoMain.punteggioC.setText("" + score); verifyValueComputer(score); return; } else if (carta < 8) score = score + carta; else if (carta == 8 || carta == 9 || carta == 10) score = score + 0.5; else { StringBuffer s = new StringBuffer("" + carta); String lastNString = new String("" + s.charAt(1)); int lastN = Integer.valueOf(lastNString).intValue(); if (lastN > 0 && lastN < 8) score = score + lastN; else score = score + 0.5; } SetteMezzoMain.punteggioC.setText("" + score); verifyValueComputer(score); } public void verifyValueComputer(double score) { if (score > 7.5) { active = false; SetteMezzoMain.ris.setText("Il computer ha sballato - Hai vinto!"); SetteMezzoMain.btnGiu.setEnabled(false); SetteMezzoMain.btnSto.setEnabled(false); SetteMezzoMain.btnNew.setEnabled(true); int puntata = Integer.valueOf(SetteMezzoMain.puntata1.getText()) .intValue(); int cassa = Integer.valueOf(SetteMezzoMain.cassa1.getText()) .intValue(); SetteMezzoMain.cassa1.setText("" + (cassa + puntata * 2)); SetteMezzoMain.puntata1.setText("0"); SetteMezzoMain.giu.setText(""); thread.suspend(); } else if (score > 4.5) { active = false; SetteMezzoMain.giu.setText("Sto!"); double scoreGiocatore = Double.valueOf( SetteMezzoMain.punteggioG.getText()).doubleValue(); if (score < scoreGiocatore) { SetteMezzoMain.ris.setText("Hai vinto!"); SetteMezzoMain.btnGiu.setEnabled(false); SetteMezzoMain.btnSto.setEnabled(false); SetteMezzoMain.btnNew.setEnabled(true); int puntata = Integer .valueOf(SetteMezzoMain.puntata1.getText()).intValue(); int cassa = Integer.valueOf(SetteMezzoMain.cassa1.getText()) .intValue(); SetteMezzoMain.cassa1.setText("" + (cassa + puntata * 2)); SetteMezzoMain.puntata1.setText("0"); } else { SetteMezzoMain.ris.setText("Hai perso"); SetteMezzoMain.btnGiu.setEnabled(false); SetteMezzoMain.btnSto.setEnabled(false); SetteMezzoMain.btnNew.setEnabled(true); SetteMezzoMain.puntata1.setText("0"); } thread.suspend(); } } public void verifyValue(double score) { if (score > 7.5) { SetteMezzoMain.ris.setText("Sballato!"); SetteMezzoMain.btnGiu.setEnabled(false); SetteMezzoMain.btnSto.setEnabled(false); SetteMezzoMain.btnNew.setEnabled(true); SetteMezzoMain.puntata1.setText("0"); active = false; thread.suspend(); } } public void generaCarta() { carta = (int) ((Math.random() * 40) + 1); if (!carte[carta].state) carte[carta].state = true; else generaCarta(); } public void giu() { if (counterGiocatore < 10) { generaCarta(); counterGiocatore++; panel1.remove(counterGiocatore); panel1.add(carte[carta], counterGiocatore); updateScoreGiocatore(); } } public void sto() { computer.setText("Computer"); generaCarta(); counterComputer++; panel3.remove(counterComputer); panel3.add(carte[carta], counterComputer); updateScoreComputer(); thread.resume(); active = true; } public void reset() { counterGiocatore = 0; counterComputer = 0; carta = 0; giocatore.setText(""); computer.setText(""); remove(panel1); remove(panel2); remove(panel3); panel1 = new JPanel(new GridLayout(1, 11, 1, 1)); panel1.setBackground(new Color(0, 128, 0)); panel2 = new JPanel(new GridLayout(1, 11, 1, 1)); panel2.setBackground(new Color(0, 128, 0)); panel3 = new JPanel(new GridLayout(1, 11, 1, 1)); panel3.setBackground(new Color(0, 128, 0)); panel1.add(giocatore, 0); for (int i = 1; i < 11; i++) { panel1.add(emptyPanels1[i - 1], i); } panel2.add(carte[0], 0); for (int i = 1; i < 11; i++) { panel2.add(emptyPanels2[i - 1], i); } panel3.add(computer, 0); for (int i = 1; i < 11; i++) { panel3.add(emptyPanels3[i - 1], i); } add(panel1); add(panel2); add(panel3); carte = new Carta[41]; for (int i = 0; i < 41; i++) carte[i] = new Carta(i); updateUI(); } public void run() { while (true) { if (active) { try { thread.sleep(200); } catch (Exception e) { } if (counterComputer < 10) { generaCarta(); counterComputer++; panel3.remove(counterComputer); panel3.add(carte[carta], counterComputer); updateScoreComputer(); } } } } public static void main(String[] args) { JFrame frame = new JFrame("SetteMezzo"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.getContentPane().add(new SetteMezzo()); frame.pack(); frame.setVisible(true); } }
7 e mezzo
20 ago 2007















in fase di compilazione, questo programma da SOLO 41 errori!
Ma dov\’è la classe Carta?? Da un sacco di errori in compilazione.
ma la classe Carta ce la dobbiamo inventare noi??? almeno un consiglio su quello che c’è nella classe…