Como aplicar o metodo random na minha batalha naval!

olá pessoal estou com problema de incorporar o metodo random na minha batalha naval!! como posso colocar.

o meu professor disse q eu teria que apagar tudo e fazer denovo,mas acho muito trabalho.por isso gostaria de saber se tem como colocar sem precisar apagar tudo!!

obrigado pela atenção!! :stuck_out_tongue: :roll:

package batalhanaval;

[code]import java.io.*;

public class Main{

public static String tabuleiro[][]= new String[8][8];//cria um tabuleiro 8x8//
public static int posicao[][] = new int[8][8];//posicoes dos barcos no tabuleiro//

  public static void zeraPosicao(){
  // do {
      for(int l=0;l<8;l++){//preenche as linhas com 0//
               for(int c=0;c<8;c++){//preenche as colunas com 0//
                    posicao[l][c] = 0;
                }
        }
  }



  //funcao que determina a Posicao dos submarinos no tabuleiro//
  public static void posicaoDosSubmarinos(){

	//SUBMARINO 1//
    posicao[1][2] = 1;


	//SUBMARINO 2//
    posicao [1][0] = 1;

	//SUBMARINO 3//
    posicao [6][7] = 1;

	//SUBMARINO 4//
    posicao [4][6] = 1;

	//SUBMARINO 5//
    posicao [3][1] = 1;
  }

  //funcao que define a Posicao dos distroyers no tabuleiro//
  public static void posicaoDosDistroyers(){

	//DISTROYER 1//
	posicao [0][6] = 3;
	posicao [0][7] = 3;

	//DISTROYER 2//
	posicao [3][6] = 3;
	posicao [3][7] = 3;

	//DISTROYER 3//
	posicao [5][0] = 3;
	posicao [5][1] = 3;

	//DISTROYER 4//
	posicao [4][2] = 3;
	posicao [4][3] = 3;
  }

  //funcao que define a Posicao dos cruzadores no tabuleiro//
  public static void posicaoDosCruzadores(){

	//CRUZADOR 1//
    posicao [5][3] = 5;
	posicao [5][4] = 5;
	posicao [5][5] = 5;

	//CRUZADOR 2//
    posicao[1][5] = 5;
	posicao[1][6] = 5;
	posicao[1][7] = 5;

	//CRUZADOR 3//
    posicao [2][4] = 5;
	posicao [2][5] = 5;
	posicao [2][6] = 5;
  }

  //funcao que define a Posicao dos navios no tabuleiro//
  public static void posicaoDosNavios(){

	//NAVIO 1//
	posicao[0][0] = 7;
	posicao[0][1] = 7;
	posicao[0][2] = 7;
	posicao[0][3] = 7;

    //NAVIO 2//
	posicao[6][2] = 7;
	posicao[6][3] = 7;
	posicao[6][4] = 7;
	posicao[6][5] = 7;
  }

  //funcao que define a Posicao do Porta Aviao no tabuleiro//
  public static void posicaoDoPortaAviao(){

	//PORTA AVIAO//
	posicao[7][3] = 9;
	posicao[7][4] = 9;
	posicao[7][5] = 9;
	posicao[7][6] = 9;
	posicao[7][7] = 9;
  }
  /*
  public static void imprimeMatrizdePosicao(){
    String saida="";
    for(int l=0;l<8;l++){//preenche as linhas com elementos de 0 a 7//
       System.out.println("\n");
       for(int c=0;c<8;c++){//preenche as colunas com elementos de 0 a 7//
          System.out.println(posicao[l][c]);
        }
    }
  }*/

  public static int lerLinha(){
      BufferedReader entrada = new BufferedReader (new InputStreamReader(System.in));
      int Linha=0;
      try {
            System.out.println("Informe a linha ");
            Linha=Integer.parseInt(entrada.readLine());
            if(Linha >=0 && Linha <=7){
                  return(Linha);
              }else{
                  System.out.println("Linha invalida!!!");
                  return(lerLinha());
              }
      } catch(Exception e){
             System.out.println("Linha invalida!!!");
             return(lerLinha());
      }
  }

  public static int lerColuna(){
            BufferedReader entrada = new BufferedReader (new InputStreamReader(System.in));
            int Coluna=0;
            //int acert=14;
            try {
              System.out.println("Informe a coluna ");
              Coluna=Integer.parseInt(entrada.readLine());
              if(Coluna >=0 && Coluna <=7){
                  return(Coluna);
              }else{
                  System.out.println("Coluna invalida!!!");
                  return(lerColuna());
              }
            } catch(Exception e){
                  System.out.println("Coluna invalida!!!");
                  return(lerColuna());
            }


    }

    public static void inicilizaMatriz(){
           for(int l=0;l<8;l++){//preenche as linhas com elementos de 0 a 7//
               for(int c=0;c<8;c++){//preenche as colunas com elementos de 0 a 7//
                    tabuleiro[l][c]=" ";
               }
           }
  }

   public static void imprimeTabuleiro(){
          System.out.println("    0   1   2   3   4   5   6   7"); //numero da coluna
          System.out.println("  _________________________________");
          for(int l=0;l<8;l++){//preenche as linhas com elementos de 0 a 7//
                System.out.print(l + " ");   //numero da linhas do lado do tabuleiro
               for(int c=0;c<8;c++){//preenche as colunas com elementos de 0 a 7//
                    System.out.print("| "+ tabuleiro[l][c]+" ");
               }
               System.out.println("|");
               System.out.println("  _________________________________");
           }
   }

   public static void verificaPosicao(int col,int lin){
          int escolha = posicao[lin][col];
          System.out.println(escolha);
          if( tabuleiro[lin][col] == " "){//se vc ainda n escolheu essa posicao
              switch(escolha){
                 case 0:
                       System.out.println("voce atirou na agua, tente novamente");
                       tabuleiro[lin][col] = "X";
                       break;
                 case 1:
                       System.out.println("voce acertou um submarino");
                       tabuleiro[lin][col] = "1";
                       break;
                 case 3:
                       System.out.println("voce acertou um distroyer");
                       tabuleiro[lin][col] = "3";
                       break;
                 case 5:
                       System.out.println("voce acertou um cruzador");
                       tabuleiro[lin][col] = "5";
                       break;
                 case 7:
                       System.out.println("voce acertou um navio");
                       tabuleiro[lin][col] = "7";
                       break;
                 case 9:
                       System.out.println("voce acertou um porta-avioes");
                       tabuleiro[lin][col] = "90";
                       break;
                }
          }
   }




   public static void main(String[] args) {
   int linha,coluna;

   //BufferedReader entrada;
   //entrada = new BufferedReader(new InputStreamReader(System.in));
   //METODOS QUE INICIALIZAM OS BARCOS//
   zeraPosicao();
   posicaoDosSubmarinos();
   posicaoDosDistroyers();
   posicaoDosCruzadores();
   posicaoDosNavios();
   posicaoDoPortaAviao();

   //METODOS QUE INICIALIZA AS MATRIZES//
   //imprimeMatrizdePosicao();
   inicilizaMatriz();
   imprimeTabuleiro();

   //METODOS QUE PEGAM A LINHA E COLUNA//
   do {
       linha = lerLinha();
       if (linha == 0) {
           System.exit(0);
       }
       coluna = lerColuna();
       verificaPosicao(coluna,linha);
       imprimeTabuleiro();

   } while (true);
    //System.out.println(linha + " " + coluna);

   }
 // }while (lerLinha == );
  }[/code]
  1. Vá até o seu primeiro post;
  2. Clique no botão Editar;
  3. Coloque o código entre as tags code:
Código aqui
  1. Note que existe o botão Code na barra, logo em cima de onde vc digita o texto. Basta selecionar o código e clicar nele.

Ola amigo, primeiramente, gostaria de pedir que editasse seu topico e coloca-se o codigo em java entre as tags CODE.

Isso ajuda e muito na hora de visualização.

Provavelmente ele pediu para voce criar tudo novamente pra voce exercitar (que na minha opiniao voce pode fazer mais exercicios ao inves de passar nervoso fazendo esse novamente) mas nao necessariamente voce precisaria criar tudo novamente. Sempre da-se um jeito.

Faz o que te pedi para ver o que podemos fazer.

Abraços

vc pode gerar os indices da matriz aleatoriamente assim

int randomLinha = 0 + (int)(Math.random() * numero_de_linhas-1); int randomColuna = 0 + (int)(Math.random() * numero_de_colunas-1);
ai soh colocar isso em algum metodo apropriado :smiley:

[quote=1 de abril]vc pode gerar os indices da matriz aleatoriamente assim

int randomLinha = 0 + (int)(Math.random() * numero_de_linhas-1); int randomColuna = 0 + (int)(Math.random() * numero_de_colunas-1);
ai soh colocar isso em algum metodo apropriado :smiley: [/quote]

Ou assim:

Random random = new Random(); int randomColuna = random.nextInt(tabuleiro.length); int randomLinhas = random.nextInt(tabuleiro[0].length);