

{"id":722,"date":"2019-11-29T21:34:27","date_gmt":"2019-11-29T20:34:27","guid":{"rendered":"https:\/\/dornisoft.es\/dorniblog\/?p=722"},"modified":"2021-08-12T22:33:46","modified_gmt":"2021-08-12T20:33:46","slug":"juego-de-3-en-raya-en-consola-en-java","status":"publish","type":"post","link":"https:\/\/dornisoft.es\/dorniblog\/juego-de-3-en-raya-en-consola-en-java\/","title":{"rendered":"Juego de 3 en raya en consola en Java"},"content":{"rendered":"\n<p>Hoy te traemos una aplicaci\u00f3n de consola en Java para jugar al tres en raya.<br>Consta de varias funciones:<br>-filas()<br>-columnas()<br>-diagonal()<br>-diagonalInversa()<br>Estas funciones estan destinadas a comprobar si hay 3 en raya.<br>Luego esta la funci\u00f3n pintar() que comprueba si se puede escribir en la posicion que indica el usuario(comprueba si esta ya escrita, entonces ser\u00eda movimiento incorrecto o si se sale de la pista) en estos dos casos el usuario tendr\u00eda que volver a introducir fila y columna donde quiere escribir su jugada.<br>Tambien est\u00e1 la funci\u00f3n mostrar() que escribe por pantalla la matriz de tres en raya como estar\u00eda despues de cada jugada.<br><\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">package aplicacion1;\n\nimport java.util.Scanner;\n\n\/**\n *\n * @author Javi\n *\/\npublic class TresEnRaya {\n\n    \/**\n     * @param args the command line arguments\n     *\/\n    public static boolean diagonalInversa(char mat[][],char jugador){\n        boolean diagonalInvers=false;\n         int k=0;\n        for(int i=2, j=0;j&lt;mat.length;i--,j++){\n           \n            if(mat[i][j]==jugador){\n                k++;\n            }\n            if(k==3){\n                diagonalInvers=true;\n            }\n        }\n        return diagonalInvers;\n    }\n    \n    \n    public static boolean diagonal(char mat[][],char jugador){\n        boolean diagonal=false;\n        int k=0;\n        for(int i=0, j=0;i&lt;mat.length;i++,j++){\n            \n            if(mat[i][j]==jugador){\n                k++;\n            }\n            if(k==3){\n                diagonal=true;\n            }\n        }\n        return diagonal;\n    }\n    \n    \n    public static boolean columnas(char mat[][],char jugador){\n        boolean columna=false;\n        for (int j=0;j&lt;mat[0].length;j++){\n            int k=0;\n            \n            for(int i=0;i&lt;mat.length;i++){\n                if(mat[i][j]==jugador){\n                    k++;\n                }\n                if(k==3){\n                    columna= true;\n                }\n                \n            }\n            \n        }\n        return columna;\n    }\n    \n    public static boolean pintar(int fila,int columna,char mat[][],char jugador){\n        \n        try{\n        if(mat[fila][columna]=='-'){\n           \n                mat[fila][columna]=jugador;\n                return true;\n            \n            \n        }else{\n            System.out.println(\"Movimiento incorrecto\");\n            return false;\n        }\n        }catch(Exception e){\n            System.out.println(\"Te has salido de la pista\");\n            return false;\n        }\n    }\n    \n    public static void mostrar(char mat[][]){\n        for (int i=0;i&lt;mat.length;i++){\n            for(int j=0;j&lt;mat[i].length;j++){\n                System.out.print(mat[i][j]+\" \");\n            }\n            System.out.println(\" \");\n        }\n    }\n    \n    public static boolean filas(char mat[][],char jugador){\n        boolean linea=false;\n        for (int i=0;i&lt;mat.length;i++){\n            int k=0;\n            \n            for(int j=0;j&lt;mat[i].length;j++){\n                if(mat[i][j]==jugador){\n                    k++;\n                }\n                if(k==3){\n                    linea= true;\n                }\n                \n            }\n            \n        }\n        return linea;\n    }\n    \n    \n    public static void main(String[] args) {\n        \/\/ TODO code application logic here\n        \n        char mat[][]= new char[3][3];\n        Scanner miteclado = new Scanner(System.in);\n        for (int i=0;i&lt;mat.length;i++){\n            for(int j=0;j&lt;mat[i].length;j++){\n               mat[i][j]='-';\n            }\n        }\n        char player='x';\n        char ultimo='x';\n        \n        while(!filas(mat,ultimo)&amp;&amp;!columnas(mat, ultimo)&amp;&amp;!diagonal(mat, ultimo)&amp;&amp;!diagonalInversa(mat, ultimo)){\n        \n            int fila,columna;\n        \n            do{\n                System.out.println(\"Jugador \"+player+\"\\n Donde quieres poner la \"+player+\"?\\n Indica la fila\");\n                fila=miteclado.nextInt();\n                System.out.println(\" Indica la columna\");\n                columna=miteclado.nextInt();\n            }while(!pintar(fila, columna, mat, player));\n            \n            mostrar(mat);\n            filas(mat,player);\n            columnas(mat,player);\n            diagonal(mat,player);\n            diagonalInversa(mat,player);\n\n            if (filas(mat,player)||columnas(mat, player)||diagonal(mat, player)||diagonalInversa(mat, player))\n                    System.out.println(\"Ha ganado \"+player);\n\n            ultimo=player;\n            switch(player){\n                case 'x':{\n                    player='o';\n                    break;\n                }\n                case 'o':{\n                    player='x';\n                    break;\n                }\n            }\n        }\n    }\n    \n}<\/pre>\n\n\n\n\n\n<p>Espero que te guste \u2665<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Hoy te traemos una aplicaci\u00f3n de consola en Java para jugar al tres en raya.Consta de varias funciones:-filas()-columnas()-diagonal()-diagonalInversa()Estas funciones estan destinadas a comprobar si hay 3 en raya.Luego esta la funci\u00f3n pintar() que comprueba si se puede escribir en la posicion que indica el usuario(comprueba si esta ya escrita, entonces ser\u00eda movimiento incorrecto o si &hellip; <a href=\"https:\/\/dornisoft.es\/dorniblog\/juego-de-3-en-raya-en-consola-en-java\/\" class=\"more-link\">Continuar leyendo<span class=\"screen-reader-text\"> \u00abJuego de 3 en raya en consola en Java\u00bb<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[29],"tags":[],"class_list":["post-722","post","type-post","status-publish","format-standard","hentry","category-programacion"],"_links":{"self":[{"href":"https:\/\/dornisoft.es\/dorniblog\/wp-json\/wp\/v2\/posts\/722","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dornisoft.es\/dorniblog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dornisoft.es\/dorniblog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dornisoft.es\/dorniblog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/dornisoft.es\/dorniblog\/wp-json\/wp\/v2\/comments?post=722"}],"version-history":[{"count":7,"href":"https:\/\/dornisoft.es\/dorniblog\/wp-json\/wp\/v2\/posts\/722\/revisions"}],"predecessor-version":[{"id":1271,"href":"https:\/\/dornisoft.es\/dorniblog\/wp-json\/wp\/v2\/posts\/722\/revisions\/1271"}],"wp:attachment":[{"href":"https:\/\/dornisoft.es\/dorniblog\/wp-json\/wp\/v2\/media?parent=722"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dornisoft.es\/dorniblog\/wp-json\/wp\/v2\/categories?post=722"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dornisoft.es\/dorniblog\/wp-json\/wp\/v2\/tags?post=722"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}