public void run(Scanner input) {
		int currentPlayer = 0;
		ArrayList<Direction> validDirections;
		Piece currentPiece;
		String nextCoordinate;
		int x, y;
		int scoreChange;

		Pair<Integer, Integer> coords = null;
		while (!board.gameOver()) {
			currentPiece = players[currentPlayer].getPiece();
			if (!board.validMoveExists(currentPiece)) {
				System.out.println("Player " + (currentPlayer + 1)
						+ " cannot move.");
				currentPlayer = ++currentPlayer % 2;
				currentPiece = players[currentPlayer].getPiece();
			}
			
			do {
				System.out.println("Player " + (currentPlayer + 1)
						+ ": Please enter your move in the format: letter number");

				nextCoordinate = input.next();
				x = 1 + (nextCoordinate.toUpperCase().charAt(0) - 'A');
				nextCoordinate = input.next();
				try {
					y = Integer.parseInt(nextCoordinate);
				} catch (NumberFormatException e) {
					System.out.println("You have not entered a valid set of coordinates.");
					y = -1;
				}
				coords = new Pair<Integer, Integer>(x, y);
				validDirections = board.checkMoves(coords, currentPiece);
			} while ((validDirections == null));
			
			scoreChange = board.makeMove(coords, currentPiece, validDirections);
			players[currentPlayer].adjustScore(scoreChange);
			currentPlayer = ++currentPlayer % 2;
			players[currentPlayer].adjustScore(-(--scoreChange));
			board.display();
		}
		endGame();
	}