raghy

jogo da velha em java para console (uso com IDE ou console)

Aug 22nd, 2013
359
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 21.70 KB | None | 0 0
  1. /*
  2.  * To change this template, choose Tools | Templates
  3.  * and open the template in the editor.
  4.  */
  5. package geracaotecprojetos;
  6.  
  7. import java.util.Scanner;
  8.  
  9. public class JogoDaVelha {
  10.    
  11.     boolean vitoria = false;
  12.     boolean continuar = true;
  13.     boolean casa00x = false;
  14.     boolean casa01x = false;
  15.     boolean casa02x = false;
  16.     boolean casa10x = false;
  17.     boolean casa11x = false;
  18.     boolean casa12x = false;
  19.     boolean casa20x = false;
  20.     boolean casa21x = false;
  21.     boolean casa22x = false;
  22.     boolean casa00y = false;
  23.     boolean casa01y = false;
  24.     boolean casa02y = false;
  25.     boolean casa10y = false;
  26.     boolean casa11y = false;
  27.     boolean casa12y = false;
  28.     boolean casa20y = false;
  29.     boolean casa21y = false;
  30.     boolean casa22y = false;
  31.     String matriz[][] = new String[3][3];
  32.     int contador = 0;
  33.     int contaVitoriasX = 0;
  34.     int contaVitoriasY = 0;
  35.     int contaEmpates = 0;
  36.     String nome1 = "";
  37.     String nome2 = "";
  38.         boolean jogada1 = true;
  39.             boolean jogada2 = true;
  40.    
  41.     public JogoDaVelha() {
  42.        
  43.        
  44.        
  45.         Scanner entrada = new Scanner(System.in);
  46.         System.out.println("nome jogador 1:");
  47.         nome1 = entrada.next();
  48.         System.out.println("nome jogador 2:");
  49.         nome2 = entrada.next();
  50.        
  51.        
  52.        
  53.         int X = 0;
  54.         int Y = 0;
  55.        
  56.        
  57.        
  58.         while (vitoria == false && continuar == true) {
  59.             //  while (vitoria == false ) {
  60.  
  61.        
  62.             while (jogada1 == true) {
  63.                
  64.                 System.out.println("_____________________________________");
  65.                 System.out.println("jogador 1 informe a posicao do X (xis) através do numero de linha e coluna:");
  66.                 System.out.println("numero de linha para jogador 1 é:");
  67.                 Scanner entradaLinha = new Scanner(System.in);
  68.                 X = entradaLinha.nextInt();
  69.                
  70.                 System.out.println("numero de coluna para jogador 1 é:");
  71.                 Scanner entradaColuna = new Scanner(System.in);
  72.                 Y = entradaColuna.nextInt();
  73.                
  74.                 if (X == 0 && Y == 0 && casa00x == false && casa00y == false) {
  75.                     matriz[0][0] = "X";//poe o X
  76.                     casa00x = true;//a casa fica ocupada
  77.                     jogada1 = false;//sai da jogada
  78.                 } else if (X == 0 && Y == 0 && (casa00x == true || casa00y == true)) {
  79.                     jogada1 = true;//continua jogando no while de jogada 1.
  80.                     System.out.println("ESTA CASA JÁ ESTÁ OCUPADA, POR FAVOR INSIRA OUTRA CASA:");//avisa que está ocupada...
  81.                 }
  82.                 if (X == 0 && Y == 1 && casa01x == false && casa01y == false) {
  83.                     matriz[0][1] = "X";
  84.                     casa01x = true;
  85.                     jogada1 = false;
  86.                 } else if (X == 0 && Y == 1 && (casa01x == true || casa01y == true)) {
  87.                     jogada1 = true;
  88.                     System.out.println("ESTA CASA JÁ ESTÁ OCUPADA, POR FAVOR INSIRA OUTRA CASA:");
  89.                 }
  90.                 if (X == 0 && Y == 2 && casa02x == false && casa02y == false) {
  91.                     matriz[0][2] = "X";
  92.                     casa02x = true;
  93.                     jogada1 = false;
  94.                 } else if (X == 0 && Y == 2 && (casa02x == true || casa02y == true)) {
  95.                     jogada1 = true;
  96.                     System.out.println("ESTA CASA JÁ ESTÁ OCUPADA, POR FAVOR INSIRA OUTRA CASA:");
  97.                 }
  98.                
  99.                
  100.                
  101.                 if (X == 1 && Y == 0 && casa10x == false && casa10y == false) {
  102.                     matriz[1][0] = "X";
  103.                     casa10x = true;
  104.                     jogada1 = false;
  105.                 } else if (X == 1 && Y == 0 && (casa10x == true || casa10y == true)) {
  106.                     jogada1 = true;
  107.                     System.out.println("ESTA CASA JÁ ESTÁ OCUPADA, POR FAVOR INSIRA OUTRA CASA:");
  108.                 }
  109.                 if (X == 1 && Y == 1 && casa11x == false && casa11y == false) {
  110.                     matriz[1][1] = "X";
  111.                     casa11x = true;
  112.                     jogada1 = false;
  113.                 } else if (X == 1 && Y == 1 && (casa11x == true || casa11y == true)) {
  114.                     jogada1 = true;
  115.                     System.out.println("ESTA CASA JÁ ESTÁ OCUPADA, POR FAVOR INSIRA OUTRA CASA:");
  116.                 }
  117.                 if (X == 1 && Y == 2 && casa12x == false && casa12y == false) {
  118.                     matriz[1][2] = "X";
  119.                     casa12x = true;
  120.                     jogada1 = false;
  121.                 } else if (X == 1 && Y == 2 && (casa12x == true || casa12y == true)) {
  122.                     jogada1 = true;
  123.                     System.out.println("ESTA CASA JÁ ESTÁ OCUPADA, POR FAVOR INSIRA OUTRA CASA:");
  124.                 }
  125.                
  126.                 if (X == 2 && Y == 0 && casa20x == false && casa20y == false) {
  127.                     matriz[2][0] = "X";
  128.                     casa20x = true;
  129.                     jogada1 = false;
  130.                 } else if (X == 2 && Y == 0 && (casa20x == true || casa20y == true)) {
  131.                     jogada1 = true;
  132.                     System.out.println("ESTA CASA JÁ ESTÁ OCUPADA, POR FAVOR INSIRA OUTRA CASA:");
  133.                 }
  134.                 if (X == 2 && Y == 1 && casa21x == false && casa21y == false) {
  135.                     matriz[2][1] = "X";
  136.                     casa21x = true;
  137.                     jogada1 = false;
  138.                 } else if (X == 2 && Y == 1 && (casa21x == true || casa21y == true)) {
  139.                     jogada1 = true;
  140.                     System.out.println("ESTA CASA JÁ ESTÁ OCUPADA, POR FAVOR INSIRA OUTRA CASA:");
  141.                 }
  142.                 if (X == 2 && Y == 2 && casa22x == false && casa22y == false) {
  143.                     matriz[2][2] = "X";
  144.                     casa22x = true;
  145.                     jogada1 = false;
  146.                 } else if (X == 2 && Y == 2 && (casa22x == true || casa22y == true)) {
  147.                     jogada1 = true;
  148.                     System.out.println("ESTA CASA JÁ ESTÁ OCUPADA, POR FAVOR INSIRA OUTRA CASA:");
  149.                 }
  150.  
  151.                 // imprime matriz atual... com jogada do jogador 1...
  152.                 for (int i = 0; i < matriz.length; i++) {
  153.                     for (int k = 0; k < matriz.length; k++) {
  154.                         // if(i==X&&k==Y) {matriz[i][k]="X"; }
  155.                         // else
  156.                         // {System.out.println("este casa já está ocupada");}
  157.                         // if(i==X2&&k==Y2) {matriz[i][k]="O";}
  158.                         // rag
  159.                         // else
  160.                         if (matriz[i][k] == null) {
  161.                             matriz[i][k] = " ";
  162.                         }
  163.                         System.out.print("[ " + matriz[i][k] + " ]");
  164.                     }// for 2
  165.                     System.out.println("");
  166.                 } // for1
  167.  
  168.             }// FECHA WHILE JOGADA1
  169.  
  170.             //   System.out.println("jogada2"+jogada2);
  171.             //vitorias
  172.  
  173.             if (casa00x && casa10x && casa20x == true) {
  174.                 vitoria = true;
  175.                 continuar = false; //para entrar no if de joga de novo
  176.                 System.out.println("JOGADOR X  " + nome1 + " FEZ VELHA!!!");
  177.                 jogada2 = false;
  178.                 contaVitoriasX = contaVitoriasX + 1;;
  179.             }
  180.             if (casa00x && casa01x && casa02x == true) {
  181.                 vitoria = true;
  182.                 continuar = false; //para entrar no if de joga de novo
  183.                 System.out.println("JOGADOR X " + nome1 + " FEZ VELHA!!!");
  184.                 jogada2 = false;
  185.                 contaVitoriasX = contaVitoriasX + 1;;
  186.             }
  187.             if (casa02x && casa12x && casa22x == true) {
  188.                 vitoria = true;
  189.                 continuar = false; //para entrar no if de joga de novo
  190.                 System.out.println("JOGADOR X " + nome1 + " FEZ VELHA!!!");
  191.                 jogada2 = false;
  192.                 contaVitoriasX = contaVitoriasX + 1;;
  193.             }
  194.             if (casa20x && casa21x && casa22x == true) {
  195.                 vitoria = true;
  196.                 continuar = false; //para entrar no if de joga de novo
  197.                 System.out.println("JOGADOR X " + nome1 + " FEZ VELHA!!!");
  198.                 jogada2 = false;
  199.                 contaVitoriasX = contaVitoriasX + 1;;
  200.             }
  201.            
  202.             if (casa01x && casa11x && casa21x == true) {
  203.                 vitoria = true;
  204.                 continuar = false; //para entrar no if de joga de novo
  205.                 System.out.println("JOGADOR X " + nome1 + " FEZ VELHA!!!");
  206.                 jogada2 = false;
  207.                 contaVitoriasX = contaVitoriasX + 1;;
  208.             }
  209.             if (casa10x && casa11x && casa12x == true) {
  210.                 vitoria = true;
  211.                 continuar = false; //para entrar no if de joga de novo
  212.                 System.out.println("JOGADOR X " + nome1 + " FEZ VELHA!!!");
  213.                 jogada2 = false;
  214.                 contaVitoriasX = contaVitoriasX + 1;;
  215.             }
  216.             if (casa00x && casa11x && casa22x == true) {
  217.                 vitoria = true;
  218.                 continuar = false; //para entrar no if de joga de novo
  219.                 System.out.println("JOGADOR X " + nome1 + " FEZ VELHA!!!");
  220.                 jogada2 = false;
  221.                 contaVitoriasX = contaVitoriasX + 1;;
  222.             }
  223.             if (casa20x && casa11x && casa02x == true) {
  224.                 vitoria = true;
  225.                 continuar = false; //para entrar no if de joga de novo
  226.                 System.out.println("JOGADOR X " + nome1 + " FEZ VELHA!!!");
  227.                 jogada2 = false;
  228.                 contaVitoriasX = contaVitoriasX + 1;;
  229.             }
  230.  
  231.             //Scanner entrada3 = new Scanner(System.in);
  232.             //System.out.println("nome jogador 1:");
  233.             //String jogaDeNovo = entrada3.next();
  234.             //  if (jogaDeNovo=="S"||jogaDeNovo=="s"){continuar=true;} else {continuar=false;}
  235.  
  236.            
  237.            
  238.            
  239.             contador = contador + 1;
  240.             if (contador == 9 && vitoria == false) {
  241.                
  242.                 System.out.println("_____________________________________");
  243.                 System.out.println("Houve empate (X), todas as jogadas foram realizadas...");
  244.                
  245.                 System.out.println("_____________________________________");
  246.                 continuar = false;
  247.                 contaEmpates = contaEmpates + 1;
  248.                 //para entrar no if de joga de novo        
  249.             }//if de empate
  250.  
  251.            
  252.            
  253.             while (jogada2 == true && vitoria == false) {
  254.                
  255.                 System.out.println("_____________________________________");
  256.                 System.out.println("jogador 2 informe a posicao do O (circulo) através do numero de linha e coluna:");
  257.                 System.out.println("numero de linha para jogador 2 é:");
  258.                 Scanner entradaLinhaJogador2 = new Scanner(System.in);
  259.                 int X2 = entradaLinhaJogador2.nextInt();
  260.                 System.out.println("numero de coluna para jogador 2 é:");
  261.                 Scanner entradaColunaJogador2 = new Scanner(System.in);
  262.                 int Y2 = entradaColunaJogador2.nextInt();
  263.                
  264.                 if (X2 == 0 && Y2 == 0 && casa00y == false && casa00x == false) {
  265.                     matriz[0][0] = "O";
  266.                     casa00y = true;
  267.                     jogada2 = false;
  268.                 } else if (X2 == 0 && Y2 == 0 && (casa00y == true || casa00x == true)) {
  269.                     jogada2 = true;
  270.                     System.out.println("ESTA CASA JÁ ESTÁ OCUPADA, POR FAVOR INSIRA OUTRA CASA:");
  271.                 }
  272.                 if (X2 == 0 && Y2 == 1 && casa01y == false && casa01x == false) {
  273.                     matriz[0][1] = "O";
  274.                     casa01y = true;
  275.                     jogada2 = false;
  276.                 } else if (X2 == 0 && Y2 == 1 && (casa01y == true || casa01x == true)) {
  277.                     jogada2 = true;
  278.                     System.out.println("ESTA CASA JÁ ESTÁ OCUPADA, POR FAVOR INSIRA OUTRA CASA:");
  279.                 }
  280.                 if (X2 == 0 && Y2 == 2 && casa02y == false && casa02x == false) {
  281.                     matriz[0][2] = "O";
  282.                     casa02y = true;
  283.                     jogada2 = false;
  284.                 } else if (X2 == 0 && Y2 == 2 && (casa02y == true || casa02x == true)) {
  285.                     jogada2 = true;
  286.                     System.out.println("ESTA CASA JÁ ESTÁ OCUPADA, POR FAVOR INSIRA OUTRA CASA:");
  287.                 }
  288.                
  289.                 if (X2 == 1 && Y2 == 0 && casa10y == false && casa10x == false) {
  290.                     matriz[1][0] = "O";
  291.                     casa10y = true;
  292.                     jogada2 = false;
  293.                 } else if (X2 == 1 && Y2 == 0 && (casa10y == true || casa10x == true)) {
  294.                     jogada2 = true;
  295.                     System.out.println("ESTA CASA JÁ ESTÁ OCUPADA, POR FAVOR INSIRA OUTRA CASA:");
  296.                 }
  297.                 if (X2 == 1 && Y2 == 1 && casa11y == false && casa11x == false) {
  298.                     matriz[1][1] = "O";
  299.                     casa11y = true;
  300.                     jogada2 = false;
  301.                 } else if (X2 == 1 && Y2 == 1 && (casa11y == true || casa11x == true)) {
  302.                     jogada2 = true;
  303.                     System.out.println("ESTA CASA JÁ ESTÁ OCUPADA, POR FAVOR INSIRA OUTRA CASA:");
  304.                 }
  305.                 if (X2 == 1 && Y2 == 2 && casa12y == false && casa12x == false) {
  306.                     matriz[1][2] = "O";
  307.                     casa12y = true;
  308.                     jogada2 = false;
  309.                 } else if (X2 == 1 && Y2 == 2 && (casa12y == true || casa12x == true)) {
  310.                     jogada2 = true;
  311.                     System.out.println("ESTA CASA JÁ ESTÁ OCUPADA, POR FAVOR INSIRA OUTRA CASA:");
  312.                 }
  313.                
  314.                 if (X2 == 2 && Y2 == 0 && casa20y == false && casa20x == false) {
  315.                     matriz[2][0] = "O";
  316.                     casa20y = true;
  317.                     jogada2 = false;
  318.                 } else if (X2 == 2 && Y2 == 0 && (casa20y == true || casa20x == true)) {
  319.                     jogada2 = true;
  320.                     System.out.println("ESTA CASA JÁ ESTÁ OCUPADA, POR FAVOR INSIRA OUTRA CASA:");
  321.                 }
  322.                 if (X2 == 2 && Y2 == 1 && casa21y == false && casa21x == false) {
  323.                     matriz[2][1] = "O";
  324.                     casa21y = true;
  325.                     jogada2 = false;
  326.                 } else if (X2 == 2 && Y2 == 1 && (casa21y == true || casa21x == true)) {
  327.                     jogada2 = true;
  328.                     System.out.println("ESTA CASA JÁ ESTÁ OCUPADA, POR FAVOR INSIRA OUTRA CASA:");
  329.                 }
  330.                 if (X2 == 2 && Y2 == 2 && casa22y == false && casa22x == false) {
  331.                     matriz[2][2] = "O";
  332.                     casa22y = true;
  333.                     jogada2 = false;
  334.                 } else if (X2 == 2 && Y2 == 2 && (casa22y == true || casa22x == true)) {
  335.                     jogada2 = true;
  336.                     System.out.println("ESTA CASA JÁ ESTÁ OCUPADA, POR FAVOR INSIRA OUTRA CASA:");
  337.                 }
  338.  
  339.                 // imprime matriz atual... com jogada do jogador2
  340.                 for (int i = 0; i < matriz.length; i++) {
  341.                     for (int k = 0; k < matriz.length; k++) {
  342.                         System.out.print("[" + matriz[i][k] + "  ]");
  343.                     }// for 2
  344.                     System.out.println("");
  345.                 } // for1
  346.  
  347.             }// fecha while...
  348.  
  349.             if (casa00y && casa10y && casa20y == true) {
  350.                 vitoria = true;
  351.                 continuar = false; //para entrar no if de joga de novo
  352.                 System.out.println("JOGADOR O " + nome2 + " FEZ VELHA!!!");
  353.                 contaVitoriasY = contaVitoriasY + 1;
  354.             }
  355.             if (casa00y && casa01y && casa02y == true) {
  356.                 vitoria = true;
  357.                 continuar = false; //para entrar no if de joga de novo
  358.                 System.out.println("JOGADOR O " + nome2 + " FEZ VELHA!!!");
  359.                 contaVitoriasY = contaVitoriasY + 1;
  360.             }
  361.             if (casa02y && casa12y && casa22y == true) {
  362.                 vitoria = true;
  363.                 continuar = false; //para entrar no if de joga de novo
  364.                 System.out.println("JOGADOR O " + nome2 + " FEZ VELHA!!!");
  365.                 contaVitoriasY = contaVitoriasY + 1;
  366.             }
  367.             if (casa20y && casa21y && casa22y == true) {
  368.                 vitoria = true;
  369.                 continuar = false; //para entrar no if de joga de novo
  370.                 System.out.println("JOGADOR " + nome2 + " O FEZ VELHA!!!");
  371.                 contaVitoriasY = contaVitoriasY + 1;
  372.             }
  373.            
  374.             if (casa01y && casa11y && casa21y == true) {
  375.                 vitoria = true;
  376.                 continuar = false; //para entrar no if de joga de novo
  377.                 System.out.println("JOGADOR " + nome2 + " O FEZ VELHA!!!");
  378.                 contaVitoriasY = contaVitoriasY + 1;
  379.             }
  380.             if (casa10y && casa11y && casa12y == true) {
  381.                 vitoria = true;
  382.                 continuar = false; //para entrar no if de joga de novo
  383.                 System.out.println("JOGADOR " + nome2 + " O FEZ VELHA!!!");
  384.                 contaVitoriasY = contaVitoriasY + 1;
  385.             }
  386.             if (casa00y && casa11y && casa22y == true) {
  387.                 vitoria = true;
  388.                 continuar = false; //para entrar no if de joga de novo
  389.                 System.out.println("JOGADOR " + nome2 + " O FEZ VELHA!!!");
  390.                 contaVitoriasY = contaVitoriasY + 1;
  391.             }
  392.             if (casa20y && casa11y && casa02y == true) {
  393.                 vitoria = true;
  394.                 continuar = false; //para entrar no if de joga de novo
  395.                 System.out.println("JOGADOR " + nome2 + " O FEZ VELHA!!!");
  396.                 contaVitoriasY = contaVitoriasY + 1;
  397.             }
  398.            
  399.             contador = contador + 1;
  400.             if (contador == 9) {
  401.                 System.out.println("Houve empate (Y), todas as jogadas foram realizadas...");
  402.                 continuar = false; //para entrar no if de joga de novo
  403.                 contaEmpates = contaEmpates + 1;
  404.             }//if do empate
  405.  
  406.            
  407.            
  408.               //é preciso estes booleans para o jogador começar a jogar de novo, se for a hora de alternar de jogador.
  409.             //o programa só enxerga isto no fim , então começa com o jogador certo...
  410.             //antes do jogaDeNovo, pois lá é a alteração de jogador...
  411.               jogada1=true;
  412.             jogada2=true;
  413.             //se sair do while de vitoria, verifica nova jogada... 
  414.             if ((vitoria == true && continuar == false)) {
  415.                 //  System.out.println("vitoria"+vitoria);
  416.                 //  System.out.println("continuar"+continuar);
  417.                 jogaDeNovo();
  418.             }
  419.            
  420.          
  421.         }//whilevitoria                                          
  422.     }//construtor
  423.  
  424.     public static void main(String[] args) {
  425.         new JogoDaVelha();
  426.     }// public main
  427.  
  428.     public void vitorias() {
  429.     }
  430.    
  431.     public void jogaDeNovo() {
  432.         //mostra resultados
  433.         System.out.println("_____________________________________");
  434.         System.out.println("vitorias de jogador 1: " + nome1 + " = " + contaVitoriasX);
  435.         System.out.println("vitorias de jogador 2: " + nome2 + " = " + contaVitoriasY);
  436.         System.out.println("empates do jogo : " + contaEmpates);        
  437.         System.out.println("_____________________________________");
  438.  
  439.         //pergunta se joga de novo...
  440.         Scanner entrada5 = new Scanner(System.in);        
  441.         System.out.println("_____________________________________");
  442.         System.out.println("jogar de novo?  (S ou s)   ?");        
  443.         System.out.println("_____________________________________");
  444.         String jogaDeNovo = entrada5.next();
  445.         if (jogaDeNovo.equals("S") || jogaDeNovo.equals("s")) {
  446.             vitoria = false;
  447.             continuar = true;
  448.         } else {
  449.             continuar = false;
  450.         }
  451.          limpaMatriz();
  452.         //alterna jogadadores...
  453.       //   System.out.println("jogada1: (antes) "+jogada1);
  454.        //   if ((jogada1==false)) {jogada1=true;} else {jogada1=false;}//isso vai alternar os jogadores... 1 e 2...
  455.      
  456.          int contaTodasJogadas=contaEmpates+contaVitoriasX+contaVitoriasY;
  457.          if ((contaTodasJogadas%2==0)) {jogada1=true;jogada2=true; }  else {jogada1=false;jogada2=true;}    
  458.        
  459.     }
  460.    
  461.     public void limpaMatriz() {
  462.         casa00x = false;
  463.         casa01x = false;
  464.         casa02x = false;
  465.        
  466.         casa10x = false;
  467.         casa11x = false;
  468.         casa12x = false;
  469.        
  470.         casa20x = false;
  471.         casa21x = false;
  472.         casa22x = false;
  473.        
  474.         casa00y = false;
  475.         casa01y = false;
  476.         casa02y = false;
  477.        
  478.         casa10y = false;
  479.         casa11y = false;
  480.         casa12y = false;
  481.        
  482.         casa20y = false;
  483.         casa21y = false;
  484.         casa22y = false;
  485.         // resetavalores
  486.         for (int i = 0; i < matriz.length; i++) {
  487.             for (int k = 0; k < matriz.length; k++) {
  488.                 matriz[i][k] = " ";
  489.             }// for 2
  490.             System.out.println("");
  491.         }
  492.         contador = 0;
  493.        
  494.      
  495.            
  496.        
  497.        
  498.        
  499.     }
  500. }
Advertisement
Add Comment
Please, Sign In to add comment