I am a noob programmer on JAVA and i'm trying to do one of my first programs and needless to say it's not going great. I have gotten rid of several error of the same type as this one, but i can't seem to be able to fix this. Without further ado here is what i need help with:
error:
Exception in thread "main" java.util.InputMismatchException
at java.util.Scanner.throwFor(Unknown Source)
at java.util.Scanner.next(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
at Main.createGame(Main.java:67)
at Main.processCommand(Main.java:116)
at Main.main(Main.java:40)`
`Exception in thread "main"`
code:
import java.util.Scanner;
public class Main{
private static final String SAI = "SAI";
private static final String AJUDA = "AJUDA";
private static final String NOVO = "NOVO";
private static final String MAPA = "MAPA";
private static final String KNIGHT = "CAVALEIRO";
private static final String SWORDSMAN = "ESPADACHIM";
private static final String SPEARMAN = "LANCEIRO";
private static final String NORTH = "NORTE";
private static final String SOUTH = "SUL";
private static final String WEST = "OESTE";
private static final String EAST = "ESTE";
private static final String SAIR = "Obrigado por jogar. Ate a proxima.";
public static void main(String[] args)
{
Scanner in = new Scanner(System.in);
Game g1 = new Game();
Units u1 = new Units();
String command = "";
String movement = "";
System.out.println("novo - Novo jogo");
System.out.println("ajuda - Mostra a ajuda");
System.out.println("sai - Termina a execucao do programa");
System.out.print("> ");
while(!command.equals(SAI))
{
command = readCommand(in);
movement = readMovement(in);
processCommand(command, movement, g1, u1, in);
}
in.close();
}
private static String readCommand(Scanner in)
{
String command;
command = in.next().toUpperCase();
return command;
}
private static String readMovement(Scanner in)
{
String movement;
movement = in.next().toUpperCase();
return movement;
}
private static void createGame(Game g1, Scanner in)
{
int x = in.nextInt();
int y = in.nextInt();
String team1 = in.next();
int f1x = in.nextInt();
int f1y = in.nextInt();
String team2 = in.next();
int f2x = in.nextInt();
int f2y = in.nextInt();
in.nextLine();
g1.createGame(x, y, f1x, f1y, f2x, f2y, team1, team2);
}
private static void processCommand(String command, String movement, Game g1, Units u1, Scanner in)
{
int tempflag = 0;
switch (command)
{
case AJUDA:
if(g1.on() == false)
{
in.nextLine();
System.out.println("novo - Novo jogo");
System.out.println("ajuda - Mostra a ajuda");
System.out.println("sai - Termina a execucao do programa");
System.out.print("> ");
}
else
{
in.nextLine();
System.out.println("novo - Novo jogo");
System.out.println("mapa - Mostra o mapa do jogo");
System.out.println("cavaleiro - Move o cavaleiro");
System.out.println("espadachim - Move o espadachim");
System.out.println("lanceiro - Move o lanceiro");
System.out.println("ajuda - Mostra a ajuda");
System.out.println("sai - Termina a execucao do programa");
if((g1.turns()%2) == 0)
{
System.out.println(g1.Team1() + "> ");
}
else
{
System.out.println(g1.Team2() + "> ");
}
}
break;
case NOVO:
g1.stop();
createGame(g1, in);
tempflag = (Math.abs(g1.flag1X() - g1.flag2X()) + Math.abs(g1.flag1Y() - g1.flag2Y()));
if(g1.altura() < 10 || g1.largura() < 10)
{
System.out.println("Mapa pequeno demais para o jogo");
}
if(g1.flag1X() < 2 || g1.flag1Y() < 2)
{
System.out.println(g1.Team1() + " bandeira em posicao invalida " + g1.flag1X() + g1.flag1Y());
}
if(g1.flag2X() < 2 || g1.flag2Y() < 2 || tempflag < 5)
{
System.out.printf(g1.Team2() + " bandeira em posicao invalida " + g1.flag2X() + g1.flag2Y());
}
if(g1.Team1() == g1.Team2())
{
System.out.println("As equipas nao podem ter o mesmo nome");
}
else
{
g1.start();
u1.knightAlive1();
u1.swordsmanAlive1();
u1.spearmanAlive1();
u1.knightAlive2();
u1.swordsmanAlive2();
u1.spearmanAlive2();
System.out.println("Jogo iniciado com sucesso, comeca a equipa " + g1.Team1());
System.out.print(g1.Team1() + "> ");
}
break;