Bom dia pessoal, estou estudando o livro Head First Java e no capítulo 5 me deparei com um exercício que me deixou com algumas dúvidas, primeiramente os códigos do exercício são os seguintes:
package dotcom;
public class SimpleDotCom {
int[] locationCells;
int numOfHits = 0;
public void setLocationCells(int[] locs) {
locationCells = locs;
}
public String checkYourself (String stringGuess) {
int guess = Integer.parseInt(stringGuess);
String result = "miss";
for (int cell : locationCells) {
if ( guess == cell){
result = "hit";
numOfHits++;
break;
}
}
if (numOfHits == locationCells.length){
result = "kill";
}
System.out.println (result);
return result;
}
}
package dotcom;
public class SimpleDotComGame {
public static void main (String[] args){
int numOfGuesses = 0;
GameHelper helper = new GameHelper();
SimpleDotCom theDotCom = new SimpleDotCom();
int randomNum = (int) (Math.random() * 5);
int[] locations = {randomNum, randomNum + 1 , randomNum + 2};
theDotCom.setLocationCells(locations);
boolean isAlive = true;
while (isAlive == true){
String guess = helper.getUserInput ("Insira um número");
String result = theDotCom.checkYourself(guess);
numOfGuesses++;
if (result.equals("kill")) {
isAlive = false;
System.out.println ("Você usou " + numOfGuesses + "palpites");
}
}
}
}
Uma breve explicação do exercício: Eu tenho que acertar as 3 posições onde uma Dot Com está para que eu a elimine ( afunde, estilo batalha naval porém em uma linha só) essas posições são por exemplo 4,5,6…a partir do primeiro número randomico de 0 a 4 ( pois o limite são 7 posições) que o programa encontrar ele soma mais 1 e mais 2 para que a dot com esteja em 3 posições ( 0,1,2…ou…4,5,6) o que eu não intendi foi o seguinte:
Como o programa sabe em qual posição colocar algo para dizer que lá esta a posição onde esta parte da Dot Com ? digamos que inicialmente tudo seja 0, quando as posições forem mudadas o valor daquela posição muda de 0 para 1 e quando eu for tentar adivinhar onde esta a Dot Com se o lugar que eu “chutei” for diferente de 0 então o programa intende que ali está parte da Dot Com ?
Desculpem se ficou muito confuso, qualquer dificuldade de intendimento eu tento deixar minha dúvida de uma forma mais claro.
[]'s
obs: Eu sei que em momento algum eu limitei o tamanho dessa matriz
edit: Uma dúvida que eu havia esquecido de colocar: Pessoal quando vou atribuir algo para uma matriz eu sempre tenho que fazer com Colchetes ? ou posso usar parênteses ? qual a diferença ( se é que tem alguma, digo isso porque realmente não sei) ?