Batalha naval

4 respostas
B

pessoal criei um joguinho batalha naval e preciso de ajuda.
Alguem sabe me indicar aonde está o erro e pq não está compilando.

import javax.swing.JOptionPane;

public class BatalhaNaval{

public static void main(string args[]){

int tabuleiro[][]=new int[8][8];//cria um tabuleiro  8x8//

BufferedeReader entrada=new BufferedeReader(new

inputStreamReader(System.in()));

posSub();

posD();

posCruz();

posNav();

posPort();

imprimeMatrizdePosicao();

int tabuleiro[][]=new int[8][8];//cria um tabuleiro  8x8//

for (;;){

int l=LerLinha();

int c=LerColuna();

x=x+1;

}

public static int iniciliza matriz(inicMatriz);{

for(int l=0;l&lt8;l++){//preenche as linhas com elementos de 0 a 7//

for(int c=0;c&lt8;c++){//preenche as colunas com elementos de 0 a 7//

tabuleiro[l][c]=0;

}

}

}

//funcao que determina a Posicao dos submarinos no tabuleiro//

public static int posicaodosSubmarinos(int posSub);{

int PosicaoA  [0][0]=1;//Submarino1//

int Posicao [0][2]=1;//Submarino2//

int PosicaoC[0][4]=1;//Submarino3//

int PosicaoD [0][6]=1;//Submarino4//

}
//funcao que define a Posicao dos distroyers no tabuleiro//
  public static int posicaoDosDistroyers(int posD){
        int PosicaoA [5][0]=5;//Distroyer1//
     int PosicaoB[4][0]=5;//1Distroye2//
     int PosicaoC[4][2]=5;//Distroyer3//
    int PosicaoD [4][4]=5;//Distroyer4//
  }
        //funcao que define a Posicao dos cruzadores no tabuleiro//
  public static int posicaoDosCruzadores(int posCruz);
      int PosicaoA [2][0]=9;//Cruzador1//
       int PosicaoB[2][2]=9;//Cruzador2//
      int PosicaoC [2][4]=9;//Cruzador3//
  }
         //funcao que define a Posicao dos navios no tabuleiro//
  public static int posicaoDosNavios(int posNav);{
        int PosicaoA[6][0]=10;//Navio1//
        int PosicaoB[6][2]=11;//Navio2//
  }
  public static int posicaoDoPortaAviao(int posPort);{
     //posicao do porta-avioes//
          int PosicaoA[7][0]=30;//PortaAvioes//
  }
  public static int imprimeMatrizdePosicao();{
    String saida="";
    for(int l=0;l&lt8;l++){//preenche as linhas com elementos de 0 a 7//
       for(int c=0;c&lt8;c++){//preenche as colunas com elementos de 0 a
7//

System.out.println(tabuleiro[l][c]+"\n");

}
public static int LerLinha(){
            BufferedReader entrada = new BufferedReader (new
InputStreamReader(System.in));

int Linha=0;

try {
System.out.println(JOptionPane.ShowInputDialog("Informe a linha "));

Linha=Integer.parseInt(entrada.readLine());

} catch(Exception e){}
return(Linha);
            }

   public static int LerColuna(){
            BufferedReader entrada = new BufferedReader (new
InputStreamReader(System.in));

int Coluna=0;

int acert=14;

try {
System.out.println(JOptionPane.ShowInputDialog("Informe a coluna "));

Coluna=Integer.parseInt(entrada.readLine());

} catch(Exception e){}
return(Coluna);
            }
	  if (l==0&&c%2==0){
	     System.outprintln("voce acertou um submarino");
	  }   acerto--;
	    if(l==4&&c%2==0){
	       System.outprintln("voce acertou um distroyer");
	        acerto--;
	    }
	      if(l==2&&c%2==0)
	        System.outprintln("voce acertou um cruzador");
	         acerto--;
	      }
	         if(l==6&&c%2==0)
	           System.outprintln("voce acertou um navio");
	            acerto--;
	         }
	           if(l==7&&c%2==0)
	             System.outprintln("voce acertou um porta-avioes");
	              acerto--;
                       }else{
    System.out.println("voce atirou na agua, tente novamente");

 }

}

4 Respostas

Deh

E poderia mostrar qual é o erro aparece quando você tenta compilar?

edit:
ahn… eu tentei compilar o teu programa… e nossa tem muito erro de sintaxe!

System.outprintln() == System.out.println();

BufferedeReader == BufferedReader

public static void main(string args[]){ == public static void main(String args[]) {

public static int iniciliza matriz(inicMatriz);{ --> não pode ter espaço no nome do método, e como argumento você tem que declarar um… deveria ser
public static int inicializeMatrix(int inicMatriz) { } e não tem aquele “;”

int PosicaoA [0][0]=1;//Submarino1// <-- nessa parte… porque você esta declarando outro “int” ? você deveria usar aquela matrix 8x8 que você criou no inicio =]

Você também esqueceu de fazer alguns “import”

ViniGodoy

Sempre que for postar códigos, use a tag code! Dê uma lida nesse artigo que te mostrará esse e outros recursos do fórum.

Nossa… tem realmente muitos erros no seu código. Baixe uma ide e edite o código nela. Você não precisa usar todos os recursos avançados de um Netbeans ou Eclipse, mas só conseguir enxergar os pontos onde seu código está com erros de sintaxe, chaves, faltando, etc, já vai te ajudar muito.

Aqui vai a lista de seus erros mais comuns:

  1. A classe BufferedReader não chama BeferredeReader;
  2. Após a declaração de um método não use o ponto-e-vírgula:
    O correto é:
    public static int iniciliza matriz(inicMatriz) {

Ao invés de:
public static int iniciliza matriz(inicMatriz); {

  1. O método showInputDialog, da classe JOptionPane começa com letras minúsculas;

  2. Os métodos PosSub, PosD, PosCruz, posNav, posPort, chamados no main, simplesmente não existem;

  3. Existe uma variavél l, ali no final, que simplesmente não foi criada em local nenhum.

B

fiz a correcao do codigo , mas agora nao sei como faco o loop ate que ele acerte todos os alvos. alguem pode me ajudar???

import java.io.*;

public class BatalhaNaval{

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(){
       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//
   linha = lerLinha();
   coluna = lerColuna();
   verificaPosicao(coluna,linha);
   imprimeTabuleiro();

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

   }

}

B

tah no anexo…mas nao sei como fazer o loop ate que todo os barcos acertados

Criado 19 de maio de 2007
Ultima resposta 19 de mai. de 2007
Respostas 4
Participantes 3