Results 1 to 3 of 3
  1. #1
    Fortunso is offline Member
    Join Date
    Jan 2011
    Posts
    2
    Rep Power
    0

    Default JButton Restart doesn't work

    hi at all, i'm trying to solve my problems, sorry for any grammatical errors, but i'm not english, so. i need to run a JButton restart to my "project".. it's like a tic tac toe... i want that the button when clicked start a new game.. it now do this.. but it have some bugs.. i'm posting the 2 class.. the first "zero_croci" is the part where there are algorithms to run the game.. and the class click where there are swing's parts,

    class zero_croci


    Java Code:
    import java.awt.event.*;
    import java.awt.*;
    import javax.swing.*;
    
    
    class zero_croci{
    
    	click clik=new click ();
    	
    	int inizio,i,j,grandezza,a,b;
    	String [][] tab;
    	String giocatore;
    	String comp; 
    	boolean Restart;
    	
    	public void new_Game (){
    			
    			int g=Integer.parseInt(JOptionPane.showInputDialog("Inserire Grandezza Tabella:  6/  8/  10/  12/  14"));
    			grandezza=g;
    			boolean ok=false;
    		
    		while(!ok){
    			if (g==6 || g==8 || g==10||g==12||g==14)ok=true;
    			else g=Integer.parseInt(JOptionPane.showInputDialog("Hai inserito un numero errato\nInserire Grandezza Tabella"));
    		}
    				
    			tab = new String [g][g];
    			for (i=0; i<tab[0].length ;i++){
    				for (j=0; j<tab.length; j++){
    					tab[i][j]=" ";
    				}
    			j=0;
    			}
    			
    			giocatore = "X";
    			comp = "O"; 
    			turno();
    			grandezza=g;
    			play_Game();
    	}
    			
    	public int turno(){
    		 inizio=(int)(2*Math.random());
    			switch (inizio){
    			case 0 : System.out.println("Comincia il tuo avversario"); clik.setClik(true);break;
    			case 1 : System.out.println("Cominci tu"); break;
    			}
    		return inizio;
    	}
    	
    					
    	public void play_Game(){
    		clik.tabella(grandezza);
    		
    		
    		boolean finito=true;
    		boolean unico=true;
    	
    	/* TU*/if(inizio==1 ){			
    			while(finito){
    				Restart=clik.getRestart();
    				while(unico){		
    				if (Restart){reset();}
    				a=clik.GetX();	
    				b=clik.GetY();
    					
    					if (tab[b][a]==" "){
    					tab[b][a]=giocatore;
    					unico=false;
    									clik.setImage(b,a);
    					
    				}
    				
    			}	
    			 unico=true;
    											
    
    	/*COMP*/	boolean ok=true;		
    			while(ok){
    			a=(int)(grandezza*Math.random()); 		//RIGA
    			b=(int)(grandezza*Math.random());		//COLONNA
    					if (" "==(tab[a][b])){
    						tab[a][b]=comp;
    						ok=false;
    									clik.setImageC(b,a);
    										
    										System.out.print("\n\n");
    										for (i=0; i<tab[0].length; i++)System.out.print("\t" +(i+1));
    										System.out.println();
    										for(i=0; i<tab[0].length ;i++){
    											for (j=0; j<tab.length; j++){
    											
    											System.out.print("\t|"+tab[i][j] + "|");
    											}
    										System.out.print(" "+(1+i));
    										System.out.println();
    										j=0;
    										}	
    					}
    			}	
    	
    		
    							//CONTROLLO SE TUTTE LE CASELLE SONO OCCUPATE
    									
    										int q,w=0;
    										int verifica=0;
    										for(q=0; q<tab[0].length ;q++){
    											for (w=0; w<tab.length; w++){
    													
    												if (" "==(tab[q][w]))
    												verifica++;
    											}
    												j=0;
    										}if(verifica==0) finito=false; 
    						
    			}
    		
    		}
    
    			else {
    				
    			boolean ok=true;
    				while(finito){
    	/*COMINCIA IL COMP*/	while(ok){
    					a=(int)(grandezza*Math.random()); 		//RIGA
    					b=(int)(grandezza*Math.random());		//COLONNA
    							if (" "==(tab[a][b])){
    								tab[a][b]=comp;
    								ok=false;
    										
    										clik.setImageC(b,a);
    											
    											System.out.print("\n\n");
    											for (i=0; i<tab[0].length; i++)System.out.print("\t" +(i+1));
    											System.out.println();
    											for(i=0; i<tab[0].length ;i++){
    											for (j=0; j<tab.length; j++){
    												
    												System.out.print("\t|"+tab[i][j] + "|");
    											}
    											System.out.print(" "+(1+i));
    											System.out.println();
    											j=0;
    											}
    							}
    					}ok=true;
    					
    				boolean ck=clik.cliccato();				//CONTROLLA SE E' STATO CLICCATO ALMENO UNA VOLTA LA TABELLA PER AVERE GETX E GETY ESATTI
    				while(!ck){if(clik.cliccato()) ck=true; a=clik.GetX();
    						b=clik.GetY();}
    				ck=false;
    	
    		/* TU*/	unico = true; 	
    					Restart=clik.getRestart();if (Restart){reset();}
    						while(unico){	
    					
    						//a=clik.GetX();
    						//b=clik.GetY();
    						if (tab[b][a]==" "){
    							tab[b][a]=giocatore;
    							unico=false;
    										clik.setImage(b,a);
    						}
    							
    					}clik.setClik(true); 
    										
    										//CONTROLLO SE TUTTE LE CASELLE SONO OCCUPATE
    										
    										int q,w=0;				
    										int verifica=0;
    										for(q=0; q<tab[0].length ;q++){
    											for (w=0; w<tab.length; w++){
    													
    												if (" "==(tab[q][w]))
    												verifica++;
    											}
    												j=0;
    										}if(verifica==0) finito=false;
    				}
    											
    			}
    			Punteggio();
    	}		
    	
    	
    	
    	
    	int punti=1;
    	int totale=0;
    	int punti_comp=1;
    	int totale_comp=0;
    	
    	public void Punteggio () {
    			int t,u;
    	
    							//CALCOLO PUNTEGGI DELLE RIGHE 
    		
    		for (t=0; t<tab[0].length ;t++){
    			punti=1; 
    			punti_comp=1;
    			for (u=0; u<tab.length-1;u++){
    				
    			if (tab[t][u]==giocatore){
    				if (tab[t][u]==tab[t][u+1] ){//&& tab[t][u]==giocatore){ <--- cosi pero da problemi
    					punti++;
    						
    						calcolo_punteggioG(punti);
    				
    				}else punti=1;
    			}
    					
    					
    				else {
    					if (tab[t][u]==tab[t][u+1]){// && tab[t][u]==comp){
    					punti_comp++;
    						
    						calcolo_punteggioC(punti_comp);
    						
    					}
    					else punti_comp=1;
    			}	
    		}
    	}	
    							//CALCOLO PUNTEGGIO PER COLONNE
    				
    				for (u=0; u<tab[0].length ;u++){
    					punti=1; 
    					punti_comp=1;
    					for (t=0; t<tab.length-1;t++){
    						
    				if (tab[t][u]==giocatore){
    				if (tab[t][u]==tab[t+1][u] ){//&& tab[t][u]==giocatore){
    					punti++;
    					
    						calcolo_punteggioG(punti);
    					
    					}else punti=1;
    				}
    					else {
    					if (tab[t][u]==tab[t+1][u]){// && tab[t][u]==comp){
    					punti_comp++;
    							
    							calcolo_punteggioC(punti_comp);
    					}
    					else punti_comp=1;
    			}	
    			}
    		}
    						//CALCOLO PUNTEGGIO IN DIAGONALE PRINCIPALE e DA SINISTRA SOPRA
    			int h=0;
    			int y=0;
    			
    			for (int j=0; j<tab[0].length-2; j++){
    				punti=1;
    				punti_comp=1;
    				h=j;
    				for (u=0; h<tab[0].length-1 ;u++,h++){
    					if (tab[u][h]==giocatore){
    					if (tab[u][h]==tab[u+1][h+1]){
    						punti++;
    						
    							calcolo_punteggioG(punti);
    							
    						
    					}else punti=1;
    				}
    			
    		else {
    				if (tab[u][h]==tab[u+1][h+1] ){
    						punti_comp++;
    											
    						calcolo_punteggioC(punti_comp);
    
    				}else punti_comp=1;
    			}
    		}
    	}				
    							//CONTROLLO DIAGONALE SECONDARIA e DA DESTRA SOPRA
    		
    		int r ;
    		h=(grandezza-1);
    		for (r=(grandezza-1); r>1; r--){
    			punti=1;
    			punti_comp=1;
    			for (u=0; h>0 ; u++, h--){
    			
    			
    					if (tab[u][h]==giocatore){
    					if (tab[u][h]==tab[u+1][h-1]){
    						punti++;
    						
    							calcolo_punteggioG(punti);
    							
    						
    					}else punti=1;
    				}
    			else {
    				if (tab[u][h]==tab[u+1][h-1] ){
    				punti_comp++;
    											
    						calcolo_punteggioC(punti_comp);
    
    				}else punti_comp=1;
    			}
    		
    			
    		}
    		h=r-1;
    		
    		
    	}					
    							//CONTROLLO DIAGONALE  DA DESTRA SOTTO
    		
    		u=1;		
    		for (int e=2; e<grandezza-1 ; e++){
    			punti=1;
    			punti_comp=1;
    			for (h=grandezza-1 ; h>(e-1) ; h--,u++){
    		
    					if (tab[u][h]==giocatore){
    						if (tab[u][h]==tab[u+1][h-1]){
    						punti++;
    							
    							calcolo_punteggioG(punti);
    							
    							
    						}else punti=1;
    					}
    					else {
    						if (tab[u][h]==tab[u+1][h-1] ){
    						punti_comp++;
    							
    							calcolo_punteggioC(punti_comp);
    									
    						}else punti_comp=1;
    				}
    			}u=e;
    		}
    							
    							//CONTROLLO DIAGONALE SINISTRA SOTTO
    				
    				u=1;
    				h=0;
    				for(int e=1; e<grandezza-(e-1) ; e++) {
    				punti=1;
    				punti_comp=1;
    					for (h=0; u<(grandezza-1) ; h++,u++){
    						
    						
    					if (tab[u][h]==giocatore){
    						if (tab[u][h]==tab[u+1][h+1]){
    						punti++;
    						
    							calcolo_punteggioG(punti);
    													
    						}else punti=1;
    					}
    						
    					else {
    						if (tab[u][h]==tab[u+1][h+1] ){
    							punti_comp++;
    												
    								calcolo_punteggioC(punti_comp);
    
    						}else punti_comp=1;
    					}
    				
    				}
    				u=e+1;
    			} 
    
    			JOptionPane.showMessageDialog(null,"Hai totalizzato " + totale + " punti!! Mentre il tuo avversario ha totalizzato " + totale_comp + " punti!!");
    				if (totale>totale_comp)JOptionPane.showMessageDialog(null,"Hai Vinto!!!");
    				else if (totale<totale_comp) JOptionPane.showMessageDialog(null,"Hai Perso!!!! ritenta");
    				else if (totale==totale_comp) JOptionPane.showMessageDialog(null,"Pari!!");
    	}
    	
    	
    	public int calcolo_punteggioG(int punti){switch (punti){
    									case 3 : totale+=2; break;
    									case 4 : totale+=2; break;
    									case 5 : totale+=2; break;
    									case 6 : totale+=2; break;
    									case 7 : totale+=4; break;
    									case 8 : totale+=8; break;
    									case 9 : totale+=10; break;
    									case 10 : totale+=12; break;
    									case 11 : totale+=14; break;
    									case 12 : totale+=20; break;
    									}
    									
    				return totale;
    	}
    									
    									
    	public int calcolo_punteggioC(int punti_comp){
    		
    									switch (punti_comp){
    										case 3 : totale_comp+=2; break;
    										case 4 : totale_comp+=2; break;
    										case 5 : totale_comp+=2; break;
    										case 6 : totale_comp+=2; break;
    										case 7 : totale_comp+=4; break;
    										case 8 : totale_comp+=8; break;
    										case 9 : totale_comp+=10; break;
    										case 10 : totale_comp+=12; break;
    										case 11 : totale_comp+=14; break;
    										case 12 : totale_comp+=20; break;
    				
    		}return totale_comp;
    	}
    	
    	
    	public void reset(){
    		tab = new String [grandezza][grandezza];
    			for (i=0; i<tab[0].length ;i++){
    				for (j=0; j<tab.length; j++){
    					tab[i][j]=" ";
    				}
    			j=0;
    		}Restart=false;
    		clik.setReset(false);
    		clik.setClik(false);
    		clik.reset();
    	}
    	
    	public  static void main(String []args){
    	zero_croci k=new zero_croci();
    		k.new_Game();
    		
    		}		
    	
    }
    class click



    Java Code:
    import java.awt.event.*;
    import java.awt.*;
    import javax.swing.*;
    import java.applet.*;
    
    
    class click implements MouseListener {
    	
    
    	ImageIcon icon = new ImageIcon("C:/Users/Fortunso/Documents/SciTe Projects/pROGETTO/corniceNera.jpeg");
    	ImageIcon iconx = new ImageIcon("C:/Users/Fortunso/Documents/SciTe Projects/pROGETTO/corniceX.jpeg");
    	ImageIcon icono = new ImageIcon("C:/Users/Fortunso/Documents/SciTe Projects/pROGETTO/corniceO.jpeg");
    	ImageIcon iconrest = new ImageIcon("C:/Users/Fortunso/Documents/SciTe Projects/pROGETTO/RESTART.jpeg " );
    	ImageIcon nuova = new ImageIcon("C:/Users/Fortunso/Documents/SciTe Projects/pROGETTO/nuova.jpeg");
    	
    	
    	GridBagLayout layout = new GridBagLayout();
    	GridBagConstraints lim = new GridBagConstraints(); //lim sta per limits o limiti
    	Container contenitore = new JPanel();
    	JFrame finestra = new JFrame("                     Zero e Croci Libero");
    	Component p;
    	JButton [][] b;
    	JButton NuovaP;
    	int Grandezza=0;
    	int f,o;
    	boolean bole,bole_mio,cliccato=false;
    	boolean Restart=false;					
    	
    	public void tabella(int h){					
    		
    		
    									//CREAZIONE MENU
    							JMenuBar menuBar = new JMenuBar();
    							menuBar.setBackground(Color.BLACK);
    							NuovaP=new JButton(nuova);
    							NuovaP.addMouseListener(this);
    							NuovaP.setBackground(Color.BLACK);
    							NuovaP.setPreferredSize(new Dimension(150,50));
    							menuBar.add(NuovaP);
    		
    							//CREAZIONE TABELLA
    	
    		b=new JButton[h][h];
    		finestra.setContentPane(contenitore);
    		finestra.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
    		finestra.addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e) {
    											int answer = JOptionPane.showConfirmDialog(
    											e.getWindow(),
    											"Vuoi veramente chiudere la finestra?",
    											"Conferma chiusura",
    											JOptionPane.YES_NO_OPTION);
    											if(answer == JOptionPane.YES_OPTION) {
    											System.exit(0);}}});
    		
    			for (int i=0; i<h;i++){
    				for(int j=0; j<h;j++){
    				
    					b[j][i]= new JButton(icon);
    					b[j][i].setPreferredSize(new Dimension(60,60));
    					b[j][i].addMouseListener(this);
    					b[j][i].setBackground(Color.black);
    					lim.gridx = j;
    					lim.gridy = i;
    					lim.weightx = 1;
    					lim.weighty = 1;
    					lim.fill = GridBagConstraints.BOTH;
    					layout.setConstraints(b[j][i], lim);
    					contenitore.add(b[j][i]);
    					
    				}
    			}
    			
    			finestra.setLocation(500,100);
    			if(h>=10)finestra.setLocation(500,0);
    			finestra.setBackground(Color.black);
    			finestra.setResizable(false);
    			finestra.setJMenuBar(menuBar);
    			contenitore.setLayout(layout);
    			finestra.pack();
    			finestra.setVisible(true);
    			finestra.setAlwaysOnTop(false) ;
    			
    			Grandezza=h;
    			
    			cliccato=bole;
    			while(!cliccato){}
    				cliccato=false;
    	}
    				
    	
    
    	
    	public void mouseClicked(MouseEvent e){
    		
    	JButton restart= (JButton)e.getSource();	
    	if (restart==NuovaP) {
    		Restart=true; 
    		}
    		
    	cliccato=true;
    		
    	JButton cu= (JButton)e.getSource();
    		int a ;
    		int bb=0;
    			if (Grandezza<12){
    				a = cu.getX()/(60);
    				bb = cu.getY()/(60);
    				
    				f=a;
    				o=bb;
    				}
    
    			if (Grandezza>=12){
    				cu= (JButton)e.getSource();
    				a = cu.getX()/60;
    				if(Grandezza==12)bb = cu.getY()/59;
    				if(Grandezza==14)bb=cu.getY()/48;
    				f=a;
    				o=bb;
    				}
    
    	}
    
    	
    	public void setImage(int bbb, int aa){
    		
    		contenitore.remove(b[aa][bbb]);
    		JButton r=new JButton(iconx);
    		b[aa][bbb]=r;
    		System.out.println();
    		b[aa][bbb].setBackground(Color.black);
    					lim.gridx = aa;
    					lim.gridy = bbb;
    					lim.weightx = 1;
    					lim.weighty = 1;
    					lim.fill = GridBagConstraints.BOTH;
    					layout.setConstraints(b[aa][bbb], lim);
    					contenitore.add(b[aa][bbb]);
    					finestra.setVisible(true);	
    	}
    	
    	
    	public void setImageC(int aa, int bbb){
    		
    		contenitore.remove(b[aa][bbb]);
    		JButton r=new JButton(icono);
    		b[aa][bbb]=r;
    		System.out.println();
    		b[aa][bbb].setBackground(Color.black);
    					lim.gridx = aa;
    					lim.gridy = bbb;
    					lim.weightx = 1;
    					lim.weighty = 1;
    					lim.fill = GridBagConstraints.BOTH;
    					layout.setConstraints(b[aa][bbb], lim);
    					contenitore.add(b[aa][bbb]);
    					finestra.setVisible(true);	
    	}
    	
    
    	public int GetX(){
    			while(!cliccato){}	
    			return f;
    	}
    	
    	
    	public int GetY(){
    					return o;
    	}
    	
    	
    		
    	public boolean setClik(boolean bool){
    					return bole=bool;
    	}
    	
    		
    	public boolean cliccato(){
    					return cliccato;
    		}
    		
    	
    	public void reset(){
    			
    			for (int i=0; i<Grandezza;i++){
    				for(int j=0; j<Grandezza;j++){
    					
    					contenitore.remove(b[i][j]);
    		
    				}
    			}
    			
    			for (int i=0; i<Grandezza;i++){
    				for(int j=0; j<Grandezza;j++){
    					b[j][i]= new JButton(icon);
    					b[j][i].setPreferredSize(new Dimension(60,60));
    					b[j][i].addMouseListener(this);
    					b[j][i].setBackground(Color.black);
    					lim.gridx = j;
    					lim.gridy = i;
    					lim.weightx = 1;
    					lim.weighty = 1;
    					lim.fill = GridBagConstraints.BOTH;
    					layout.setConstraints(b[j][i], lim);
    					contenitore.add(b[j][i]);
    				}}
    			
    			
    			finestra.setLocation(500,100);
    			if(Grandezza>=10)finestra.setLocation(500,0);
    			finestra.setBackground(Color.black);
    			finestra.setResizable(false);
    			contenitore.setLayout(layout);
    			finestra.pack();
    			finestra.setVisible(true);
    			cliccato=false;
    
    		}
    		
    		
    	public boolean getRestart(){
    		 boolean getRestart=Restart;
    		
    		return getRestart;
    	}
    		
    	
    	public void setReset(boolean restart){
    			Restart=restart;
    	}
    		
    		
    public void mouseEntered(MouseEvent e) {}
    public void mouseReleased(MouseEvent e) {}
    public void mousePressed(MouseEvent e) {}
    public void mouseExited(MouseEvent e) {}	
    	
    }

  2. #2
    MediumDave is offline Member
    Join Date
    Jan 2011
    Posts
    5
    Rep Power
    0

    Default

    I know this isn't a specific answer to your question, but i am guessing what you want to do is clear the state of your data structures that store the moves - and then repaint() the tick tack toe board.

    Sorry, I didn't read the classes you posted - too much reading for me :-)

  3. #3
    Fortunso is offline Member
    Join Date
    Jan 2011
    Posts
    2
    Rep Power
    0

    Default

    Quote Originally Posted by MediumDave View Post
    I know this isn't a specific answer to your question, but i am guessing what you want to do is clear the state of your data structures that store the moves - and then repaint() the tick tack toe board.

    Sorry, I didn't read the classes you posted - too much reading for me :-)
    hahaa okok. but the problem is that i don't paint! i upload some ImageIcon from my pc, so repaint() is useless! XD

Similar Threads

  1. javax.xml.ws.Endpoint how to restart
    By Rickyp in forum Advanced Java
    Replies: 0
    Last Post: 11-30-2010, 12:32 PM
  2. Replies: 2
    Last Post: 08-23-2010, 09:05 PM
  3. Restart main
    By Syahrul in forum New To Java
    Replies: 3
    Last Post: 11-22-2009, 09:34 AM
  4. Application restart in tomcat.....
    By jithan in forum New To Java
    Replies: 1
    Last Post: 09-10-2008, 04:31 PM
  5. Restart a For loop and increment an Int value
    By dcnorman07 in forum New To Java
    Replies: 1
    Last Post: 07-12-2008, 01:24 AM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •