@Override public Weapon requestNextMove(Player player) { Scanner scanner = new Scanner(System.in); Weapon nextMove = null; System.out.println(player.getDescription() + ", select next move:"); Weapon[] weapons = Weapon.values(); for (Weapon weapon : weapons) { StringBuilder promptBuilder = new StringBuilder(); promptBuilder.append(weapon.name()).append(" : ").append(weapon.ordinal()); System.out.println(promptBuilder.toString()); } while (nextMove == null) { if (scanner.hasNextInt()) { int ordinal = scanner.nextInt(); if (ordinal >= 0 && ordinal < weapons.length) { nextMove = weapons[ordinal]; } else { System.out.println("Error please re-enter [0-" + (weapons.length - 1) + "]"); } } else { scanner.next(); System.out.println("Error please re-enter [0-" + (weapons.length - 1) + "]"); } } return nextMove; }