style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">

Juego del Gato o Triqui

/*
 *
 * Autor : jl_
 * Fecha de Creacion : 2017_12_12
 *
 */

package triqui;

public class Triqui {

    public static void main(String[] args) {
        triqui.JframeTriqui.main(null);
    }
}
//fin clase Triqui

/*
 * Juego Triqui
 * Autor: jl_
 * Fecha de Creacion : 2017_12_11
 *
 * Notas: el juego del gato o triqui debes compilarlo y agregar en la carpeta dist del jar
 * la carpeta de las imagenes para que las muestre en el JFrame
 * porque utilizo el metodo diractual() para asignar la ruta de las imagenes
 *
*/

package triqui;

import java.io.File;

public class JframeTriqui extends javax.swing.JFrame {

    //declaracion de variables
    public int jugador            = 1;
    public int jugadorant         = 1;
    public int minimonumjugadas   = 0;
    public int maximonumjugadas   = 9;
    public int juegoiniciado      = 0;
    public String [][] configposicionjuego = new String[3][3];
    public int    [][] posicionjugadas     = new int[3][3];
    boolean jl_triqui=false;
    String x=null, y=null;
    String pos0=null, pos1=null, pos2=null;
    int pos0jugador=0, pos1jugador=0, pos2jugador=0;
    int swcoincidetriqui=0;
    int l=0;
    int swcoincide = 0;
    public javax.swing.JButton jbtn;
   
   
    public JframeTriqui() {
        initComponents();
        inicializarposjugadas();
        configurarposicionesjuego();
        iniciarbotones();
    }

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                        
        x="0";y="0";
        jbtn=jButton1;
        triqui();    
    }                                        

    private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                        
        x="1";y="0";
        jbtn=jButton2;
        triqui();
    }                                        

    private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {                                        
        x="2";y="0";
        jbtn=jButton3;
        triqui();
    }                                        

    private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {                                        
        x="0";y="1";
        jbtn=jButton4;
        triqui();
    }                                        

    private void jButton5ActionPerformed(java.awt.event.ActionEvent evt) {                                        
        x="1";y="1";
        jbtn=jButton5;
        triqui();
    }                                        

    private void jButton6ActionPerformed(java.awt.event.ActionEvent evt) {                                        
        x="2";y="1";
        jbtn=jButton6;
        triqui();
    }                                        

    private void jButton7ActionPerformed(java.awt.event.ActionEvent evt) {                                        
        x="0";y="2";
        jbtn=jButton7;
        triqui();
    }                                        

    private void jButton8ActionPerformed(java.awt.event.ActionEvent evt) {                                        
        x="1";y="2";
        jbtn=jButton8;
        triqui();
    }                                        

    private void jButton9ActionPerformed(java.awt.event.ActionEvent evt) {                                        
        x="2";y="2";
        jbtn=jButton9;
        triqui();
    }                                        

    private void jbtnuevoActionPerformed(java.awt.event.ActionEvent evt) {                                        
        iniciarvariables();      
        inicializarposjugadas();
        configurarposicionesjuego();
        inicializarvblestriqui();
        iniciarbotones();
        lblinfo.setText("Juego Iniciado : Turno al Jugador  1");
    }

    public static void main(String args[]) {
        /* Set the Nimbus look and feel */
        //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
        /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
         * For details see <a href="http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html" title="http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html">http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html</a>
         */

        try {
            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
                if ("Nimbus".equals(info.getName())) {
                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
                    break;
                }
            }
        } catch (ClassNotFoundException ex) {
            java.util.logging.Logger.getLogger(JframeTriqui.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
            java.util.logging.Logger.getLogger(JframeTriqui.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            java.util.logging.Logger.getLogger(JframeTriqui.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(JframeTriqui.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        }
        //</editor-fold>

        java.awt.EventQueue.invokeLater(new Runnable() {
            @Override
            public void run() {
                new JframeTriqui().setVisible(true);
            }
        });
    }

    public void inicializarposjugadas(){
        try {
            for(int i=0;i<3;i++){
                for(int j=0;j<3;j++){
                    posicionjugadas[i][j]=-1;
                }
            }    
        }
        catch (Exception e) {
            System.err.println("Error : "+e);
        }
    }
   
    public void configurarposicionesjuego(){
        try {
            for(int i=0;i<3;i++){
                for(int j=0;j<3;j++){
                    configposicionjuego[i][j]=null;
                }
            }
        }
        catch (Exception e) {
            System.err.println("Error : "+e);
        }
    }
   
    public void verificariniciojuego(){
        juegoiniciado = iniciar();
        try {
            //nuevo
            if(juegoiniciado==0){
                juegoiniciado = 1;
                jugador=2;
            }
        }
        catch (Exception e) {
            System.out.println("Error : "+e);
        }
    }
   
    public int iniciar(){
        int res=0;
        //
        try{
            if(juegoiniciado==0){
                res=0;
            }
            if(juegoiniciado==1){
                res=1;
            }
        }
        catch(Exception ex){
            System.out.println("Error : "+ex);
        }
        //
        return res;
    }
   
    public void asignarposicionjugada(){
       
        int x_=Integer.valueOf(x);
        int y_=Integer.valueOf(y);
       
        try{
           
            for(int i=0;i<3;i++){
                for(int j=0;j<3;j++){
                    //posicion y jugador fue asignado
                    if((configposicionjuego[i][j]!=null)&&(i==x_&&j==y_)){
                        swcoincide=-1;
                    }
                    //posicion y jugador sin asignar
                    if((configposicionjuego[i][j]==null)&&(i==x_&&j==y_)){
                        configposicionjuego[i][j]=x+","+y;
                        posicionjugadas[i][j]=jugador;
                        minimonumjugadas++;
                        swcoincide=1;
                        pegarimagenjugador(jbtn,jugador);
                        j=2;i=2;
                    }
                }
            }
            if(swcoincide==-1){
                javax.swing.JOptionPane.showMessageDialog(null, "Cuadro Seleccionado");
            }
            if(swcoincide==1){
                //verificar triqui del jugador activo
                try {
                    verificartriquijugador();                  
                }
                catch (Exception e) {
                    System.out.println("Error : "+e);          
                }
                try {
                    if(jl_triqui==false){
                        //asignar imagen del jugador al boton
                        cambiarjugador();                    
                    }
                }
                catch (Exception e) {
                    System.out.println("Error : "+e);                    
                }
            }
        }
        catch(Exception ex){
            System.out.println("Error : "+ex);
        }    
    }
   
    public void verificartriquijugador(){
        //verifica posiciones horizontales
        if(jl_triqui==false){
            verificahorizontales();
        }
        //verifica posiciones verticales
        if(jl_triqui==false){
            verificaverticales();
        }      
        //diagonal principal
        if(jl_triqui==false){
            verificadiagonalprincipal();
        }        
        //diagonal inversa
        if(jl_triqui==false){
            verificadiagonalinversa();
        }        
        //termino juego
        if(jl_triqui==true){
            javax.swing.JOptionPane.showMessageDialog(null, "Triqui!!! Gano Jugador : "+jugador);
        }        
    }

public void verificahorizontales(){
    int j=0;

    try {
        inicializarvblestriqui();
        for(int i=0;i<3;i++){
            for(j=0;j<3;j++){
                //posiciones
                if(j==0){pos0=configposicionjuego[i][j];}
                if(j==1){pos1=configposicionjuego[i][j];}
                if(j==2){pos2=configposicionjuego[i][j];}
            }
            try{
                //coincidencia del jugador en las tres posiciones
                if(!pos0.equals(null)&&!pos1.equals(null)&&!pos2.equals(null)){
                    for(int k=0;k<3;k++){
                        for(l=0;l<3;l++){
                            if(l==0){pos0jugador=posicionjugadas[k][l];}
                            if(l==1){pos1jugador=posicionjugadas[k][l];}
                            if(l==2){pos2jugador=posicionjugadas[k][l];}                          
                        }
                        if(pos0jugador==jugador&&pos1jugador==jugador&&pos2jugador==jugador){
                            swcoincidetriqui=1;
                            jl_triqui=true;
                            l=2;k=2;
                            i=2;j=2;
                        }
                    }
                }
            }
            catch (Exception e) {
                System.out.println("Error : "+e);        
            }            
        }        
    }
    catch (Exception e) {
        System.out.println("Error : "+e);        
    }
}

public void verificaverticales(){
    int j=0;
   
    try {
        inicializarvblestriqui();
        for(int i=0;i<3;i++){
            for(j=0;j<3;j++){
                //posiciones
                if(j==0){pos0=configposicionjuego[j][i];}
                if(j==1){pos1=configposicionjuego[j][i];}
                if(j==2){pos2=configposicionjuego[j][i];}
            }
            try{
                //coincidencia del jugador en las tres posiciones
                if(!pos0.equals(null)&&!pos1.equals(null)&&!pos2.equals(null)){
                    for(int k=0;k<3;k++){
                        for(l=0;l<3;l++){
                            if(l==0){pos0jugador=posicionjugadas[l][k];}
                            if(l==1){pos1jugador=posicionjugadas[l][k];}
                            if(l==2){pos2jugador=posicionjugadas[l][k];}                          
                        }
                        if(pos0jugador==jugador&&pos1jugador==jugador&&pos2jugador==jugador){
                            swcoincidetriqui=1;
                            jl_triqui=true;
                            l=2;k=2;
                            i=2;j=2;
                        }
                    }
                }
            }
            catch (Exception e) {
                System.out.println("Error : "+e);        
            }            
        }        
    }
    catch (Exception e) {
        System.out.println("Error : "+e);
    }
}

public void verificadiagonalprincipal(){
    int j=0;

    try {
        inicializarvblestriqui();
        for(int i=0;i<3;i++){
            for(j=0;j<3;j++){
                //posiciones
                if(j==0&&i==0){pos0=configposicionjuego[i][i];}
                if(j==1&&i==1){pos1=configposicionjuego[i][i];}
                if(j==2&&i==2){pos2=configposicionjuego[i][i];}
            }
            //coincidencia del jugador en las tres posiciones
            try{
                if(!pos0.equals(null)&&!pos1.equals(null)&&!pos2.equals(null)){
                    for(int k=0;k<3;k++){
                        for(l=0;l<3;l++){
                            if(l==0&&k==0){pos0jugador=posicionjugadas[k][k];}
                            if(l==1&&k==1){pos1jugador=posicionjugadas[k][k];}
                            if(l==2&&k==2){pos2jugador=posicionjugadas[k][k];}                          
                        }
                        if(pos0jugador==jugador&&pos1jugador==jugador&&pos2jugador==jugador){
                            swcoincidetriqui=1;
                            jl_triqui=true;
                            l=2;k=2;
                            i=2;j=2;
                        }
                    }
                }
            }
            catch (Exception e) {
                System.out.println("Error : "+e);        
            }            
        }        
    }
    catch (Exception e) {
        System.out.println("Error : "+e);        
    }
}    

public void verificadiagonalinversa(){
    int j=0;

    try {
        inicializarvblestriqui();
        for(int i=0;i<3;i++){
            for(j=0;j<3;j++){
                //posiciones
                if(i==0&&j==2){
                    pos0=configposicionjuego[i][j];
                    pos2=configposicionjuego[j][i];
                }                
                if(j==1&&i==1){pos1=configposicionjuego[i][i];}
            }
            //coincidencia del jugador en las tres posiciones
            try{
                if(!pos0.equals(null)&&!pos1.equals(null)&&!pos2.equals(null)){
                    for(int k=0;k<3;k++){
                        for(l=0;l<3;l++){
                            if(k==0&&l==2){pos0jugador=posicionjugadas[k][l];
                                if(k==0&&l==2){pos2jugador=posicionjugadas[l][k];}
                            }
                            if(l==1&&k==1){pos1jugador=posicionjugadas[k][l];}
                        }
                        if(pos0jugador==jugador&&pos1jugador==jugador&&pos2jugador==jugador){
                            swcoincidetriqui=1;
                            jl_triqui=true;
                            l=2;k=2;
                            i=2;j=2;
                        }
                    }
                }
            }
            catch (Exception e) {
                System.out.println("Error : "+e);        
            }            
        }        
    }
    catch (Exception e) {
        System.out.println("Error : "+e);        
    }
}    

    public void cambiarjugador(){
        try {
            jugador=(jugador==1)?2:1;
            lblinfo.setText("Turno al Jugador " +jugador);
            lblinfo.validate();
        }
        catch (Exception e) {
            System.out.println("Error : "+e);
        }
    }
   
    public void triqui(){
       
        //jl_ en triqui
        if(jl_triqui==true){
            javax.swing.JOptionPane.showMessageDialog(null, "Triqui!!! Gano Jugador : "+jugador);            
        }        
        if(minimonumjugadas<9){
            if(jl_triqui==false){
               
                asignarposicionjugada();
               
            }      
        }
        //juego terminado
        if(minimonumjugadas>8&&jl_triqui==false){
            javax.swing.JOptionPane.showMessageDialog(null, "Juego Terminado !!! No hay Ganador");
        }
    }
   
    public void inicializarvblestriqui(){
        pos0=null; pos1=null; pos2=null;
        pos0jugador=0; pos1jugador=0; pos2jugador=0;
        swcoincidetriqui=0;
        l=0;
        swcoincide = 0;
    }
   
    public void iniciarvariables(){
        //declaracion de variables
        jugador            = 1;
        jugadorant         = 1;
        minimonumjugadas   = 0;
        maximonumjugadas   = 9;
        juegoiniciado      = 0;
        jl_triqui=false;
        x=null; y=null;
        pos0=null; pos1=null; pos2=null;
        pos0jugador=0; pos1jugador=0; pos2jugador=0;
        swcoincidetriqui=0;
        l=0;
        swcoincide = 0;        
    }
   
    public String diractual(){
        String dir = "";
        File miDir = new File (".");
        try {
            dir = ""+miDir.getCanonicalPath();
        }
        catch(Exception e) {dir=null;}
        //
        return dir;
    }    
   
    public void pegarimagenjugador(javax.swing.JButton jbtn, int jugadorant_){
        String dir = "";
       
        try {
            dir = diractual();  
        }
        catch(Exception e){}
       
        if(dir==null){
            javax.swing.JOptionPane.showMessageDialog(null, "Verificar Carpeta De Programa");
        }
        if(jugadorant_==1){
//            jbtn.setIcon(new javax.swing.ImageIcon("C:\\Users\\USER\\Documents\\NetBeansProjects\\Triqui\\src\\img\\jugador1.png"));
            jbtn.setIcon(new javax.swing.ImageIcon(dir+"\\img\\jugador1.png"));
        }
        if(jugadorant_==2){
            jbtn.setIcon(new javax.swing.ImageIcon(dir+"\\img\\jugador2.png"));
        }
    }    
   
    public void iniciarbotones(){
        String dir = "";
       
        try {
            dir = diractual();  
        }
        catch(Exception e){}
       
        if(dir==null){
            javax.swing.JOptionPane.showMessageDialog(null, "Verificar Carpeta De Programa");
        }        
        jButton1.setIcon(new javax.swing.ImageIcon(dir+"\\img\\blanco.png"));
        jButton2.setIcon(new javax.swing.ImageIcon(dir+"\\img\\blanco.png"));
        jButton3.setIcon(new javax.swing.ImageIcon(dir+"\\img\\blanco.png"));
        jButton4.setIcon(new javax.swing.ImageIcon(dir+"\\img\\blanco.png"));
        jButton5.setIcon(new javax.swing.ImageIcon(dir+"\\img\\blanco.png"));
        jButton6.setIcon(new javax.swing.ImageIcon(dir+"\\img\\blanco.png"));
        jButton7.setIcon(new javax.swing.ImageIcon(dir+"\\img\\blanco.png"));
        jButton8.setIcon(new javax.swing.ImageIcon(dir+"\\img\\blanco.png"));
        jButton9.setIcon(new javax.swing.ImageIcon(dir+"\\img\\blanco.png"));
    }

    }

//fin clase  JframeTriqui  *****

style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">