1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

erro Java, java.lang.NullPointerException

Boa noite, sou novo no forum, programa já algum tempo em c++, mas estou migrando para Java, estou seguindo a apostila Head First Java 2° edição, fui tentar resolver um exercício da minha maneira para diferenciar do livro. O código consiste em um jogo de batalha naval, é gerado uma frotas de 3 posições aleatoriamente em uma matriz de 7 posições e o jogador insere palpites ate derrubar totalmente o navio. O jogo funcionou, porem havia um erro, você poderia repetir o numero 3 vezes e ganhar o jogo. Para resolver esse problema criei uma segunda matriz, ela iria tomar o resultado do ultimo acerto e geraria um objeto naquele espaço, assim o jogador não poderia utilizar o mesmo palpite mais de 1 vez. Escrevi o código é compilou, mas quando acerto o palpito o jogo trava e meu código e encerrado. Segue abaixo o código:

import java.io.*;
class sDotCom{

    int numOfHits = 0;
    int[] testecel;
    int[] locaisdecelula;
    Boolean isAlive = true;
    void setlocaisdecelula(int[] locs){
        locaisdecelula = locs;
        }
    public String checksugestao(String sug){
            int guess = Integer.parseInt(sug);
            String result = "miss";
            for(int x:locaisdecelula){
            if(guess == x ){
                if(testecel[x] == guess){
                    System.out.println("Palpite já foi utilizado! Escolha outro.");
                    break;
                }
            result = "hit";
            numOfHits ++;
            testecel[x] = guess;
            break;

            }
            }
            if(numOfHits == 3){
            result = "Eliminação";
            System.out.println("Embarcação Eliminada");
            }
            System.out.println(result);
            return result;
    }        

    }

class GameHelper{

        public String getUserInput(String prompt){
            String inputLine = null;
            System.out.println(prompt + " ");
            try{
                BufferedReader is = new BufferedReader(new InputStreamReader(System.in));
                inputLine = is.readLine();
                if(inputLine.length() == 0) return null;
            } catch(IOException e){
                System.out.println("IOException: " + e);
            }
                return inputLine;
            }
        }

public class sDotComTestDrive{
    public static void main(String[] args){

        sDotCom dot = new sDotCom();
        int numDePalpites = 0;
        GameHelper helper = new GameHelper();
        int randomNum = (int) (Math.random() * 5);
        int[] locations = {randomNum +1, randomNum+2, randomNum};
        boolean isAlive = true;
        dot.setlocaisdecelula(locations);
        while(isAlive==true){
            String guess = helper.getUserInput("insira um numero");
            String result = dot.checksugestao(guess);
            numDePalpites++;

            if(result.equals("Eliminação")){
                    isAlive = false;
                    System.out.println("Você utilizou "+numDePalpites+" palpites");
            }
        }
    }
}

Obrigado, agradeço desde já.

  • formate seu codigo !

    fernandopaiva   20 de ago de 2015
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

1 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags java arrays null ou faça a sua própria pergunta.