Juego del Gato para aprendices.

  • 1 Respuestas
  • 3582 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado coke951

  • *
  • Underc0der
  • Mensajes: 38
  • Actividad:
    0%
  • Reputación 0
  • Skype: Cok3951
    • Ver Perfil

Juego del Gato para aprendices.

  • en: Septiembre 08, 2015, 02:59:24 pm
Para los que están aprendiendo a programar, quizás les resulte útil este pequeño programa que hice en java solo por hacer.

Realmente lo hice bastante fácil, no me metí en detalle y quizás utilice métodos bastante tontos, igual soy nuevo programando.

Solo es el juego del Gato, tiene 2 opciones, jugar contra la computadora o jugar con otra persona. Al jugar con la computadora solo introduce una posición aleatoria. Espero que les sea de utilidad.

git: You are not allowed to view links. Register or Login

Imagenes:



Codigo:
Código: Java
  1. import java.util.Scanner;
  2.  
  3. class Gato{
  4.    public static void main(You are not allowed to view links. Register or Login []args){
  5.       JuegoGame game = new JuegoGame();
  6.       Scanner entrada = new Scanner(You are not allowed to view links. Register or Login.in);
  7.       int coordenada[] = new int[2];
  8.       boolean alternar = true;
  9.       boolean salir = false;
  10.       boolean ia = false;
  11.       boolean coorVer = false;
  12.      
  13.       You are not allowed to view links. Register or Login.out.println("Bienvenido al juego del gato.\nEste juego fue creado por BlaN");
  14.       do{
  15.          You are not allowed to view links. Register or Login.out.print("\n\nPuedes jugar contra otra persona o contra la computadora.\nContra quien quieres jugar?\n(1 = contra otra persona | 2 = contra la computadora): ");
  16.          if(entrada.nextInt() == 2){
  17.             ia = true;
  18.          }
  19.          
  20.          You are not allowed to view links. Register or Login.out.println("\nA JUGAR!");
  21.          
  22.          You are not allowed to view links. Register or Login.out.println("\nPrimero jugara el jugador X\n");
  23.      
  24.          do{
  25.             You are not allowed to view links. Register or Login.out.println("\n"+game.mostrarTablero()+"\n");
  26.             do{
  27.                coorVer = false;
  28.                if(alternar){
  29.                   You are not allowed to view links. Register or Login.out.print("<ul class="bbc_list"><li type="disc"> Jugador X, Escoge fila: ");[/li][/list]
  30.                   coordenada[0] = entrada.nextInt();
  31.                   You are not allowed to view links. Register or Login.out.print("</li><li type="disc"> Jugador X, Escoge columna: ");[/li][/list]
  32.                   coordenada[1] = entrada.nextInt();
  33.                }else if(!ia && !alternar){
  34.                   You are not allowed to view links. Register or Login.out.print("</li><li type="disc"> Jugador O, Escoge fila: ");[/li][/list]
  35.                   coordenada[0] = entrada.nextInt();
  36.                   You are not allowed to view links. Register or Login.out.print("</li><li type="disc"> Jugador O, Escoge columna: ");[/li][/list]
  37.                   coordenada[1] = entrada.nextInt();
  38.                }else{
  39.                   coordenada = game.jugarIA();
  40.                   You are not allowed to view links. Register or Login.out.println("La computadora escogio:\nFila: "+coordenada[0]+"\nColumna: "+coordenada[1]);
  41.                }
  42.                if(coordenada[0] < 1 || coordenada[0] > 3 || coordenada[1] < 1 || coordenada[1] > 3){
  43.                   coorVer = true;
  44.                   You are not allowed to view links. Register or Login.out.println("\nSolo puedes introducir numeros del 1 al 3\n");
  45.                }else if(!coorVer){
  46.                   if(game.comprobarLugarLimpio(coordenada)){
  47.                      You are not allowed to view links. Register or Login.out.println("\nEse lugar se encuentra ocupado ya.\n");
  48.                      coorVer = true;
  49.                   }
  50.                }
  51.             }while(coorVer);
  52.             game.setCoordenada(coordenada, alternar);
  53.             if(game.comprobarWin(alternar) || game.comprobarEmpate()){
  54.                You are not allowed to view links. Register or Login.out.println("\n"+game.mostrarTablero());
  55.                if(game.comprobarEmpate()){
  56.                   You are not allowed to view links. Register or Login.out.println("\n[->*] NO HAY GANADOR [*<-]");
  57.                }else if(alternar){
  58.                   You are not allowed to view links. Register or Login.out.println("\n[->*] EL GANADOR ES EL JUGADOR X [*<-]");
  59.                }else if(!alternar){
  60.                   You are not allowed to view links. Register or Login.out.println("\n[->*] EL GANADOR ES EL JUGADOR O [*<-]");
  61.                }
  62.                
  63.                You are not allowed to view links. Register or Login.out.println("\nVolver al menu?");
  64.                entrada.nextLine();
  65.                if(entrada.nextLine().equalsIgnoreCase("si")){
  66.                   game = null;
  67.                   game = new JuegoGame();
  68.                   alternar = true;
  69.                   salir = false;
  70.                   break;
  71.                }else{
  72.                   salir = true;
  73.                   break;
  74.                }
  75.             }else{
  76.                if(alternar)
  77.                   alternar = false;
  78.                else
  79.                   alternar = true;
  80.             }
  81.            
  82.          }while(true);
  83.       }while(!salir);
  84.      
  85.    }
  86. }

Código: Java
  1. class JuegoGame{
  2.    
  3.    char [][]gato;
  4.    
  5.    public JuegoGame(){
  6.       gato = new char[3][3];
  7.       //fila 1
  8.       gato[0][0] = ' '; gato[0][1] = ' '; gato[0][2] = ' ';
  9.       //fila 2
  10.       gato[1][0] = ' '; gato[1][1] = ' '; gato[1][2] = ' ';
  11.       //fila 3
  12.       gato[2][0] = ' '; gato[2][1] = ' '; gato[2][2] = ' ';
  13.    }
  14.    
  15.    public You are not allowed to view links. Register or Login mostrarTablero(){
  16.       You are not allowed to view links. Register or Login tab = "";
  17.      
  18.       for(int x = 0 ; x < gato.length ; x++){
  19.          tab += "\t";
  20.          for(int i = 0 ; i < gato.length ; i++){
  21.             tab += You are not allowed to view links. Register or Login.valueOf(gato</li><li type="square">[i]);[/li][/list]
  22.             if( i < gato.length -1){
  23.                tab += " | ";
  24.             }
  25.          }
  26.          if(x < gato.length -1){
  27.             tab +="\n\t---------\n";
  28.          }
  29.       }
  30.       return tab;
  31.    }
  32.    
  33.    public boolean comprobarLugarLimpio(int[] cor){
  34.       if(gato[cor[0]-1][cor[1]-1] == 'X' || gato[cor[0]-1][cor[1]-1] == 'O'){
  35.          return true;
  36.       }else{
  37.          return false;
  38.       }
  39.    }
  40.    
  41.    public void setCoordenada(int [] cor, boolean alternar){
  42.       int x = cor[0],y = cor[1];
  43.       if(alternar){
  44.          gato[x-1][y-1] = 'X';
  45.       }else{
  46.          gato[x-1][y-1] = 'O';
  47.       }
  48.    }
  49.    
  50.    public int[] jugarIA(){
  51.       int cor[] = new int[2];
  52.       do{
  53.          cor[1] = (int)((You are not allowed to view links. Register or Login.random()*3)+1);
  54.          cor[0] = (int)((You are not allowed to view links. Register or Login.random()*3)+1);
  55.       }while(comprobarLugarLimpio(cor));
  56.       return cor;
  57.    }
  58.    
  59.    public boolean comprobarEmpate(){
  60.       boolean comp = false;
  61.       int cont = 0;
  62.      
  63.       for(int x = 0 ; x < gato.length ; x++){
  64.          for(int y = 0; y < gato.length ; y++){
  65.             if(gato</li><li type="square">[y] == 'X' || gato</li><li type="square">[y] == 'O'){[/li][/list]
  66.                cont++;
  67.             }
  68.          }
  69.       }
  70.      
  71.       if(cont < 9){
  72.          comp = false;
  73.       }else{
  74.          comp = true;
  75.       }
  76.       return comp;
  77.    }
  78.    
  79.    public boolean comprobarWin(boolean alternar){
  80.       boolean win[] = new boolean[3];
  81.       win[0] = false;
  82.       win[1]=false;
  83.       win[2]= false;
  84.       boolean ganador = false;
  85.       boolean salir = false;
  86.       int ganadas = 0;
  87.       int contador = 0;
  88.       int x = 0;
  89.       int y = 0;
  90.       do{
  91.          if(alternar){
  92.             if('X' == gato</li><li type="square">[y]){[/li][/list]
  93.                win[ganadas] = true;
  94.                ganadas++;
  95.                if(win[0] && win[1] && win[2]){
  96.                   ganador = true;
  97.                }
  98.             }
  99.          }else{
  100.             if('O' == gato</li><li type="square">[y]){[/li][/list]
  101.                win[ganadas] = true;
  102.                ganadas++;
  103.                if(win[0] && win[1] && win[2]){
  104.                   ganador = true;
  105.                }
  106.             }
  107.          }
  108.          contador++;
  109.          if(contador <= 9){
  110.             y++;
  111.          }else if(contador > 9 && contador < 18){
  112.             x++;
  113.          }
  114.          
  115.          else if(contador > 18 && contador < 21){
  116.             y++;
  117.             x++;
  118.          }else if(contador >= 21){
  119.             if(contador == 22){
  120.                x--;
  121.                y++;
  122.             }else if(contador == 23){
  123.                x--;
  124.                y++;
  125.             }
  126.          }
  127.          if(contador == 0){
  128.             win[0] = false;
  129.             win[1]=false;
  130.             win[2]= false;
  131.             ganadas = 0;
  132.          }
  133.          if(contador == 3){
  134.             win[0] = false;
  135.             win[1] = false;
  136.             win[2] = false;
  137.             ganadas = 0;
  138.             x++;
  139.             y=0;
  140.          }else if(contador == 6){
  141.             win[0] = false;
  142.             win[1] = false;
  143.             win[2] = false;
  144.             ganadas = 0;
  145.             x++;
  146.             y=0;
  147.          }else if(contador == 9){
  148.             win[0] = false;
  149.             win[1] = false;
  150.             win[2] = false;
  151.             ganadas = 0;
  152.             x=0;
  153.             y=0;
  154.          }else if(contador == 12){
  155.             win[0] = false;
  156.             win[1] = false;
  157.             win[2] = false;
  158.             ganadas = 0;
  159.             x = 0;
  160.             y++;
  161.          }else if(contador == 15){
  162.             win[0] = false;
  163.             win[1] = false;
  164.             win[2] = false;
  165.             ganadas = 0;
  166.             x = 0;
  167.             y++;
  168.          }
  169.          if(contador == 18){
  170.             win[0] = false;
  171.             win[1] = false;
  172.             win[2] = false;
  173.             ganadas = 0;
  174.             x=0;
  175.             y=0;
  176.          }else if(contador == 21){
  177.             win[0] = false;
  178.             win[1] = false;
  179.             win[2] = false;
  180.             ganadas = 0;
  181.             x=2;
  182.             y=0;
  183.          }
  184.          else if(contador ==24){
  185.             salir = true;
  186.          }
  187.       }while(!salir);
  188.      
  189.       return ganador;
  190.    }
  191. }


Cualquier duda, consejo o comentario constructivo es bienvenido.

Saludos
« Última modificación: Septiembre 08, 2015, 03:02:44 pm por coke951 »

Desconectado LKI

  • *
  • Underc0der
  • Mensajes: 78
  • Actividad:
    0%
  • Reputación 0
  • |Un día sin aprender nada, es un día perdido..|
    • Ver Perfil
    • Email

Re:Juego del Gato para aprendices.

  • en: Septiembre 10, 2015, 11:55:40 pm
Muy buen código, muy limpio y ordenado es excelente cuando se respetan las convenciones  y se trabaja ordenadamente. Felicitaciones!
Ser mejor cada día es mi meta

 =LKI=

 

Java al Extremo [Todo lo que Necesitas Para Aprender Java] [Multi]

Iniciado por Mr.Kratos

Respuestas: 0
Vistas: 3065
Último mensaje Julio 20, 2018, 05:21:12 pm
por Mr.Kratos
Cheat-Sheet: JAVA - Hoja Guía para que no se me olvide

Iniciado por Denisse

Respuestas: 1
Vistas: 553
Último mensaje Julio 21, 2020, 12:43:49 pm
por DevCode
Retazo: Cambiar el LookAndFeel para el tiempo de ejecución

Iniciado por Adalher

Respuestas: 1
Vistas: 3131
Último mensaje Enero 15, 2019, 09:57:14 am
por Elchito33
Conversor ASCI a Hex para inyecciones by andresg888

Iniciado por ProcessKill

Respuestas: 0
Vistas: 2628
Último mensaje Febrero 24, 2010, 04:13:18 pm
por ProcessKill
[Aporte] Mi primera aplicacion para celular

Iniciado por Only

Respuestas: 4
Vistas: 4332
Último mensaje Noviembre 06, 2011, 07:41:24 am
por sisvot1