{"id":6498,"date":"2014-03-10T21:25:23","date_gmt":"2014-03-10T20:25:23","guid":{"rendered":"http:\/\/www.palentino.es\/blog\/?p=6498"},"modified":"2014-03-10T21:30:06","modified_gmt":"2014-03-10T20:30:06","slug":"3-en-raya-en-java-codigo-fuente-primera-parte-modo-manual","status":"publish","type":"post","link":"https:\/\/www.palentino.es\/blog\/3-en-raya-en-java-codigo-fuente-primera-parte-modo-manual\/","title":{"rendered":"3 en Raya en JAVA.C\u00f3digo fuente, primera Parte. Modo manual."},"content":{"rendered":"<p>En esta entrada os dej\u00e1re el c\u00f3digo que he desarrollado como ejemplo para la construcci\u00f3n del juego<strong> 3 en raya<\/strong> para JAVA.<br \/>\nHe empleado Netbeans como IDE.\u00a0Prop\u00f3sitos formativos. En la siguiente entrada, mostrar\u00e9 c\u00f3mo aplicar el modo autom\u00e1tico.<\/p>\n<p><a href=\"http:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2014\/03\/3-en-raya-java.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-6500\" alt=\"3-en-raya-java\" src=\"http:\/\/www.palentino.es\/blog\/wp-content\/uploads\/2014\/03\/3-en-raya-java.png\" width=\"220\" height=\"196\" \/><\/a><\/p>\n<p><!--more--><\/p>\n<pre lang=\"java\">\r\n\r\nimport java.io.BufferedReader;\r\nimport java.io.IOException;\r\nimport java.io.InputStreamReader;\r\nimport java.util.logging.Level;\r\nimport java.util.logging.Logger;\r\n\r\n\/**\r\n *\r\n * @author Oscar de la Cuesta.\r\n * 3 En Raya, propositos didacticos.\r\n *\/\r\npublic class juego {\r\n    int tablero[][]= new int [3][3];\r\n    \r\n    \r\n    public static void main(String[] args) {\r\n        BufferedReader teclado = new BufferedReader(new InputStreamReader(System.in));\r\n        juego mi_juego= new juego();\r\n        String texto;\r\n        char opcion='1';\r\n        \r\n        \r\n        while((opcion=='1') || (opcion=='2')){\r\n            try {\r\n                 System.out.println(\"1- Autom\u00e1tico\");\r\n        System.out.println(\"2- Modo manual\");\r\n                opcion=teclado.readLine().charAt(0);\r\n                \r\n                switch(opcion){\r\n                    case '1':\r\n                        break;\r\n                     \r\n                    case '2':\r\n                    mi_juego.inicializa();\r\n                    mi_juego.dibuja_tres_en_raya();\r\n                    mi_juego.comenzar_a_jugar();\r\n                    break;\r\n                        \r\n                    default: \r\n                        System.out.println(\"Opcion incorrecta\");\r\n                        opcion='1';\r\n                          \r\n                }\r\n    \r\n            } catch (IOException ex) {\r\n                Logger.getLogger(juego.class.getName()).log(Level.SEVERE, null, ex);\r\n            }\r\n        \r\n    }\r\n        \r\n    }\r\n    public void dibuja_tres_en_raya(){         \r\n       int filas_tablero=0;\r\n       int columnas_tablero;\r\n        \r\n        System.out.println(\"-------------\");\r\n        for(int i=0; i<tablero.length;i++){\r\n            for(int j=0; j<tablero.length;j++){\r\n               \r\n                if(tablero[i][j]==0){                    \r\n                    System.out.print(\"| \" + tablero[i][j] + \" \");\r\n                }\r\n                if (tablero[i][j]==1)\r\n                {\r\n                     System.out.print(\"| \" + \"X\" + \" \");\r\n                    \r\n                }\r\n                if (tablero[i][j]==3)\r\n                {\r\n                     System.out.print(\"|\" + \"  \");\r\n                    \r\n                }\r\n            }\r\n            System.out.print(\"|\");\r\n            System.out.println(\"\");\r\n        }\r\n        System.out.println(\"-------------\");\r\n        \r\n    }\r\n\r\npublic void inicializa()\r\n{\r\nfor(int i=0; i<tablero.length;i++){\r\n            for(int j=0; j<tablero.length;j++){\r\n                tablero[i][j]=3;\r\n            }\r\n}\r\n}\r\n\r\npublic void comenzar_a_jugar(){\r\n        try {\r\n            BufferedReader teclado = new BufferedReader(new InputStreamReader(System.in));\r\n            String introduce0;\r\n            String introduceX;\r\n            boolean fin=false;\r\n           \r\n            System.out.println(\"\u00bfC\u00f3mo quieres jugar X\/0?\");\r\n            String juego = teclado.readLine().toUpperCase();\r\n            int valor_juego=0;\r\n            if(juego.equals(\"0\")){\r\n                valor_juego=0;\r\n            }\r\n            if(juego.equals(\"X\")){\r\n                \r\n                valor_juego=1;\r\n                \r\n            }\r\n            if(juego.equals(\"X\") || (juego.equals(\"0\"))){\r\n            \r\n            System.out.println(\"Comienza el 0\");\r\n            \r\n            System.out.println(\"\");\r\n            \r\n            while(fin==false){\r\n            dibuja_tres_en_raya();\r\n            if(valor_juego==1){\r\n                System.out.println(\"Te toca X\");\r\n            }\r\n            if(valor_juego==0){\r\n                System.out.println(\"Te toca 0\");\r\n            }\r\n            System.out.println(\"Introduce coordenadas de posici\u00f3n: (0,0) \");\r\n            System.out.println(\"Introduce la fila\");\r\n            int fila= Integer.parseInt(teclado.readLine());\r\n            System.out.println(\"Introduce la columna\");\r\n            int columna= Integer.parseInt(teclado.readLine());\r\n            if(tablero[fila][columna]==3){\r\n                boolean ganador;\r\n                tablero[fila][columna]=valor_juego;\r\n                dibuja_tres_en_raya();\r\n                ganador=comprobar_ganador(valor_juego);\r\n                \r\n                if(ganador){\r\n                    System.out.println(\"Ha ganado \" + valor_juego);\r\n                    fin=true;\r\n                    inicializa();\r\n                }else {\r\n                    int estado_empate=0;\r\n                    for(int i=0;i<=2;i++){\r\n                        for(int j=0;j<=2;j++){\r\n                            if((tablero[i][j]==0) || (tablero[i][j]==1)){\r\n                                estado_empate=estado_empate+1;\r\n                            }\r\n                        }\r\n                    }\r\n                    if(estado_empate==9){\r\n                        System.out.println(\"Se ha empatado\");\r\n                        fin=true;\r\n                    }\r\n                    if(valor_juego==1){\r\n                        valor_juego=0;\r\n                    }\r\n                    else{\r\n                        if(valor_juego==0){\r\n                        valor_juego=1;\r\n                        }\r\n                    }\r\n                }\r\n            }else{\r\n                System.out.println(\"No puede jugar, ya est\u00e1 usado\");\r\n            }\r\n            }\r\n            }\r\n        } catch (IOException ex) {\r\n            Logger.getLogger(juego.class.getName()).log(Level.SEVERE, null, ex);\r\n        }\r\n    \r\n}\r\npublic boolean comprobar_ganador(int valor_juego){\r\n    \r\n    if((tablero[0][0]==valor_juego) &#038;&#038; (tablero[0][1]==valor_juego) &#038;&#038; (tablero[0][2]==valor_juego)){\r\n        return true;\r\n    }\r\n    if((tablero[1][0]==valor_juego) &#038;&#038; (tablero[1][1]==valor_juego) &#038;&#038; (tablero[1][2]==valor_juego)){\r\n        return true;\r\n    }\r\n    if((tablero[2][0]==valor_juego) &#038;&#038; (tablero[2][1]==valor_juego) &#038;&#038; (tablero[2][2]==valor_juego)){\r\n        return true;\r\n    }\r\n    if((tablero[0][0]==valor_juego) &#038;&#038; (tablero[2][0]==valor_juego) &#038;&#038; (tablero[3][0]==valor_juego)){\r\n        return true;\r\n    }\r\n    if((tablero[0][1]==valor_juego) &#038;&#038; (tablero[1][1]==valor_juego) &#038;&#038; (tablero[2][1]==valor_juego)){\r\n        return true;\r\n    }\r\n    if((tablero[0][2]==valor_juego) &#038;&#038; (tablero[1][2]==valor_juego) &#038;&#038; (tablero[2][2]==valor_juego)){\r\n        return true;\r\n    }\r\n    if((tablero[0][0]==valor_juego) &#038;&#038; (tablero[1][1]==valor_juego) &#038;&#038; (tablero[2][2]==valor_juego)){\r\n        return true;\r\n    }\r\n    if((tablero[0][2]==valor_juego) &#038;&#038; (tablero[1][1]==valor_juego) &#038;&#038; (tablero[2][0]==valor_juego)){\r\n        return true;\r\n    }\r\n    return false;\r\n}\r\n\r\n}\r\n\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>En esta entrada os dej\u00e1re el c\u00f3digo que he desarrollado como ejemplo para la construcci\u00f3n del juego 3 en raya para JAVA. He empleado Netbeans como IDE.\u00a0Prop\u00f3sitos formativos. En la siguiente entrada, mostrar\u00e9 c\u00f3mo aplicar el modo autom\u00e1tico.<\/p>\n","protected":false},"author":1,"featured_media":5784,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[492,5],"tags":[666,57],"class_list":["post-6498","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-java-2","category-programacion","tag-formacion","tag-java"],"_links":{"self":[{"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/posts\/6498","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/comments?post=6498"}],"version-history":[{"count":6,"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/posts\/6498\/revisions"}],"predecessor-version":[{"id":7372,"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/posts\/6498\/revisions\/7372"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/media\/5784"}],"wp:attachment":[{"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/media?parent=6498"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/categories?post=6498"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.palentino.es\/blog\/wp-json\/wp\/v2\/tags?post=6498"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}