import java.util.Random;
import java.util.Scanner;
public class Jogo {
Scanner scanner = new Scanner(System.in);
int tipoJogo;
int turno;
Barco[] jfA,jfB;
Random random = new Random();
public Jogo(Barco[]fA, Barco[]fB, int tamanhomax, int tj)
{
for(int i =0;i<tamanhomax;i++)
{
fA[i]=fB[i]=null;
}
jfA = fA;
jfB = fB;
tipoJogo=tj;
}
//public Barco[] getFrota() {
// return frota;
//}
int linhaAC = random.nextInt(7);
int colunaAC = random.nextInt(7);
int orientação = random.nextInt(1);
public Jogo(int TipoJogo){
TipoJogo = tipoJogo;
}
public void manual1(){
System.out.println("Jogador A");
System.out.println("Insira as coordenadas do Aircraft Carrier e a sua orientação(0 horizontal, 1 vertical):");
//linhaAC = scanner.nextInt();
//colunaAC = scanner.nextInt();
String op= scanner.nextLine();
int linhaAC = (int) Character.toUpperCase(op.charAt(0))-'A'; //vai buscar o primeiro caracter da String op e transforma do A ao I em interiros 0 a 8
int colunaAC = (int) op.charAt(1)-'1';
int orientação = scanner.nextInt();
System.out.println(linhaAC +" - " + colunaAC);
do{
System.out.println("Fora do tabuleiro");
System.out.println("Insira de novo as coordenadas do Aircraft Carrier: ");
linhaAC= (int) Character.toUpperCase(op.charAt(0))-'A';
colunaAC = (int) op.charAt(1)-'1';
orientação = scanner.nextInt();
}while((colunaAC > 4 && orientação == 0)|| (linhaAC > 'D' && orientação == 1));
Ok iam obtenir le code d'erreur suivant:Obtenir une "Exception dans le thread "erreur principale" de java.util.InputMismatchException" à l'intérieur d'une boucle Do While
Exception in thread "main" java.util.InputMismatchException
at java.util.Scanner.throwFor(Scanner.java:864)
at java.util.Scanner.next(Scanner.java:1485)
at java.util.Scanner.nextInt(Scanner.java:2117)
at java.util.Scanner.nextInt(Scanner.java:2076)
at Jogo.manual1(Jogo.java:147)
at Main.start(Main.java:134)
at Main.main(Main.java:26)
Cela arrive lorsque je tente de définir un nouvelle valeur pour les variables LinhaAC et ColunaAC dans la boucle do while. Fondamentalement, si j'ai défini LinhaAC pour être supérieur à 'D' ou ColunaAC pour être supérieur à 4, il démarre la boucle Do while où je demande à l'utilisateur d'insérer de nouvelles valeurs à ces variables.
Donc, quand j'essaie de définir de nouvelles valeurs, après avoir inséré LinhaAC et ColunaAC je presse entrer afin que je puisse choisir la nouvelle valeur pour "orientação" il déclenche l'erreur.
Cela se produit uniquement dans le groupe do while. Dans la première fois que j'insère les valeurs, cela ne donne aucune erreur.
EDIT: Cela arrive même si j'utilise la même valeur que celle que j'ai choisie la première fois. Ce n'est pas comme si j'insérais un int sur un scanner.next();
quel est le type de 'Barco' – Blasanka