Posta aí o que você já fez até agora, e qual sua dúvida específica.
B
brenda30
Eu fiz esse código, mas não atende a nenhum dos requisitos pedidos. Preciso de ajuda principalmente para ler o tamanho da matriz, pois da: "error: cannot find symbol" quando tento colocar a variável “tam” dentro do If.
publicstaticvoidmain(String[]args){Scannerler=newScanner(System.in);System.out.println(" Insira um valor correspondente ao tamanho da matriz");inttam=ler.nextInt();inttentativas=0;int[][]TamTabuleiro=newint[tam][tam];int[][]num_navios=newint[3][2];int[]tiro=newint[2];intacertos=0;inicializaTabuleiro(TamTabuleiro);iniciaNavios(num_navios);System.out.println();do{mostraTabuleiro(TamTabuleiro);darTiro(tiro);tentativas++;if(acertou(tiro,num_navios)){dica(tiro,num_navios,tentativas);acertos++;}elsedica(tiro,num_navios,tentativas);alteraTabuleiro(tiro,num_navios,TamTabuleiro);}while(acertos!=3);System.out.println("\n\n\nJogo terminado. Você acertou os 3 navios em "+tentativas+" tentativas");mostraTabuleiro(TamTabuleiro);}publicstaticvoidinicializaTabuleiro(int[][]tabuleiro){for(intlinha=0;linha<5;linha++)for(intcoluna=0;coluna<5;coluna++)tabuleiro[linha][coluna]=-1;}publicstaticvoidmostraTabuleiro(int[][]tabuleiro){System.out.println("\t1 \t2 \t3 \t4 \t5");System.out.println();for(intlinha=0;linha<5;linha++){System.out.print((linha+1)+"");for(intcoluna=0;coluna<5;coluna++){if(tabuleiro[linha][coluna]==-1){System.out.print("\t"+"~");}elseif(tabuleiro[linha][coluna]==0){System.out.print("\t"+"*");}elseif(tabuleiro[linha][coluna]==1){System.out.print("\t"+"X");}}System.out.println();}}publicstaticvoidiniciaNavios(int[][]navios){Randomsorteio=newRandom();for(intnavio=0;navio<3;navio++){navios[navio][0]=sorteio.nextInt(5);navios[navio][1]=sorteio.nextInt(5);//agora vamos checar se esse par não foi sorteado//se foi, so sai do do...while enquanto sortear um diferentefor(intanterior=0;anterior<navio;anterior++){if((navios[navio][0]==navios[anterior][0])&&(navios[navio][1]==navios[anterior][1]))do{navios[navio][0]=sorteio.nextInt(5);navios[navio][1]=sorteio.nextInt(5);}while((navios[navio][0]==navios[anterior][0])&&(navios[navio][1]==navios[anterior][1]));}}}publicstaticvoiddarTiro(int[]tiro){Scannerentrada=newScanner(System.in);System.out.print("Linha: ");tiro[0]=entrada.nextInt();tiro[0]--;System.out.print("Coluna: ");tiro[1]=entrada.nextInt();tiro[1]--;}publicstaticbooleanacertou(int[]tiro,int[][]navios){for(intnavio=0;navio<navios.length;navio++){if(tiro[0]==navios[navio][0]&&tiro[1]==navios[navio][1]){System.out.printf("Você acertou o tiro (%d,%d)\n",tiro[0]+1,tiro[1]+1);returntrue;}}returnfalse;}publicstaticvoiddica(int[]tiro,int[][]navios,inttentativa){intlinha=0,coluna=0;for(intfila=0;fila<navios.length;fila++){if(navios[fila][0]==tiro[0])linha++;if(navios[fila][1]==tiro[1])coluna++;}System.out.printf("\nDica %d: \nlinha %d -> %d navios\n"+"coluna %d -> %d navios\n",tentativa,tiro[0]+1,linha,tiro[1]+1,coluna);}publicstaticvoidalteraTabuleiro(int[]tiro,int[][]navios,int[][]tabuleiro){if(acertou(tiro,navios))tabuleiro[tiro[0]][tiro[1]]=1;elsetabuleiro[tiro[0]][tiro[1]]=0;}