jueves, 27 de diciembre de 2012


lunes, 22 de octubre de 2012

Solo quiero recordar que este código puede ser usado, modificado y distribuido sin ningún problema...

miércoles, 11 de abril de 2012

En este caso voy a postear el código de una tarea que me dejaron en Programación III, se puede correr por modo de consola o con un IDE, ya sea NetBeans o Eclipse.

Clase Vista Principal:


package Gato.vista;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import Gato.control.MiBoton;

public class VistaPrincipal extends JFrame{
//---------------------Atributos-----------------------------
private MiBoton boton1, boton2, boton3, boton4, boton5, boton6, boton7, boton8, boton9;
private JPanel grid;
//---------------------Metodos-------------------------------
public VistaPrincipal(){
inicializarVista();
inicializarComponentes();
inicializarDiseno();
}
//---------------------Setters&Getters-----------------------
public void setBoton1(MiBoton b1){this.boton1 = b1;}
public void setBoton2(MiBoton b2){this.boton2 = b2;}
public void setBoton3(MiBoton b3){this.boton3 = b3;}
public void setBoton4(MiBoton b4){this.boton4 = b4;}
public void setBoton5(MiBoton b5){this.boton5 = b5;}
public void setBoton6(MiBoton b6){this.boton6 = b6;}
public void setBoton7(MiBoton b7){this.boton7 = b7;}
public void setBoton8(MiBoton b8){this.boton8 = b8;}
public void setBoton9(MiBoton b9){this.boton9 = b9;}

public MiBoton getBoton1(){return this.boton1;}
public MiBoton getBoton2(){return this.boton2;}
public MiBoton getBoton3(){return this.boton3;}
public MiBoton getBoton4(){return this.boton4;}
public MiBoton getBoton5(){return this.boton5;}
public MiBoton getBoton6(){return this.boton6;}
public MiBoton getBoton7(){return this.boton7;}
public MiBoton getBoton8(){return this.boton8;}
public MiBoton getBoton9(){return this.boton9;}

//---------------------Metodos Listener----------------------
public void agregarListenerBoton1(MouseListener listener){this.getBoton1().addMouseListener(listener);}
public void agregarListenerBoton2(MouseListener listener){this.getBoton2().addMouseListener(listener);}
public void agregarListenerBoton3(MouseListener listener){this.getBoton3().addMouseListener(listener);}
public void agregarListenerBoton4(MouseListener listener){this.getBoton4().addMouseListener(listener);}
public void agregarListenerBoton5(MouseListener listener){this.getBoton5().addMouseListener(listener);}
public void agregarListenerBoton6(MouseListener listener){this.getBoton6().addMouseListener(listener);}
public void agregarListenerBoton7(MouseListener listener){this.getBoton7().addMouseListener(listener);}
public void agregarListenerBoton8(MouseListener listener){this.getBoton8().addMouseListener(listener);}
public void agregarListenerBoton9(MouseListener listener){this.getBoton9().addMouseListener(listener);}

//---------------------Metodos-------------------------------
public void inicializarComponentes(){
grid = new JPanel(new GridLayout(3,3,0,0));
boton1 = new MiBoton(0,0);
boton2 = new MiBoton(0,1);
boton3 = new MiBoton(0,2);
boton4 = new MiBoton(1,0);
boton5 = new MiBoton(1,1);
boton6 = new MiBoton(1,2);
boton7 = new MiBoton(2,0);
boton8 = new MiBoton(2,1);
boton9 = new MiBoton(2,2);
setContentPane(grid);
}

public void inicializarVista(){
setTitle("Tarea #4 - Programacion III");
setLocationByPlatform(true);
setSize(300,300);
setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
setVisible(true);
}

public void inicializarDiseno(){
grid.add(boton1);
grid.add(boton2);
grid.add(boton3);
grid.add(boton4);
grid.add(boton5);
grid.add(boton6);
grid.add(boton7);
grid.add(boton8);
grid.add(boton9);
}

public void dispose(){
System.out.println("Vista Finalizada...");
super.dispose();
}
}//termina la VistaPrincipal

Clase ClaseDatosTicTacToe:

package Gato.modelo;
import Gato.control.listeners.ClaseDatosTicTacToeListener;
import Gato.control.listeners.ClaseDatosTicTacToEvent;
import java.util.ArrayList;

public class ClaseDatosTicTacToe{
//---------------------Atributos-----------------------------
private int[][] matriz;
public static int OPCION_NINGUNA = -1; 
public static int OPCION_CERO = 0; 
public static int OPCION_EQUIS = 1;
private ArrayList<ClaseDatosTicTacToeListener> interesados;
//---------------------Constructores-------------------------
public ClaseDatosTicTacToe(){
matriz = new int[3][3];
interesados = new ArrayList<ClaseDatosTicTacToeListener>();
}
//---------------------Metodos-------------------------------
public void llenarMatriz(int opcion){
for(int i = 0; i<3;i++){
for(int j=0; j<3;j++){
matriz[i][j] = opcion;
}
}
}

public void actualizaSeleccion(int fila, int columna, int opcion){
matriz[fila][columna] = opcion;
determinarGanador();
}

public int determinarGanador(){
int ganador = ClaseDatosTicTacToe.OPCION_NINGUNA;
if(matriz[0][0] != ClaseDatosTicTacToe.OPCION_NINGUNA && matriz[0][0] == matriz[0][1] && matriz[0][0] == matriz[0][2]){
ganador = matriz[0][0];
}else if(matriz[1][0] != ClaseDatosTicTacToe.OPCION_NINGUNA && matriz[1][0] == matriz[1][1] && matriz[1][0] == matriz[1][2]){
ganador = matriz[1][0];
}else if(matriz[2][0] != ClaseDatosTicTacToe.OPCION_NINGUNA && matriz[2][0] == matriz[2][1] && matriz[2][0] == matriz[2][2]){
ganador = matriz[2][0];
}else if(matriz[0][0] != ClaseDatosTicTacToe.OPCION_NINGUNA && matriz[0][0] == matriz[1][0] && matriz[0][0] == matriz[2][0]){
ganador = matriz[0][0];
}else if(matriz[0][1] != ClaseDatosTicTacToe.OPCION_NINGUNA && matriz[0][1] == matriz[1][1] && matriz[0][1] == matriz[2][1]){
ganador = matriz[0][1];
}else if(matriz[0][2] != ClaseDatosTicTacToe.OPCION_NINGUNA && matriz[0][2] == matriz[1][2] && matriz[0][2] == matriz[2][2]){
ganador = matriz[0][2];
}else if(matriz[0][0] != ClaseDatosTicTacToe.OPCION_NINGUNA && matriz[0][0] == matriz[1][1] && matriz[0][0] == matriz[2][2]){
ganador = matriz[0][0];
}else if(matriz[2][0] != ClaseDatosTicTacToe.OPCION_NINGUNA && matriz[2][0] == matriz[1][1] && matriz[2][0] == matriz[0][2]){
ganador = matriz[2][0];
}

if(ganador != ClaseDatosTicTacToe.OPCION_NINGUNA){
notificarGane(ganador);
}
return ganador;
}

public void notificarGane(int opcionGanadora){
int tamano = interesados.size();
for(int i= 0; i<tamano; i++){
interesados.get(i).juegoGanado(new ClaseDatosTicTacToEvent(opcionGanadora));
}
}

public void addClaseDatosTicTacToeListener(ClaseDatosTicTacToeListener interesado){
interesados.add(interesado);
}

}//termina clase ClaseDatosTicTacToe

Clase ClaseDatosTicTacToeListener:

package Gato.control.listeners;
import Gato.control.listeners.ClaseDatosTicTacToEvent;

public interface ClaseDatosTicTacToeListener{
public void juegoGanado(ClaseDatosTicTacToEvent evento);
}


Clase ClaseDatosTicTacToEvent:

package Gato.control.listeners;


public class ClaseDatosTicTacToEvent{
private int opcionGanadora;


public ClaseDatosTicTacToEvent(int op){
this.setOpcionGanadora(op);
}
public int getOpcionGanadora(){
return this.opcionGanadora;
}
public void setOpcionGanadora(int op){
this.opcionGanadora = op;
}
}

Clase MiBoton:

package Gato.control;
import javax.swing.*;
import java.awt.*;

public class MiBoton extends JButton{
//---------------------Atributos-----------------------------
private int filas, columnas;
//---------------------Constructores-------------------------
public MiBoton(int fil, int col){
this.setColumnas(col);
this.setFilas(fil);
}
//---------------------Setters&Getters-------------------------------
public void setColumnas(int col){this.columnas = col;}
public int getColumnas(){return this.columnas;}
public void setFilas(int fil){this.filas = fil;}
public int getFilas(){return this.filas;}
}

Clase Controlador:

package Gato.control;
import Gato.control.listeners.ClaseDatosTicTacToEvent;
import Gato.control.listeners.ClaseDatosTicTacToeListener;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import Gato.vista.VistaPrincipal;
//import progra03.tarea04.control.listeners.ClaseDatosTicTacToEvent;
import Gato.modelo.ClaseDatosTicTacToe;

public class Controlador{
//---------------------Atributos-----------------------------
private VistaPrincipal vistaPrincipal;
private ClaseInternaBotones pintarBotones;
private ClaseDatosTicTacToe gato;
//---------------------Constructores-------------------------
public Controlador(){
vistaPrincipal = new VistaPrincipal();
pintarBotones = new ClaseInternaBotones();
gato = new ClaseDatosTicTacToe();
establecerListenerBotones();
}
//---------------------Metodos-------------------------------
public void establecerListenerBotones(){
gato.llenarMatriz(ClaseDatosTicTacToe.OPCION_NINGUNA);
vistaPrincipal.agregarListenerBoton1(pintarBotones);
vistaPrincipal.agregarListenerBoton2(pintarBotones);
vistaPrincipal.agregarListenerBoton3(pintarBotones);
vistaPrincipal.agregarListenerBoton4(pintarBotones);
vistaPrincipal.agregarListenerBoton5(pintarBotones);
vistaPrincipal.agregarListenerBoton6(pintarBotones);
vistaPrincipal.agregarListenerBoton7(pintarBotones);
vistaPrincipal.agregarListenerBoton8(pintarBotones);
vistaPrincipal.agregarListenerBoton9(pintarBotones);
gato.addClaseDatosTicTacToeListener(new ClaseDatosTicTacToeListener(){
public void juegoGanado(ClaseDatosTicTacToEvent evento){
if(evento.getOpcionGanadora() == ClaseDatosTicTacToe.OPCION_EQUIS){
JOptionPane.showMessageDialog(null,"El Ganador Es: X");
}else if(evento.getOpcionGanadora() == ClaseDatosTicTacToe.OPCION_CERO){
JOptionPane.showMessageDialog(null,"El Ganador Es: Y");
}
}
});
}
//--------------------Clase Interna--------------------------
public class ClaseInternaBotones extends MouseAdapter{
public void mousePressed(MouseEvent e){
MiBoton componente = (MiBoton) e.getSource();
switch(e.getModifiers()) {
      case InputEvent.BUTTON1_MASK:
componente.setText("X");
gato.actualizaSeleccion(componente.getFilas(),componente.getColumnas(), ClaseDatosTicTacToe.OPCION_EQUIS);
break;

case InputEvent.BUTTON3_MASK:
componente.setText("O");
gato.actualizaSeleccion(componente.getFilas(),componente.getColumnas(), ClaseDatosTicTacToe.OPCION_CERO);
break;
}
}
}

}//termina Controlador

Clase Main:

package Gato.control;
import Gato.control.Controlador;

public class Main{
public static void main(String args[]){
System.out.println("Inicia Ejecucion del Main...Tarea 04");
new Controlador();
}

}