ayudaaa.
diganme q hace este codigo pongale comentario a cada funcion si pueden, tiene un error ayudenme a solucionarlo...porfaa si logran envienmelo a mi correo ----: [email protected]
// Clase Principal
import javax.swing.*;
import java.awt.*;
import java.lang.*;
import java.awt.event.*;
import java.util.Random;
class buscada extends JFrame implements ActionListener
{
int turno=0;
boolean fin;
boolean dosJugadores;
boolean pulsado;
JButton boton[][]=new JButton[7][7];
JMenuBar Barra=new JMenuBar();
JMenu Archivo=new JMenu("Archivo");
JMenu Opciones=new JMenu("Opciones");
JMenuItem Nuevo=new JMenuItem("Nuevo");
JMenuItem Salir=new JMenuItem("Salir");
JMenuItem M1Jugador=new JMenuItem("1 Jugador");
JMenuItem M2Jugador=new JMenuItem("2 Jugadores");
JLabel Nombre=new JLabel(" ",JLabel.CENTER);
ImageIcon foto1;
ImageIcon foto2;
buscada()
{
foto1=new ImageIcon("foto1.gif");
foto2=new ImageIcon("foto2.gif");
Nuevo.addActionListener(this);
Archivo.add(Nuevo);
Archivo.addSeparator();
Salir.addActionListener(this);
Archivo.add(Salir);
M1Jugador.addActionListener(this);
Opciones.add(M1Jugador);
M2Jugador.addActionListener(this);
Opciones.add(M2Jugador);
Barra.add(Archivo);
Barra.add(Opciones);
setJMenuBar(Barra);
JPanel Principal=new JPanel();
Principal.setLayout(new GridLayout(7,7));
for(int i=0;i<7;i++)
{
for(int j=0;j<7;j++)
{
boton[i][j]=new JButton();
boton[i][j].addActionListener(this);
boton[i][j].setBackground(Color.BLACK);
Principal.add(boton[i][j]);
}
Nombre.setForeground(Color.BLUE);
add(Nombre,"North");
add(Principal,"Center");
}
//Para cerrar la Ventana
addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent we)
{
System.exit(0);
}
});
setLocation(170,25);
setSize (600,600);
setResizable(false);
setVisible(true);
}
void ganar(int x,int y)
{
fin=false;
int ganar1=0;
int ganar2=0;
for(int j=0;j<7;j++)
{
if(boton[y][j].getIcon()!=null)
{
if(boton[y][j].getIcon().equals(foto1))
{
ganar1++;
}
else ganar1=0;
if(ganar1==4)
{
JOptionPane.showMessageDialog(this,"Gana Jugador Rojo","Conecta 4",JOptionPane.INFORMATION_MESSAGE,foto1);
VolverEmpezar();
fin=true;
}
if(fin!=true)
{
if(boton[y][j].getIcon().equals(foto2))
{
ganar2++;
}
else ganar2=0;
if(ganar2==4)
{
JOptionPane.showMessageDialog(this,"Gana Jugador Verde","Conecta 4",JOptionPane.INFORMATION_MESSAGE,foto2);
VolverEmpezar();
}
}
}
else
{
ganar1=0;
ganar2=0;
}
}
ganar1=0;
ganar2=0;
for(int i=0;i<7;i++)
{
if(boton[i][x].getIcon()!=null)
{
if(boton[i][x].getIcon().equals(foto1))
{
ganar1++;
}
else ganar1=0;
if(ganar1==4)
{
JOptionPane.showMessageDialog(this,"Gana Jugador Rojo","Conecta 4",JOptionPane.INFORMATION_MESSAGE,foto1);
VolverEmpezar();
fin=true;
}
if(fin!=true)
{
if(boton[i][x].getIcon().equals(foto2))
{
ganar2++;
}
else ganar2=0;
if(ganar2==4)
{
JOptionPane.showMessageDialog(this,"Gana Jugador Verde","Conecta 4",JOptionPane.INFORMATION_MESSAGE,foto2);
VolverEmpezar();
}
}
}
}
ganar1=0;
ganar2=0;
int a=y;
int b=x;
while(b>0 && a>0)
{
a--;
b--;
}
while(b<7 && a<7)
{
if(boton[a][b].getIcon()!=null)
{
if(boton[a][b].getIcon().equals(foto1))
{
ganar1++;
}
else ganar1=0;
if(ganar1==4)
{
JOptionPane.showMessageDialog(this,"Gana Jugador Rojo","Conecta 4",JOptionPane.INFORMATION_MESSAGE,foto1);
VolverEmpezar();
fin=true;
}
if(fin!=true)
{
if(boton[a][b].getIcon().equals(foto2))
{
ganar2++;
}
else ganar2=0;
if(ganar2==4)
{
JOptionPane.showMessageDialog(this,"Gana Jugador Verde","Conecta 4",JOptionPane.INFORMATION_MESSAGE,foto2);
VolverEmpezar();
}
}
}
else
{
ganar1=0;
ganar2=0;
}
a++;
b++;
}
ganar1=0;
ganar2=0;
a=y;
b=x;
//buscar posición de la esquina
while(b<6 && a>0)
{
a--;
b++;
}
while(b>-1 && a<7 )
{
if(boton[a][b].getIcon()!=null)
{
if(boton[a][b].getIcon().equals(foto1))
{
ganar1++;
}
else ganar1=0;
if(ganar1==4)
{
JOptionPane.showMessageDialog(this,"Gana Jugador Rojo","Conecta 4",JOptionPane.INFORMATION_MESSAGE,foto1);
VolverEmpezar();
fin=true;
}
if(fin!=true)
{
if(boton[a][b].getIcon().equals(foto2))
{
ganar2++;
}
else ganar2=0;
if(ganar2==4)
{
JOptionPane.showMessageDialog(this,"Gana Jugador Verde","Conecta 4",JOptionPane.INFORMATION_MESSAGE,foto2);
VolverEmpezar();
}
}
}
else
{
ganar1=0;
ganar2=0;
}
a++;
b--;
}
}
void VolverEmpezar()
{
for(int i=0;i<7;i++)
{
for(int j=0;j<7;j++)
{
boton[i][j].setIcon(null);
}
}
turno=0;
}
public void actionPerformed(ActionEvent ae)
{
if(ae.getSource()==M1Jugador)
{
dosJugadores=false;
VolverEmpezar();
}
if(ae.getSource()==M2Jugador)
{
dosJugadores=true;
VolverEmpezar();
}
if(ae.getSource()==Salir)
{
dispose();
}
if(ae.getSource()==Nuevo)
{
VolverEmpezar();
}
int x=0;
int y=0;
for(int i=0;i<7;i++)
{
for(int j=0;j<7;j++)
{
if (ae.getSource()==boton[i][j])
{
int k=7;
do
{
k--;
}
while(boton[k][j].getIcon()!=null & k!=0);
if(boton[k][j].getIcon()==null)
{
if(dosJugadores)
{
if(turno %2==0)boton[k][j].setIcon(foto1);
else boton[k][j].setIcon(foto2);
turno++;
x=j;
y=k;
}
else
{
boton[k][j].setIcon(foto1);
turno++;
pulsado=true;
x=j;
y=k;
}
}
}
}
}
ganar(x,y);
if(pulsado)
{
if(!dosJugadores) juegaMaquina(x,y);
}
if(turno==49)
{
JOptionPane.showMessageDialog(this,"Has Empatado","Conecta 4",JOptionPane.INFORMATION_MESSAGE);
VolverEmpezar();
}
fin=false;
}
void prumaq(int x,int y)
{
boolean Cubrir_izquierda=false;
int ganarVert=0;
int ganarHorz=0;
int posicion=0;
posicion=Ga(x);
//_________________________________________________
ganarHorz=0;
for(int i=0;i<7;i++)
{
for(int j=0;j<7;j++)
{
if(boton[i][j].getIcon()!=null)
{
if(boton[i][j].getIcon().equals(foto2))
{
ganarHorz++;
}
else ganarHorz=0;
if(ganarHorz==3)
{
posicion=j;
if(posicion!=6)
{
if(boton[y][j+1].getIcon()==null) posicion++;
else if(j>=3 && boton[y][j-3].getIcon()==null)posicion=posicion-3;
System.out.println("Por la derecha");
}
}
}
}
ganarHorz=0;
}
//____________________________________________
ganarHorz=0;
for(int j=6;j>=0;j--)
{
if(boton[y][j].getIcon()!=null)
{
if(boton[y][j].getIcon().equals(foto1))
{
ganarHorz++;
}
else ganarHorz=0;
if(ganarHorz==3 && j!=0)
{
posicion=j;
if(boton[y][j-1].getIcon()==null)
{
posicion--;
Cubrir_izquierda=true;
}
}
}
}
//_______________________________________________________
ganarHorz=0;
if(!Cubrir_izquierda)
{
for(int j=0;j<7;j++)
{
if(boton[y][j].getIcon()!=null)
{
if(boton[y][j].getIcon().equals(foto1))
{
ganarHorz++;
}
else ganarHorz=0;
if(ganarHorz==3)
{
posicion=j;
if(posicion!=6)
{
if(boton[y][j+1].getIcon()==null) posicion++;
}
}
}
}
}
//________________________________________________
for(int i=0;i<7;i++)
{
if(boton[i][x].getIcon()!=null)
{
if(boton[i][x].getIcon().equals(foto1))
{
ganarVert++;
}
else ganarVert=0;
if(ganarVert==3)
{
posicion=x;
System.out.println("Por la arriba");
}
}
}
//_________________________________________________
ganarVert=0;
for(int i=0;i<7;i++)
{
for(int j=0;j<7;j++)
{
if(boton[j][i].getIcon()!=null)
{
if(boton[j][i].getIcon().equals(foto2))
{
ganarVert++;
}
else ganarVert=0;
if(ganarVert==3 && j!=0)
{
posicion=i;
}
}
}
ganarVert=0;
}
if(boton[0][posicion].getIcon()!=null)
{
posicion=Ga(posicion);
}
int k=7;
do
{
k--;
}
while(boton[k][posicion].getIcon()!=null & k!=0);
boton[k][posicion].setIcon(foto2);
ganar(posicion,k);
pulsado=false;
Cubrir_izquierda=false;
}
int Ga(int posicion)
{
double aleatorio=0;
do
{
aleatorio=Math.random()*7;
posicion=(int)aleatorio;
}
while(boton[0][posicion].getIcon()!=null);
return posicion;
}
public static void main (String [] args)
{
new buscada();
}
}
