Ajuda com condição de velha em java

preciso fazer um jogo da velha mas estou empacando na velha, como posso fazer?

import java.util.Scanner;
import java.util.Random;
public class velha{
public static void main(String[] args) {

    Scanner input = new Scanner(System.in);//Scanner
    //BOOLEANOS
    boolean jogador1 = true;
    boolean jogador2 = false;
    boolean ocupado[] = {false,false,false,false,false,false,false,false,false};
    boolean victory = false;
    boolean velha = false;

    char tabuleiro[] = {'1','2','3','4','5','6','7','8','9'};//Vetor para o tabuleiro

    //INTEIROS
    int x;
    int velhas=0;
    int vitorias1=0;
    int vitorias2=0;
    int games=0;
    int a;
    int b;
    int dado;

    //STRINGS
    String nomej1;
    String nomej2;
    String continuar;

      //IDENTIFICAÇÃO DE JOGADORES
      System.out.println("Qual eh o nome do primeiro jogador?");
      nomej1 = input.nextLine();
      System.out.println("E qual o nome do segundo?");
      nomej2 = input.nextLine();

      //Sorteio de quem vai ser o X e o O
      System.out.println("=====================================");
      System.out.println("Vamos sortear quem sera o X");
      System.out.print(nomej1);
      System.out.println(" digite o numero 1 ou o numero 2");
      System.out.println("====================================");
      a = input.nextInt();

      //CASO O NUMERO DIGITADO NÃO FOR 1 E 2
      if ( (a < 1) || (a > 2) ){
      System.out.println("====================================");
      System.out.println("Numero invalido, tem que ser 1 ou 2.");
      return;
      //"DADO" COM APENAS 2 LADOS PARA SORTEAR
    }else{
          Random rand = new Random();
          dado = rand.nextInt((2 - 1) + 1) + 1;
    }
      //DECLARAÇÃO DE QUEM EH O X E O O
    if(a == dado ){
      System.out.println("====================================");
      System.out.print(nomej1);
      System.out.println(" Sera o X");
      System.out.println("====================================");
      System.out.print(nomej2);
      System.out.println(" Sera o O");
    }else{
      System.out.println("====================================");
      System.out.print(nomej2);
      System.out.println(" Sera o X");
      System.out.println("====================================");
      System.out.print(nomej1);
      System.out.println(" Sera o O");
    }
    while (true){//INICIO DA ESTRUTURA DE REPETIÇÃO WHILE
        //MOSTRAR QUEM JOGA
        if (jogador1==true){
          System.out.println("=======================");
            System.out.println("Vez do jogador 1 (X)");
        }else{
            System.out.println("=====================");
            System.out.println("Vez do jogador 2 (O)");
        }
        //TABULEIRO
        System.out.println("=======================");
        System.out.println("  " + tabuleiro[0] + "|" + tabuleiro[1] + "|" + tabuleiro[2]);
        System.out.println("  " + tabuleiro[3] + "|" + tabuleiro[4] + "|" + tabuleiro[5]);
        System.out.println("  " + tabuleiro[6] + "|" + tabuleiro[7] + "|" + tabuleiro[8]);
        System.out.println("=====================");

        System.out.print("Escolha a casa para jogar: ");
        x = input.nextInt();

        //INICIO DAS CONDIÇOES DA CASA 1
        if (x==1){//SE A CASA 1 FOR SELECIONADA
            if (jogador1==true){//SE FOR VEZ DO JOGADOR1
                if (ocupado[0]==false){//SE A CASA NÃO ESTIVER OCUPADA
                    ocupado[0]=true;//A CASA VIRA OCUPADA
                    tabuleiro[0]='X';//VARIAVEL DO TABULEIRO VIRA X
                    jogador1=false;//JOGADOR 1 PASSA A VEZ
                    jogador2=true;//COMEÇA A VEZ DO JOGADOR 2
                }else{
                    System.out.println("Essa casa esta ocupada, escolha outra.");//CASO A CASA ESTEJA OCUPADA
                }
            }else{
                if (ocupado[0]==false){//MESMAS CONDIÇÕES QUE ACIMA MAS COM O O
                    ocupado[0]=true;
                    tabuleiro[0]='O';
                    jogador1=true;
                    jogador2=false;
                }else{
                    System.out.println("=====================");
                    System.out.println("Essa casa esta ocupada, escolha outra.");
                    System.out.println("=====================");
                }
            }
        }//FIM DAS CONDIÇOES DA CASA 1

        //INICIO DAS CONDIÇOES DA CASA 2
        if (x==2){//SE A CASA 1 FOR SELECIONADA
            if (jogador1==true){//SE FOR VEZ DO JOGADOR 1
                if (ocupado[1]==false){//SE A CASA NAO ESTIVER OCUPADA
                    ocupado[1]=true;//A CASA VIRA OCUPADA
                    tabuleiro[1]='X';//VARIAVEL DO TABULEIRO VIRA X
                    jogador1=false;//JOGADOR 1 PASSA A VEZ
                    jogador2=true;//COMECA A VEZ DO JOGADOR 2
                }else{
                    System.out.println("Essa casa esta ocupada, escolha outra.");//CASO A CASA ESTEJA OCUPADA
                }
            }else{
                if (ocupado[1]==false){//MESMAS CONDIÇOES QUE ACIMA COM O O
                    ocupado[1]=true;
                    tabuleiro[1]='O';
                    jogador1=true;
                    jogador2=false;
                }else{
                  System.out.println("=====================");
                  System.out.println("Essa casa esta ocupada, escolha outra.");
                  System.out.println("=====================");
                }
            }
        }//FIM DAS CONDICOES DA CASA 2

        //INICIO DAS CONDICOES DA CASA 3
        if (x==3){//SE A CASA 3 FOR SELECIONADA
            if (jogador1==true){//SE FOR VEZ DO JOGADOR 1
                if (ocupado[2]==false){//SE A CASA NÃO ESTIVER OCUPADA
                    ocupado[2]=true;//A CASA VIRA OCUPADA
                    tabuleiro[2]='X';//VARIAVEL DO TABULEIRO VIRA X
                    jogador1=false;//JOGADOR 1 PASSA A VEZ
                    jogador2=true;//COMEÇA A VEZ DO JOGADOR 2
                }else{
                    System.out.println("Essa casa esta ocupada, escolha outra.");//CASO A CASA ESTEJA OCUPADA
                }
            }else{
                if (ocupado[2]==false){//MESMAS CONDIÇÕES QUE ACIMA MAS COM O O
                    ocupado[2]=true;
                    tabuleiro[2]='O';
                    jogador1=true;
                    jogador2=false;
                }else{
                    System.out.println("=====================");
                    System.out.println("Essa casa esta ocupada, escolha outra.");
                    System.out.println("=====================");
                }
            }
        }//FIM DAS CONDIÇOES DA CASA 3

        //INICIO DAS CONDIÇOES DA CASA 4
        if (x==4){//SE A CASA 4 FOR SELECIONADA
            if (jogador1==true){//SE FOR VEZ DO JOGADOR 1
                if (ocupado[3]==false){//SE A CASA NÃO ESTIVER OCUPADA
                    ocupado[3]=true;//A CASA VIRA OCUPADA
                    tabuleiro[3]='X';//VARIAVEL DO TABULEIRO VIRA X
                    jogador1=false;//JOGADOR 1 PASSA A VEZ
                    jogador2=true;//COMEÇA A VEZ DO JOGADOR 2
                }else{
                    System.out.println("Essa casa esta ocupada, escolha outra.");//CASO A CASA ESTEJA OCUPADA
                }
            }else{
                if (ocupado[3]==false){//MESMAS CONDIÇOES QUE ACIMA MAS COM O O
                    ocupado[3]=true;
                    tabuleiro[3]='O';
                    jogador1=true;
                    jogador2=false;
                }else{
                    System.out.println("=====================");
                    System.out.println("Essa casa esta ocupada, escolha outra.");
                    System.out.println("=====================");
                }
            }
        }//FIM DAS CONDIÇOES DA CASA 4

        //INICIO DAS CONDIÇOES DA CASA 5
        if (x==5){//SE A CASA 5 FOR SELECIONADA
           if (jogador1==true){//SE FOR VEZ DO JOGADOR 1
               if (ocupado[4]==false){//SE A CASA NÃO ESTIVER OCUPADA
                   ocupado[4]=true;//A CASA VIRA OCUPADA
                   tabuleiro[4]='X';//VARIAVEL DO TABULEIRO VIRA X
                   jogador1=false;//JOGADOR 1 PASSA A VEZ
                   jogador2=true;//COMEÇA A VEZ DO JOGADOR 2
               }else{
                   System.out.println("Essa casa esta ocupada, escolha outra.");//CASO A CASA ESTEJA OCUPADA
               }
           }else{
               if (ocupado[4]==false){//MESMAS CONDIÇOES QUE ACIMA MAS COM O O
                   ocupado[4]=true;
                   tabuleiro[4]='O';
                   jogador1=true;
                   jogador2=false;
               }else{
                 System.out.println("=====================");
                 System.out.println("Essa casa esta ocupada, escolha outra.");
                 System.out.println("=====================");
               }
           }
        }//FIM DAS CONDIÇOES DA CASA 5

        //INICIO DAS CONDIÇOES DA CASA 6
         if (x==6){//SE A CASA 6 FOR SELECIONADA
            if (jogador1==true){//SE FOR VEZ DO JOGADOR 1
                if (ocupado[5]==false){//SE A CASA NÃO ESTIVER OCUPADA
                    ocupado[5]=true;//A CASA VIRA OCUPADA
                    tabuleiro[5]='X';//VARIAVEL DO TABULEIRO VIRA X
                    jogador1=false;//JOGADOR 1 PASSA A VEZ
                    jogador2=true;//COMEÇA A VEZ DO JOGADOR 2
                }else{
                    System.out.println("Essa casa esta ocupada, escolha outra.");//CASO A CASA ESTEJA OCUPADA
                }
            }else{
                if (ocupado[5]==false){//MESMAS CONDIÇOES QUE ACIMA MAS COM O O
                    ocupado[5]=true;
                    tabuleiro[5]='O';
                    jogador1=true;
                    jogador2=false;
                }else{
                    System.out.println("=====================");
                    System.out.println("Essa casa esta ocupada, escolha outra");
                    System.out.println("=====================");
                }
            }
        }//FIM DAS CONDIÇOES DA CASA 6

        //INICIO DAS CONDIÇOES DA CASA 7
        if (x==7){//SE A CASA 7 FOR SELECIONADA
            if (jogador1==true){//SE FOR VEZ DO JOGADOR 1
                if (ocupado[6]==false){//SE A CASA NAO ESTIVER OCUPADA
                    ocupado[6]=true;//A CASA VIRA OCUPADA
                    tabuleiro[6]='X';//VARIAVEL DO TABULEIRO VIRA X
                    jogador1=false;//JOGADOR 1 PASSA A VEZ
                    jogador2=true;//COMEÇA A VEZ DO JOGADOR 2
                }else{
                    System.out.println("Essa casa esta ocupada, escolha outra.");//CASO A CASA ESTEJA OCUPADA
                }
            }else{
                if (ocupado[6]==false){//MESMAS CONDIÇOES QUE ACIMA MAS COM O O
                    ocupado[6]=true;
                    tabuleiro[6]='O';
                    jogador1=true;
                    jogador2=false;
                }else{
                    System.out.println("=====================");
                    System.out.println("Essa casa esta ocupada, escolha outra.");
                    System.out.println("=====================");
                }
            }
        }//FIM DAS CONDIÇOES DA CASA 7

        //INICIO DAS CONDICOES DA CASA 8
        if (x==8){//SE A CASA 8 FOR SELECIONADA
            if (jogador1==true){//SE FOR VEZ DO JOGADOR 1
                if (ocupado[7]==false){//SE A CASA NAO ESTIVER OCUPADA
                    ocupado[7]=true;//A CASA VIRA OCUPADA
                    tabuleiro[7]='X';//VARIAVEL DO TABULEIRO VIRA X
                    jogador1=false;//JOGADOR 1 PASSA A VEZ
                    jogador2=true;//COMEÇA A VEZ DO JOGADOR 2
                }else{
                    System.out.println("Essa casa esta ocupada, escolha outra");//CASO A CASA ESTEJA OCUPADA
                }
            }else{
                if (ocupado[7]==false){//MESMAS CONDIÇOES QUE ACIMA MAS COM O O
                    ocupado[7]=true;
                    tabuleiro[7]='O';
                    jogador1=true;
                    jogador2=false;
                }else{
                    System.out.println("=====================");
                    System.out.println("Essa casa esta ocupada, escolha outra.");
                    System.out.println("=====================");
                }
            }
        }//FIM DAS CONDICOES DA CASA 8

        //INICIO DAS CONDIÇOES DA CASA 9
        if (x==9){//SE A CASA 9 FOR SELECIONADA
            if (jogador1==true){//SE FOR VEZ DO JOGADOR 1
                if (ocupado[8]==false){//SE A CASA NAO ESTIVER OCUPADA
                    ocupado[8]=true;//A CASA VIRA OCUPADA
                    tabuleiro[8]='X';//VARIAVEL DO TABULEIRO VIRA X
                    jogador1=false;//JOGADOR 1 PASSA A VEZ
                    jogador2=true;//COMEÇA A VEZ DO JOGADOR 2
                }else{
                    System.out.println("Essa casa esta ocupada, escolha outra.");//CASO A CASA ESTEJA OCUPADA
                }
            }else{
                if (ocupado[8]==false){//MESMAS CONDIÇOES QUE ACIMA MAS COM O O
                    ocupado[8]=true;
                    tabuleiro[8]='O';
                    jogador1=true;
                    jogador2=false;
                }else{
                    System.out.println("=====================");
                    System.out.println("Essa casa esta ocupada, escolha outra");
                    System.out.println("=====================");
                }
            }
        }//FIM DAS CONDIÇOES DA CASA 9

        //FIM DAS CONDIÇOES DE SELEÇOES DE CASAS NO TABULEIRO

        //INICIO DAS CONDIÇOES DE VITORIA

        if (tabuleiro[0] == 'X' && tabuleiro[1] == 'X' && tabuleiro[2] == 'X'){ //SE A LINHA 1 HORIZONTAL FOR FEITA POR X
            vitorias1++;
            victory = true;
            games++;
            System.out.println("  " + tabuleiro[0] + "|" + tabuleiro[1] + "|" + tabuleiro[2]);
            System.out.println("  " + tabuleiro[3] + "|" + tabuleiro[4] + "|" + tabuleiro[5]);
            System.out.println("  " + tabuleiro[6] + "|" + tabuleiro[7] + "|" + tabuleiro[8]);
            System.out.println("" + nomej1 + " VENCEU O JOGO!");
        }else if (tabuleiro[3] == 'X' && tabuleiro[4] == 'X' && tabuleiro[5] == 'X'){//SE A LINHA 2 NA HORIZONTAL FOR FEITA POR X
            vitorias1++;
            victory = true;
            games++;
            System.out.println("  " + tabuleiro[0] + "|" + tabuleiro[1] + "|" + tabuleiro[2]);
            System.out.println("  " + tabuleiro[3] + "|" + tabuleiro[4] + "|" + tabuleiro[5]);
            System.out.println("  " + tabuleiro[6] + "|" + tabuleiro[7] + "|" + tabuleiro[8]);
            System.out.println("" + nomej1 + " VENCEU O JOGO!");
        }else if (tabuleiro[6] == 'X' && tabuleiro[7] == 'X' && tabuleiro[8] == 'X'){//SE A LINHA 3 NA HORIZONTAL FOR FEITA POR X
            vitorias1++;
            victory = true;
            games++;
            System.out.println("  " + tabuleiro[0] + "|" + tabuleiro[1] + "|" + tabuleiro[2]);
            System.out.println("  " + tabuleiro[3] + "|" + tabuleiro[4] + "|" + tabuleiro[5]);
            System.out.println("  " + tabuleiro[6] + "|" + tabuleiro[7] + "|" + tabuleiro[8]);
            System.out.println("" + nomej1 + " VENCEU O JOGO!");
        }else if (tabuleiro[0] == 'X' && tabuleiro[3] == 'X' && tabuleiro[6] == 'X'){//SE A LINHA 1 NA VERTICAL FOR FEITA POR X
            vitorias1++;
            victory = true;
            games++;
            System.out.println("  " + tabuleiro[0] + "|" + tabuleiro[1] + "|" + tabuleiro[2]);
            System.out.println("  " + tabuleiro[3] + "|" + tabuleiro[4] + "|" + tabuleiro[5]);
            System.out.println("  " + tabuleiro[6] + "|" + tabuleiro[7] + "|" + tabuleiro[8]);
            System.out.println("" + nomej1 + " VENCEU O JOGO!");
        }else if (tabuleiro[1] == 'X' && tabuleiro[4] == 'X' && tabuleiro[7] == 'X'){//SE A LINHA 2 NA VERTICAL FOR FEITA POR X
            vitorias1++;
            victory = true;
            games++;
            System.out.println("  " + tabuleiro[0] + "|" + tabuleiro[1] + "|" + tabuleiro[2]);
            System.out.println("  " + tabuleiro[3] + "|" + tabuleiro[4] + "|" + tabuleiro[5]);
            System.out.println("  " + tabuleiro[6] + "|" + tabuleiro[7] + "|" + tabuleiro[8]);
            System.out.println("" + nomej1 + " VENCEU O JOGO!");
        }else if (tabuleiro[2] == 'X' && tabuleiro[5] == 'X' && tabuleiro[8] == 'X'){//SE A LINHA 3 NA VERTICAL FOR FEITA POR X
            vitorias1++;
            victory = true;
            games++;
            System.out.println("  " + tabuleiro[0] + "|" + tabuleiro[1] + "|" + tabuleiro[2]);
            System.out.println("  " + tabuleiro[3] + "|" + tabuleiro[4] + "|" + tabuleiro[5]);
            System.out.println("  " + tabuleiro[6] + "|" + tabuleiro[7] + "|" + tabuleiro[8]);
            System.out.println("" + nomej1 + " VENCEU O JOGO!");
        }else if (tabuleiro[0] == 'X' && tabuleiro[4] == 'X' && tabuleiro[8] == 'X'){//SE A DIAGONAL DA ESQUERDA PARA A DIREITA FOR FEITA POR X
            vitorias1++;
            victory = true;
            games++;
            System.out.println("  " + tabuleiro[0] + "|" + tabuleiro[1] + "|" + tabuleiro[2]);
            System.out.println("  " + tabuleiro[3] + "|" + tabuleiro[4] + "|" + tabuleiro[5]);
            System.out.println("  " + tabuleiro[6] + "|" + tabuleiro[7] + "|" + tabuleiro[8]);
            System.out.println("" + nomej1 + " VENCEU O JOGO!");
        }else if (tabuleiro[2] == 'X' && tabuleiro[4] == 'X' && tabuleiro[6] == 'X'){//SE A DIAGONAL DA DIREITA PARA A ESQUERDA FOR FEITA POR X
            vitorias1++;
            victory = true;
            games++;
            System.out.println("  " + tabuleiro[0] + "|" + tabuleiro[1] + "|" + tabuleiro[2]);
            System.out.println("  " + tabuleiro[3] + "|" + tabuleiro[4] + "|" + tabuleiro[5]);
            System.out.println("  " + tabuleiro[6] + "|" + tabuleiro[7] + "|" + tabuleiro[8]);
            System.out.println("" + nomej1 + " VENCEU O JOGO!");

        }else if (tabuleiro[0] == 'O' && tabuleiro[1] == 'O' && tabuleiro[2] == 'O'){//SE A LINHA 1 NA HORIZONTAL FOR FEITA POR O
            vitorias2++;
            victory = true;
            games++;
            System.out.println("  " + tabuleiro[0] + "|" + tabuleiro[1] + "|" + tabuleiro[2]);
            System.out.println("  " + tabuleiro[3] + "|" + tabuleiro[4] + "|" + tabuleiro[5]);
            System.out.println("  " + tabuleiro[6] + "|" + tabuleiro[7] + "|" + tabuleiro[8]);
            System.out.println("" + nomej2 + " VENCEU O JOGO!");
        }else if (tabuleiro[3] == 'O' && tabuleiro[4] == 'O' && tabuleiro[5] == 'O'){//SE A LINHA 2 NA HORIZONTAL FOR FEITA POR O
            vitorias2++;
            victory = true;
            games++;
            System.out.println("  " + tabuleiro[0] + "|" + tabuleiro[1] + "|" + tabuleiro[2]);
            System.out.println("  " + tabuleiro[3] + "|" + tabuleiro[4] + "|" + tabuleiro[5]);
            System.out.println("  " + tabuleiro[6] + "|" + tabuleiro[7] + "|" + tabuleiro[8]);
            System.out.println("" + nomej2 + " VENCEU O JOGO!");
        }else if (tabuleiro[6] == 'O' && tabuleiro[7] == 'O' && tabuleiro[8] == 'O'){//SE A LINHA 3 NA HORIZONTAL FOR FEITA POR O
            vitorias2++;
            victory = true;
            games++;
            System.out.println("  " + tabuleiro[0] + "|" + tabuleiro[1] + "|" + tabuleiro[2]);
            System.out.println("  " + tabuleiro[3] + "|" + tabuleiro[4] + "|" + tabuleiro[5]);
            System.out.println("  " + tabuleiro[6] + "|" + tabuleiro[7] + "|" + tabuleiro[8]);
            System.out.println("" + nomej2 + " VENCEU O JOGO!");
        }else if (tabuleiro[0] == 'O' && tabuleiro[3] == 'O' && tabuleiro[6] == 'O'){//SE A LINHA 1 NA VERTICAL FOR FEITA POR O
            vitorias1++;
            victory = true;
            games++;
            System.out.println("  " + tabuleiro[0] + "|" + tabuleiro[1] + "|" + tabuleiro[2]);
            System.out.println("  " + tabuleiro[3] + "|" + tabuleiro[4] + "|" + tabuleiro[5]);
            System.out.println("  " + tabuleiro[6] + "|" + tabuleiro[7] + "|" + tabuleiro[8]);
            System.out.println("" + nomej2 + " VENCEU O JOGO!");
        }else if (tabuleiro[1] == 'O' && tabuleiro[4] == 'O' && tabuleiro[7] == 'O'){//SE A LINHA 2 NA VERTICAL FOR FEITA POR O
            vitorias1++;
            victory = true;
            games++;
            System.out.println("  " + tabuleiro[0] + "|" + tabuleiro[1] + "|" + tabuleiro[2]);
            System.out.println("  " + tabuleiro[3] + "|" + tabuleiro[4] + "|" + tabuleiro[5]);
            System.out.println("  " + tabuleiro[6] + "|" + tabuleiro[7] + "|" + tabuleiro[8]);
            System.out.println("" + nomej2 + " VENCEU O JOGO!");
        }else if (tabuleiro[2] == 'O' && tabuleiro[5] == 'O' && tabuleiro[8] == 'O'){//SE A LINHA 3 NA VERTICAL FOR FEITA POR O
            vitorias1++;
            victory = true;
            games++;
            System.out.println("  " + tabuleiro[0] + "|" + tabuleiro[1] + "|" + tabuleiro[2]);
            System.out.println("  " + tabuleiro[3] + "|" + tabuleiro[4] + "|" + tabuleiro[5]);
            System.out.println("  " + tabuleiro[6] + "|" + tabuleiro[7] + "|" + tabuleiro[8]);
            System.out.println("" + nomej2 + " VENCEU O JOGO!");
        }else if (tabuleiro[0] == 'O' && tabuleiro[4] == 'O' && tabuleiro[8] == 'O'){//SE A DIAGONAL DA ESQUERDA PARA A DIREITA FOR FEITA POR O
            vitorias2++;
            victory = true;
            games++;
            System.out.println("  " + tabuleiro[0] + "|" + tabuleiro[1] + "|" + tabuleiro[2]);
            System.out.println("  " + tabuleiro[3] + "|" + tabuleiro[4] + "|" + tabuleiro[5]);
            System.out.println("  " + tabuleiro[6] + "|" + tabuleiro[7] + "|" + tabuleiro[8]);
            System.out.println("" + nomej2 + " VENCEU O JOGO!");
        }else if (tabuleiro[2] == 'O' && tabuleiro[4] == 'O' && tabuleiro[6] == 'O'){//SE A DIAGONAL DA DIREITA PARA A ESQUERDA FOI FEITA POR O
            vitorias2++;
            victory = true;
            games++;
            System.out.println("  " + tabuleiro[0] + "|" + tabuleiro[1] + "|" + tabuleiro[2]);
            System.out.println("  " + tabuleiro[3] + "|" + tabuleiro[4] + "|" + tabuleiro[5]);
            System.out.println("  " + tabuleiro[6] + "|" + tabul.eiro[7] + "|" + tabuleiro[8]);
            System.out.println("" + nomej2 + " VENCEU O JOGO!"); 
  //FIM DAS CONDIÇOES DE VITORIA
if (victory==true){
    games++;
    System.out.print("Quer continuar?[S/N] ");
    continuar = input.next();

    if ("S".equals(continuar)||"s".equals(continuar)){//SE A RESPOSTA FOR SIM
        victory = false;

        jogador1 = true;//VEZ DOS JOGADORES RESETAM
        jogador2 = false;

        tabuleiro[0] = '1';//LIMPANDO O TABULEIRO
        tabuleiro[1] = '2';
        tabuleiro[2] = '3';
        tabuleiro[3] = '4';
        tabuleiro[4] = '5';
        tabuleiro[5] = '6';
        tabuleiro[6] = '7';
        tabuleiro[7] = '8';
        tabuleiro[8] = '9';

        ocupado[0] = false;//DESOCUPAR CASAS
        ocupado[1] = false;
        ocupado[2] = false;
        ocupado[3] = false;
        ocupado[4] = false;
        ocupado[5] = false;
        ocupado[6] = false;
        ocupado[7] = false;
        ocupado[8] = false;
    }else if("N".equals(continuar)||"n".equals(continuar)){//SE A RESPOSTA FOR NAO
        break;
    }
}

}//FIM DA ESTRUTURA DE REPETIÇAO

    //MOSTRAR COMO SE ENCERROU O JOGO
    System.out.println("  " + tabuleiro[0] + "|" + tabuleiro[1] + "|" + tabuleiro[2]);
    System.out.println("  " + tabuleiro[3] + "|" + tabuleiro[4] + "|" + tabuleiro[5]);
    System.out.println("  " + tabuleiro[6] + "|" + tabuleiro[7] + "|" + tabuleiro[8]);
    System.out.print("Numero de vitorias de X = ");
    System.out.println(+vitorias1);
    System.out.print("Numero de vitorias de O = ");
    System.out.println(+vitorias2);
    System.out.print("Durante o jogo aconteceu = ");
    System.out.print(+velhas);
    System.out.println(" velhas");

}

}

Velha, que você diz, é para identificar quem vence?
Se for isso, você tem que lembrar que existem combinações específicas para declarar um ganhador:

  • Repetição de mesmo elemento em uma linha: Ou seja, se todas as posições em ((0, 0), (0, 1), (0,2)) ou em ((1,0), (1, 1), (1,2)) ou em ((2, 0), (2, 1), (2, 2)) estarem marcadas pelo mesmo elemento (X ou O)
  • Repetição de mesmo elemento em uma coluna: Ou seja, se todas as posições em ((0, 0), (1, 0), (2,0)) ou em ((0, 1), (1, 1), (2, 1)) ou em ((0, 2), (1, 2), (2, 2)) estarem marcadas pelo mesmo elemento (X ou O)
  • Repetição de mesmo elemento em uma diagonal: Ou seja, se todas as posições em ((0, 0), (1, 1), (2, 2)) ou em ((0, 2), (1, 1), (2, 0))

Não existe nenhuma outra alternativa para que um jogador vença.