send
Grupo de Telegram
play_arrow
Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

Juego del Gato para aprendices.

  • 1 Respuestas
  • 2052 Vistas

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

Desconectado coke951

  • *
  • Underc0der
  • Mensajes: 38
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
  • Skype: Cok3951
« 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. You are not allowed to view links. Register or Login or 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. You are not allowed to view links. Register or Login or 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. You are not allowed to view links. Register or Login or 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. You are not allowed to view links. Register or Login or 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. You are not allowed to view links. Register or Login or 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. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login.out.println("\nA JUGAR!");
  21.                        
  22.                         You are not allowed to view links. You are not allowed to view links. Register or Login or 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. You are not allowed to view links. Register or Login or 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. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login.out.print("[*] Jugador X, Escoge fila: ");
  30.                                                 coordenada[0] = entrada.nextInt();
  31.                                                 You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login.out.print("[*] Jugador X, Escoge columna: ");
  32.                                                 coordenada[1] = entrada.nextInt();
  33.                                         }else if(!ia && !alternar){
  34.                                                 You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login.out.print("[*] Jugador O, Escoge fila: ");
  35.                                                 coordenada[0] = entrada.nextInt();
  36.                                                 You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login.out.print("[*] Jugador O, Escoge columna: ");
  37.                                                 coordenada[1] = entrada.nextInt();
  38.                                         }else{
  39.                                                 coordenada = game.jugarIA();
  40.                                                 You are not allowed to view links. You are not allowed to view links. Register or Login or 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. You are not allowed to view links. Register or Login or 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. You are not allowed to view links. Register or Login or 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. You are not allowed to view links. Register or Login or 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. You are not allowed to view links. Register or Login or 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. You are not allowed to view links. Register or Login or 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. You are not allowed to view links. Register or Login or 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. You are not allowed to view links. Register or Login or 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. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login mostrarTablero(){
  16.                 You are not allowed to view links. You are not allowed to view links. Register or Login or 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. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login.valueOf(gato[x][i]);
  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. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login.random()*3)+1);
  54.                         cor[0] = (int)((You are not allowed to view links. You are not allowed to view links. Register or Login or 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[x][y] == 'X' || gato[x][y] == 'O'){
  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[x][y]){
  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[x][y]){
  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: 59
  • Actividad:
    0%
  • Reputación 0
  • |Un día sin aprender nada, es un día perdido..|
    • Ver Perfil
    • Email
« Respuesta #1 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=

 

¿Te gustó el post? COMPARTILO!



[Aporte] Mi primera aplicacion para celular

Iniciado por Only

Respuestas: 4
Vistas: 2391
Último mensaje Noviembre 06, 2011, 07:41:24 am
por sisvot1
Conversor ASCI a Hex para inyecciones by andresg888

Iniciado por ProcessKill

Respuestas: 0
Vistas: 1563
Último mensaje Febrero 24, 2010, 04:13:18 pm
por ProcessKill
Programación de juegos para principiantes

Iniciado por Expermicid

Respuestas: 3
Vistas: 5319
Último mensaje Abril 06, 2014, 09:09:17 pm
por Expermicid