Tres en Raya y Conecta Cuatro escritos en Java

21/11/2005 por ggarfield, 20

Aquí tenemos un pequeño programa escrito en Java de la mano de DeathMetal que nos permite jugar al 3 en ralla y al conecta 4 en la consola de Windows (o Linux).

Es un proyecto personal, asi que seguramente es bastante ineficiente pero que puede que os sirva por si queréis aprender a programar algo en Java.

En el archivo lineagames.zip encontraréis el ejecutable para Windows del programa, el source code (código fuente, el liniagames.java que podéis abrir perfectamente con el Bloc de Notas de Windows o el WordPad) y la clase inout.class que el programa utiliza por las entradas/salidas de datos y que necesitaréis si lo queréis compilar vosotrs mismos. Para poder ejecutar el programa necesitaréis tener instalado el Java Runtime Environment (JRE). Los que tengáis Linux, sólo tenéis que tener instalado el compilador de Java e ir a una ventana shell i escribir:

/>javac liniagames.java

/>java liniagames

Recordad que tenéis que tener el inout.class en el mismo directorio que el liniagmes.java

Un poco de información técnica: Para escribir y compilar el programa en un .jar utilizamos Eclipse y para pasar de .jar a .exe utilizamos exe4j.

Próximamente el solucionador de sudokus prometido ; -).

Atención: El manual de instrucciones está en el comentario de DeathMetal

¿Te ha gustado lo que has visto? ¡Compártelo, menéalo o vótalo! ¡Gracias!
20 comentarios
  1. Aish que emoción un progrma mío circulando en un post de la red. Snif snif.
    Simplemente quería daros una breve introducción de cómo funciona.
    Veréis que es bastante fácil hacer que peta (por ejemplo si cuando espera un natural le das un String pues se lió la gorda, pero si le das en lugar de un narutal un entero o un numero exagerado está controlado ;)).

    Y para que sepáis como funciona introducir dadas, siempre es FilaxColumna (i,j).
    Es decir, en el Tres en Raya se elegiría:
    A 1
    B 2
    C 1
    A 3
    etc. (véase que despues de la letra va un espacio y acto seguido el número).

    Para el conecta 4 es bastante similar, se trata de:
    1
    2
    5
    3
    etc. (simplemente darle la columna donde “tirar” una ficha).

    Pues eso, espero que a alguien le sirva esto y les reto a encontrar situaciones en los que pete. En otras palabras, a ver quien encuentra un bug (no vale introducir un tipo de dato incorrecto pues eso es culpa de mis limitados conocimientos a la hora de lanzar excepciones :().

    Salu2!

    DeathMetal dice...
    21/11/2005 a las 5:31 pm
  2. interesante

    julio cesar dice...
    4/7/2006 a las 10:04 pm
  3. hola me gustaria poder platicar contigo sobre programacion, no se si me puedas dar tu mail
    Ciao

    Ernesto dice...
    30/11/2006 a las 6:26 am
  4. Jajajaja qué tiempos aquellos del primer cuadri de carrera, donde no sabía ni usar excepciones ni interfícies gráficas. Y aún milagro que llegase a programar la chapuza esta…
    Se me cae la lagrimita al recordar.

    Ernesto, si tienes algo que preguntar o hablar o lo que sea hazlo por aquí, que así será fuente de info para todos ;) Aunque hace un tiempo que me pasé del java al C++ :D

    DeathMetal dice...
    30/11/2006 a las 4:15 pm
  5. Hola lo que pasa que quiero que me ayudes enserio, estoy muy presionado no se si me puedas ayduar a hacer un juego de 4 en raya (conecta 4) un poco mas sencillo con lo que he visto. porfavor me urge!!!
    no se si me puedas agregar al msn
    Gracias y disuclpa si es un molestia

    Ernesto dice...
    30/11/2006 a las 11:55 pm
  6. Hola nesecito ayuda urgente para hacer este programa, porfavor te lo pido es realizar el de 4 en raya solamente, no se si tengas el codigo bien en JAVA pero que compile, o si me puedes ayudar
    Gracias

    Ernesto dice...
    2/12/2006 a las 6:34 pm
  7. Sí, Ernesto, tengo el código en Java y que compila.

    Si miras más arriba en el post está liniagames.zip, archivo donde se encuentra el código de el 3 en raya. Para convertirlo en el 4 en raya únicamente tendrás que cambiar algunas tonterías en plan las variables en iteraciones o el tamaño de la matriz.
    Prueba a mirártelo y trastear.

    Suerte!

    DeathMetal dice...
    3/12/2006 a las 11:16 pm
  8. hola porfa necesito me ayudes, deseo el codigo de tres en raja escrito en java con applet.

    pedro dice...
    3/5/2007 a las 12:06 am
  9. Sorry pero esto lo programé hace mucho, ya me he pasado al C, y lo peor de todo es que apenas tengo tiempo para mis cosas gracias a los proyectos de la uni, así que no voy a hacerte los deberes :)
    Salu2.

    DeathMetal dice...
    3/5/2007 a las 1:29 pm
  10. Hola, queria preguntarte si sabes donde puedo encontrar alguna
    modalidad de las 4 en raya que tenga un tablero de 6×5
    6 fichas abajo, x 5 de alto.
    Te estaria eternamente agradecido!
    Un cordial saludo.

    Agustin Bermudez dice...
    13/11/2007 a las 3:05 am
  11. #Agustin Bermudez, la idea es exactamente la misma para tu 4 en raya de 6×5 que para cualquier otro. Simplemente has de cambiar las constantes de tamaño (los extremos) del tablero y ya esá. Vamos, la mida.

    El java este lo hice cuando aún picaba código sin constantes globales y de forma poco reusable, así que a no ser que entiendas un míiiiiinimo de java y seas capaz de ver en los “ifs” cuándo controlas no salirte de los extremos del tablero…olvídate del tema por aquí.

    Sorry

    DeathMetal dice...
    13/11/2007 a las 8:27 pm
  12. no esta nada mal tu invento yo por mi lado me han puesto un 3 en raya como practica final de curso de 1º de DAI(desarrollo de aplicaciones informaticas) y ese juego lo hice antes e el 1 trimetre.
    este es el codigo que ahora estoy pilendolo y luego le añadire para poder jugar con la maquina ^^
    PD. ahora me acordao que falta que diga si gana cuando hace una diagonal xd que despiste el mio
    import java.io.*;
    public class enraya{
    private static BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));
    public static void main(String args[])throws IOException{
    String input;
    String taula[][]={{"0,0","0,1","0,2",},{"1,0","1,1","1,2",},{"2,0","2,1","2,2",}};
    int k,x,y,j,g,i,i2;
    k=g=i=j=i2=0;
    do{
    for(x=0;x<3;x++){
    System.out.println();
    for(y=0;y<3;y++){
    System.out.print("| "+taula[x][y]+" | ");
    }
    if(x<2)System.out.print("\n-----------------------");
    }
    if(g==0){
    do{
    System.out.print("\n Quin espai(X) vols Jugador 1? ");
    input = stdin.readLine();
    x = Integer.parseInt(input);
    System.out.print("\n Quin espai(Y) vols Jugador 1? ");
    input = stdin.readLine();
    y = Integer.parseInt(input);
    if(taula[x][y]!="O"){
    j=1;
    taula[x][y]="X";
    k++;
    }
    }while(j==0);
    }
    for(x=0;x<3;x++){
    for(y=0;y<3;y++){
    if(taula[x][y]=="X")i++;
    if(taula[y][x]=="X")i2++;
    }
    if(i==3||i2==3)g=1;
    i=i2=0;
    }
    for(y=0;y<3;y++){
    for(x=0;x<3;x++){

    }
    if(i==3)g=1;
    i=0;
    }
    j=0;
    if(k<9){
    if(g==0){
    for(x=0;x<3;x++){
    System.out.println();
    for(y=0;y<3;y++){
    System.out.print("| "+taula[x][y]+" | ");
    }
    if(x<2)System.out.print("\n-----------------------");
    }
    do{
    System.out.print("\n Quin espai(X) vols Jugador 2? ");
    input = stdin.readLine();
    x = Integer.parseInt(input);
    System.out.print("\n Quin espai(Y) vols Jugador 2? ");
    input = stdin.readLine();
    y = Integer.parseInt(input);
    if(taula[x][y]!="X"){
    j=1;
    taula[x][y]="O";
    k++;
    }
    }while(j==0);
    for(x=0;x<3;x++){
    for(y=0;y<3;y++){
    if(taula[x][y]=="O")i++;
    if(taula[y][x]=="O")i2++;
    }
    if(i==3||i2==3)g=2;
    i=i2=0;
    }
    }}
    }while(k<9&&g==0);
    if(g!=0){
    System.out.print("\nHa guanyat el jugador nº "+g);
    }else{
    System.out.print("\nSou tan bons que no ha guanyat ningu");
    }
    }}

    hubyto dice...
    12/4/2008 a las 10:11 pm
  13. Necesito hacer un buscaminas con un monton de cosas mas
    ayuda muchacho…….

    Anónimo dice...
    3/8/2008 a las 9:08 pm
  14. alguien que tenga el juego de tres en raya en codigo ???????? plissssssssss

    favi dice...
    14/6/2011 a las 7:57 pm
  15. plis alguien me puede ayudar

    favi dice...
    14/6/2011 a las 7:58 pm
  16. Quien tendra el codigo de conecta 4, lo necesito es de 4 * 4 y es contra la maquina , es en java y es POO quien me ayuda

    Daniel Perez dice...
    18/2/2012 a las 10:19 pm
  17. HElp

    Daniel Perez dice...
    18/2/2012 a las 10:20 pm
  18. ayuda necesito 3 en raya codigo y diseño x fa gente

    Anónimo dice...
    13/4/2012 a las 8:46 pm
  19. alguien que tenga el juego de tres en raya en codigo y diseño por favor alguien

    Fredd dice...
    13/4/2012 a las 8:49 pm
  20. y que sea en java 6.0 y en Netwebs

    Fredd dice...
    13/4/2012 a las 8:51 pm
¡Comenta!