Buscar este blog

domingo, 31 de marzo de 2013

x fid domino world championschip

ORLANDO FLORIDA, USA

JUNE, 17th TO THE 23rd, 2013.

El campeonato mundial de domino se realizara desde junio 17 hasta junio 23 del 2013 en orlando florida con participacion de 15 paises entre ellos colombia, los mas opcionados al titulo en diferentes modalidades es la delegacion estadounidense seguida muy de cerca por los venezolanos. todos estan coordialmente invitados a participar de este evento.

Trabajo terminado..........



Así quedo el proyecto de tetrix....

Tetrix Clase Principal

Clase Principal del juego Gytetrix

A continuacion presento el codigo de la clase princiapal del juego gytetrix, es el alma del juego, donde se comunican todas las clases del tetrix y es la mas compleja y una de las mas extensas se utilizan varios tiempos y muchos vectores, disculpen el nombre de las variables son un poco desorganizadas.

package principaltetrix;

import java.awt.*;
import java.applet.*;
import java.awt.event.*;
import java.util.TimerTask;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JLabel;
import javax.swing.Timer;



public class Principaltetrix {

    public static void main(String[] args) {
        
        
        
            int a, k,max=6,min=1,fe,u,t,time=10000;
            
            String e;
            
            int [] fiche=new int [63];
            int vec[]=new int[63];
            int vec2[]=new int[63];
            int []mat =new int[63];
            int []res =new int[63];
            int []vec1 =new int[63];
            for(int fr=0;fr<63;fr++){
                mat[fr]=0;
                vec[fr]=0;
                vec1[fr]=0;
               
            }
             
           Fichas mificha=new Fichas();
           Aleatorio mialeatorio =new Aleatorio();
           Desplazar midesplazar=new Desplazar();
           Pantalla mipan =new Pantalla();
           
           Bajar mibajar=new Bajar();
           Parar miparar=new Parar ();
           Espacio miespacio=new Espacio ();
           Rotar mirotar =new Rotar();
           Action miaction =new Action();
           //mipan.main();
           mipan.setVisible(true);
          
            try {
            {
                
            Thread.currentThread().sleep(5000);
            }
           
           Thread.currentThread().sleep(0);
              }
           catch (InterruptedException ex) {
          Logger.getLogger(Principaltetrix.class.getName()).log(Level.SEVERE, null, ex);
           }
          
        
          
          int ge=0;
     for( u=0;u<30;u++){
       
        if(u<50){
          a=mialeatorio.ale();
      
           if(a==1){
           int []b =mificha.cuadro();
           
            for(int i=0;i<63;i++){
                  
            fiche[i]=b[i];
           
                }
            ge=ge+1;
           }
           if(a==2){
           int []b =mificha.line();
           
            for(int i=0;i<63;i++){
                  
            fiche[i]=b[i];
           
                }
            ge=ge+1;
           }
           if(a==3){
           int []b =mificha.piramide();
           
            for(int i=0;i<63;i++){
                  
            fiche[i]=b[i];
          
                }
            ge=ge+1;
           }
           if(a==4){
           int []b =mificha.ele();
           
            for(int i=0;i<63;i++){
                  
            fiche[i]=b[i];
          
                }
            ge=ge+1;
           }
           mipan.PUNTUACION(ge);
           
      try {
            {
                mat=miespacio.espace(vec);
                for(int i=0;i<63;i++){
                    if(vec1[i]==1 && mat[i]==1){
                    vec1[i]=1;
                    }
                    if(vec1[i]==0 && mat[i]==1){
                    vec1[i]=vec1[i]+mat[i];
                    }
                }
                u=miparar.seguirficha(vec1);
         if(u>0){
             u=55;
            mipan.aviso();
            
         }
                if(u<35){
               int seg=0,op=0,yt=0,lo=0,r=0,kf=0,d;
            for(int s=0;s<20;s++){
                
                seg=seg+1;
                if(seg==1){
                  d=0; 
                }
                else{
             d = mipan.ivan();
                }
              
               mipan.color(fiche,a);
              
                  
              if(d==3){
                   if(op==1){
                       yt=op+2;
                    }
                   if(op==2){
                       yt=op;
                    }
                  
                    if(op==3){
                       yt=1;
                    }
                     if(op==0){
                       yt=0;
                   }
                     
                   op=5;
                  
                  if(yt==4){
                       yt=0;
                   }
                   if(a==4){
                      res=mirotar.ele(res,yt);
                 }
                   yt=yt+1;
                 if(a==2){
                     if(lo==2){
                         lo=0;
                     }
                     
                       res=mirotar.rotarline(res,lo);
                       lo=lo+1;
                 }
                 
                 
                 if(kf==1){
                       r=kf+2;
                   }
                   if(kf==2){
                       r=kf;
                   }
                   if(kf==3){
                       r=1;
                   }
                     if(kf==0){
                       r=0;
                   }
                     
                   kf=5;
                 if(r==4){
                   r=0;
                     }
                 if(a==3){
                     
                    res=mirotar.pira(res,r);
                    r=r+1;
                 }
                 
                  
                    if(a==1){
                       res=mibajar.baja(fiche);
                 }
                  
              
              }
              
               if(d==4){
                   
                   if(yt==1){
                       op=yt+2;
                   }
                   if(yt==2){
                       op=yt;
                   }
                  if(yt==3){
                       op=1;
                   }
                  if(yt==0){
                       op=0;
                   }
                   yt=5;
                   if(op==4){
                       op=0;
                   }
                    if(a==4){
                      res=mirotar.ele1(res,op);
                    }
                    op=op+1;
                    
                    if(a==2){
                     if(lo==2){
                         lo=0;
                     }
                     
                   res=mirotar.rotarline(res,lo);
                   lo=lo+1;
                 }
                    if(r==4){
                         r=0;
                     }
                    if(r==1){
                       kf=r+2;
                   }
                   if(r==2){
                       kf=r;
                   }
                  if(r==3){
                       kf=1;
                   }
                     if(r==0){
                       kf=0;
                   }
                     
                   r=5;
                    if(kf==4){
                         kf=0;
                     }
                    if(a==3){
                     
                    res=mirotar.pira1(res,kf);  
                    kf=kf+1;
                 }
                   
                 if(a==1){
                       res=mibajar.baja(fiche);
                 }
                  
              
                  }
              
               
               
              if(d==2){
                res=midesplazar.izquierda(fiche);
               }
              if(d==1){
                res=midesplazar.derecha(fiche);
               }
              if(d==0){
                 res=mibajar.baja(fiche);
               }
              
             
            
               vec2=vec1;
             
             
              
              int sa;
             
               int se=miespacio.seguir(fiche,vec1);
              
              if(se==1){
              
                s=50; 
                  
              }
             if(se==0){
               fe=miparar.stop(fiche);
              
                if(fe==0){
                  
               for(int i=0;i<63;i++){
                  fiche[i]=res[i];
                  vec[i]=fiche[i];
                 
                  mipan.color(fiche,a);
                  Thread.currentThread().sleep(15);
                  mipan.vaciar(fiche,0);
                  
                     }
                  }
               
               if(fe==1){
                   for(int i=0;i<63;i++){
                
                  vec[i]=fiche[i];
                   
                 mipan.color(fiche,a);
                 Thread.currentThread().sleep(1);
                 mipan.vaciar(fiche,1);
             
                   }
                  }
                
                }
            }
            }
       }
           
           Thread.currentThread().sleep(10);
    }
      
          catch (InterruptedException ex) {
          Logger.getLogger(Principaltetrix.class.getName()).log(Level.SEVERE, null, ex);
           }
     } 
    }  
     
  }
    
}
 

sábado, 30 de marzo de 2013

Dominz asi va el proyecto...

Con la implementacion del mousedregged ya puedo mover las fichas de domino en un jframe de dimensiones 1300x699 es una ventana totalmente hecha a codigo sin utilizar el formulario JFrame y donde ya se encuentran ubicados los diferentes botones que componen un domino y donde yo selecciono una ficha y la muevo con el click sostenido hacia cualquier parte de mi JFrame aqui muestro una imagen donde ya he movido varias fichas con el mouse.

mouseDragged

En el dia de hoy, quiero compartir este codigo el cual permite mover un boton en una ventana manteniendo el click presionado y dirigiendo el boton hacia donde queremos, este truco lo necesito para mi proyecto dominz, donde se implementara cuando el jugador desee colocar fichas en la zona de juego seleccionandola y arrastrandola con el mouse, a continuacion el codigo. No olvidar que nuestra clase debe implementar la interfaz MouseMotionListener.

clase principal(main)


package moverobjeto;


public class MoverObjeto {

   
    public static void main(String[] args) {
       
       juego mijuego=new juego();
mijuego.ventana();
       
    }
}

clase de la ventana:


public class juego implements MouseMotionListener {
   
    public void ventana(){
     JFrame miventana =new JFrame ();

     JButton miboton=new JButton();

        miventana.setSize(400, 400);
        miventana.setLocationRelativeTo(null);
        miventana.setLayout(null);
        miventana.setResizable(false);
        miboton.setBounds(50, 50, 60, 80);
        miboton.addMouseMotionListener(this);
        miventana.add(miboton);
        miventana.setVisible(true);
    }

    @Override
    public void mouseDragged(MouseEvent e) {
      int x=e.getX();
        int y=e.getY();
        miboton.setLocation(x, y);
        miboton.repaint(x, y,miboton.getWidth(), miboton.getHeight());
       
    }

    @Override
    public void mouseMoved(MouseEvent e) {
     
    }

 
}


jueves, 28 de marzo de 2013

Gytetrix código fuente

Luego de presentar el proyecto  en clase se subirá el archivo del código fuente para estar a disposición de ustedes.

GYTetrix

Tetrix finalizado!!!!!

El proyecto tetrix ya hoy culmina, se adicionaron las rotaciones de las fichas hacia ambos lados, hacia el lado izquierdo y el lado derecho, ya se puede jugar en el con toda seguridad de estar jugando un tetrix de los que comúnmente solemos jugar, el tetrix Gytetrix cuenta con 4 opciones de ficha ; el cuadrado, la ele, la pirámide y la linea, cuenta con los movimientos de desplazamiento hacia la izquierda y hacia la derecha, permite hacer rotación de las figuras excepto el cuadrado, ya que este no necesita de dicha rotación  el programa brinda una puntacion, esta esta dada por el total de fichas en juego, entre mas fichas se acumulen en la zona de juego mas puntuación se tendrá  igualmente en un jlabel aparece un mensaje de "GAME OVER" si las fichas llegan hasta el borde superior de la zona de juego, y en la parte izquierda se encuentran los botones accionados por el mouse, se trato de implementar una interfaz gráfica hecha a mano pero se tienen inconvenientes a la hora de capturar algún valor que propicie un evento generado ya que no se tiene el conocimiento de como atraparlo y ademas las fuentes como la Internet no brindan las suficientes herramientas para aclarar las dudas.
se implementaron en el programa:

-9 clases:

      - clase principal
      - clase pantalla
      - clase rotar
      - clase desplazar(izq-der)
      - clase bajar
      - clase fichas
     - clase aleatorio
     - clase espacio disponible
     - clase parar

Lo mas complicado del programa fue el momento en que las fichas quedaran una encima de la otra, me gasto varias horas intentar solucionar el problema pero al fin se logro con la clase espacio disponible  la cual recibía como argumento un contador de fichas que iban quedando en la ventana en forma de vector, y hacia una comparación con otro vector pasado como argumento para determinar si este ya estaba dentro de la otra matriz, si era así  el movimiento se paraba y quedaban registradas sus posiciones para otra nueva ficha que entraba a la zona de juego.


nueva interfaz grafica del tetrix

Interfaz gráfica del tetrix sin utilizar el formulario JFrame




miércoles, 27 de marzo de 2013

Clase para bajar y desplazar fichas de tetrix


Esta clase utilizada dentro del juego tetrix permite, dar el movimiento a las fichas, ya sea hacia la izquierda, la derecha o simplemente hacia abajo, esta clase tiene 3 métodos  donde cada método realiza una función especifica y que cada uno es llamado de la clase principal cuando es necesaria su ayuda en el programa, todos los métodos reciben un vector como parámetro y devuelven un nuevo vector a la clase principal, este nuevo vector contiene las coordenadas o posiciones ya definidas con el movimiento correspondiente de la ficha y que se graficaran en la clase pantalla.

package principaltetrix;

public class Bajar {


    int vec[]=new int[56];
    int k;

   
    public int []baja(int[]vec1){
     
   
        for(int i=0;i<56;i++){
            if(vec1[i]==1){
                     k=i+7;
                     if(k<56){
                      vec[k]=vec1[i];
                     }
               }
        }
       
          return vec;
    }
   


public class Desplazar {
   
    public int []derecha(int[]vec1){
     
     
        for(int i=0;i<56;i++){
            if(vec1[i]==1){
                     k=i+1;
                     if(k<56){
                      vec[k]=vec1[i];
                     }    
               }
          }
       
          return vec;
    }

     public int []izquierda(int[]vec1){

   
        for(int i=0;i<56;i++){
            if(vec1[i]==1){
                     k=i-1;
                     if(k>=0){
                      vec[k]=vec1[i];
                     }
               }
         }
       
          return vec;
    }
   
   
   
}

lunes, 25 de marzo de 2013

Tetrix

Bajo permiso de los directores de dominz presento la nueva creación de la empresa llamado Gytetrix.


domingo, 24 de marzo de 2013

Así va Dominz


Action Listener Para Dominz

La implementacion de action listener al programa dominz, es muy importante ya que nos permite a través de periféricos de entrada ejecutar una acción para que nuestro programa responda a esto, tal es el caso que nos puede servir de gran ayuda cuando el jugador mueva una ficha sostenida por el mouse. para ello debe existir un objeto, cuya función es la escuchar lo que el objeto al cual queremos seguir ejecute y responder con algo, en este caso con el movimiento de una ficha para determinar si esta quedo bien colocada en la mesa de juego de dominz.
Para esta oportunidad traigo el action listener en un ejemplo sencillo utilizando dos clase, una principal y la otra que implementa el action listener, y es para indicar como lo llamamos para que este ejecute algo.
Código:

clase principal

package ventana;

import java.awt.GridLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.xml.bind.Marshaller.Listener;


public class Ventana  {

 
    public static void main(String[] args) {
        JFrame miventana =new JFrame ();
        JButton miboton=new JButton();
        Laura mila=new Laura();
        Listener mil=new Listener() {};
        GridLayout milayout =new GridLayout(5,0);
        miventana.setSize(400, 400);
        miventana.setLocationRelativeTo(null);
        miventana.setLayout(milayout);
        miboton.addActionListener(mila);
        miventana.setVisible(true);
        miventana.setResizable(false);
        miventana.add(miboton);
       
       
       
    }
}
Clase que implementa el action listener


package ventana;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JOptionPane;

public class Laura implements ActionListener  {

    @Override
    public void actionPerformed(ActionEvent e) {
       
        JOptionPane.showMessageDialog(null, "HOLA");
    }
   
   
   
}

El anterior programa muestra una ventana de 400 x 400 pixeles centrada en la pantalla que tiene un botón  y que al ser clickeado muestra un cuadro de dialogo que por mensaje tiene "haz oprimido el botón".





jueves, 14 de marzo de 2013

TRIQUI EN JAVA


ASÍ VOY CON EL TETRIX





Medir el tiempo en java

Medir el tiempo en java es muy útil para cualquier aplicación que deseemos elaborar, ya que permitirá un determinado tiempo en la ejecución de procesos y es aplicable al juego dominz, ya que en el se debe implementar un tiempo entre el jugador y la maquina.

CODIGO:


 try {
   
                 //CODIGO A EJECUTAR, PARA ESTE CASO CON UN TIEMPO DE 10
            }
         
        Thread.currentThread().sleep(10);
               
}
            catch (InterruptedException ex) {
            Logger.getLogger(Principaltetrix.class.getName()).log(Level.SEVERE, null, ex);
                 }
     
   


Pasar una matriz como argumento JAVA

CLASE PRINCIPAL


package javaapplication20;


public class JavaApplication20 {

   
    public static void main(String[] args) {
        Saco misaco=new Saco();
        int [] vec=new int[3];  
         
        for(int i=0;i<3;i++){
            vec[i]=2;
        }
       int []vec1= misaco.barco(vec);
       for(int i=0;i<3;i++){
           System.out.print(vec1[i]);
       }
       
       
    }
}


CLASE SECUNDARIA




public class Saco {
    public int [] barco(int[]a){
        int []v=new int[3];
       for(int i=0;i<3;i++){
           v[i]=a[i];
       }
        if(1==v[0]){
            System.out.print("hola");
        }
         if(2==v[1]){
            System.out.print("holaaaaa");
        }
        return v;
    }
   
}