ayudaaa.

janh
25 de Mayo del 2009



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();
}

}

Ozito
25 de Mayo del 2009
Lo que ponerte los comentarios me parece demasiado, pero si te puedo decir el error que da:
Tienes que renombrar el método
void prumaq(int x,int y)
{

por
void juegaMaquina(int x,int y)
{