Interfaccia per un giochino

di il
2 risposte

Interfaccia per un giochino

Buona sera, mi trovo un esercizio da svolgere in cui devo creare un'interfaccia di un giochino tra Dama, Forza4, e Prato Fiorito, io avevo deciso di svolgere quella per la dama perchè apparentemente mi sembrava più semplice, ma quando mi ritrovo di fronte al codice mi blocco.
L'esercizio si basa sul personalizzare un codice già pre-complilato che è il seguente:

import javax.swing.*;
import java.awt.event.*;
import java.util.*;

public class AppGrafica {
	private JFrame frame;
	
	/* INIZIO PARTE DA PERSONALIZZARE */
	private JButton bottone1;
	private JButton bottone2;
	private JLabel etichetta1;
	private JTextField campoTesto;
	private JLabel etichetta2;
	private JButton bottone3;
	private String statoBottone3;
	private ArrayList<JButton> bottoniDestra;
	/* FINE PARTE DA PERSONALIZZARE */
	
	public AppGrafica()
	{	frame = new JFrame();
		frame.getContentPane().setLayout(null);					
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);	
		impostaLF(); //Look and Feel, impostarlo utilizzando quello del Sistema Op. su cui viene eseguita l'app
		frame.setVisible(true);
		inizializzaContenuto();
		
		[color=#FF4000]/* INIZIO PARTE DA PERSONALIZZARE */  [/color]
		frame.setBounds(100, 100, 500, 450);//personalizzarla con i dati dell'app che si vuole realizzare				
		frame.setTitle("Esempio");
		[color=#FF4000]/* FINE PARTE DA PERSONALIZZARE */ [/color]
	}
	
	private ImageIcon caricaIcona(String nomeFile)
	{	return new ImageIcon(getClass().getResource(nomeFile));
	}
	
	private void impostaLF()
	{	try
		{	UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
		}
		catch(Exception e)
		{	System.out.println(e);
			System.exit(0);
		}
	}
	
	private void inizializzaContenuto()
	{	/* INIZIO PARTE DA PERSONALIZZARE */
		bottone1 = new JButton("Aumenta");						
		frame.getContentPane().add(bottone1);					
		bottone1.setBounds(80, 30, 120, 30);						
		bottone1.addActionListener(new PressioneBottone1());
		
		bottone2 = new JButton("Diminuisci");						
		frame.getContentPane().add(bottone2);					
		bottone2.setBounds(80, 110, 120, 30);						
		bottone2.addActionListener(new PressioneBottone2());
	
		etichetta1 = new JLabel("0");
		frame.getContentPane().add(etichetta1);
		etichetta1.setBounds(140, 70, 40, 30);
		
		campoTesto = new JTextField("");
		frame.getContentPane().add(campoTesto);
		campoTesto.setBounds(80, 190, 120, 30);

		etichetta2 = new JLabel("");
		frame.getContentPane().add(etichetta2);
		etichetta2.setBounds(80, 270, 120, 30);	
		
		bottone3 = new JButton();						
		frame.getContentPane().add(bottone3);					
		bottone3.setBounds(110, 320, 40, 40);
		statoBottone3="OK";
		bottone3.setIcon(caricaIcona("ok.png"));
		bottone3.addActionListener(new PressioneBottone3());
		
		bottoniDestra=new ArrayList<JButton>();
		ActionListener listener = new PressioneBottoniDestra();
		for(int i=1;i<=5;i++)
		{	JButton bottone=new JButton(""+i);
			frame.getContentPane().add(bottone);					
			bottone.setBounds(250, 30*i, 120, 30);
			bottoniDestra.add(bottone);
			bottone.addActionListener(listener);
		}	
		/* FINE PARTE DA PERSONALIZZARE */ 
	}
	
	/* INIZIO PARTE DA PERSONALIZZARE */ 
	private class PressioneBottone1 implements ActionListener
	{	public void actionPerformed(ActionEvent e) 
		{	int n = Integer.parseInt(etichetta1.getText());
			if(n<10)
				n++;
			etichetta1.setText(""+n);
		}
	}
	
	private class PressioneBottone2 implements ActionListener
	{	public void actionPerformed(ActionEvent e) 
		{	int n = Integer.parseInt(etichetta1.getText());
			if(n>0)
				n--;
			etichetta1.setText(""+n);
		}
	}
	
	private class PressioneBottone3 implements ActionListener
	{	public void actionPerformed(ActionEvent e) 
		{	String testo=campoTesto.getText();
			etichetta2.setText(testo);
		}
	}
	
	private class PressioneBottone4 implements ActionListener
	{	public void actionPerformed(ActionEvent e) 
		{	if(statoBottone3.equals("OK"))
			{	statoBottone3="NA";
				bottone3.setIcon(caricaIcona("na.png"));
			}
			else
			{	statoBottone3="OK";
				bottone3.setIcon(caricaIcona("ok.png"));
			}
		}
	}
	
	private class PressioneBottoniDestra implements ActionListener
	{	public void actionPerformed(ActionEvent e) 
		{	JButton bottonePremuto=(JButton)e.getSource();
			int numeroBottone=Integer.parseInt(bottonePremuto.getText());
			etichetta2.setText("Premuto il bottone "+numeroBottone);
		}
	}
	/* FINE PARTE DA PERSONALIZZARE */
	
	public static void main(String[] args)
	{	new AppGrafica(); //DA PERSONALIZZARE CON IL NOME DELLA CLASSE CREATA
	}

}
Grazie in anticipo a chi mi aiuta.

2 Risposte

  • Re: Interfaccia per un giochino

    Iron ha scritto:


    Buona sera, mi trovo un esercizio da svolgere in cui devo creare un'interfaccia di un giochino tra Dama, Forza4, e Prato Fiorito, io avevo deciso di svolgere quella per la dama perchè apparentemente mi sembrava più semplice, ma quando mi ritrovo di fronte al codice mi blocco.
    L'esercizio si basa sul personalizzare un codice già pre-complilato che è il seguente:
    Il problema non è modificare quel codice .... quel codice è parecchio ma proprio parecchio lontano da un gioco della Dama. Per fare un gioco della Dama serve MOLTO più codice. Serve valutare quale approccio alla gestione e disegno della board si vuole utilizzare. Serve valutare come gestire la interazione con l'utente (come vengono mossi i pezzi? con drag&drop? con click su una cella e poi click su un'altra? con la tastiera?). Bisogna anche vedere se si vogliono fare partite "umano vs umano" oppure "umano vs computer" (il che complica il tutto ovviamente).
    Insomma, serve almeno 50 volte di più di quel codice.
  • Re: Interfaccia per un giochino

    andbin ha scritto:


    Il problema non è modificare quel codice .... quel codice è parecchio ma proprio parecchio lontano da un gioco della Dama. Per fare un gioco della Dama serve MOLTO più codice. Serve valutare quale approccio alla gestione e disegno della board si vuole utilizzare. Serve valutare come gestire la interazione con l'utente (come vengono mossi i pezzi? con drag&drop? con click su una cella e poi click su un'altra? con la tastiera?). Bisogna anche vedere se si vogliono fare partite "umano vs umano" oppure "umano vs computer" (il che complica il tutto ovviamente).
    Insomma, serve almeno 50 volte di più di quel codice.
    No no scusami mi sono dimenticato di specificare che non devo creare "il gioco" in tutto e per tutto, l'esercizio consiste solo nel creare un'interfaccia che lo rappresenti e ci è stato dato quel codice da cui dobbiamo modificare le parti necessarie per concludere il tutto.
    Quindi dovrebbe essere molto più semplice.
Devi accedere o registrarti per scrivere nel forum
2 risposte