public String moveNotation(int[] move, NotationType notationType) {
		StringBuilder result = new StringBuilder();
		char pieceMoved = pieces[move[0]][move[1]];
		if (pieceMoved == 'k' || pieceMoved == 'K') {
			if (Arrays.equals(move, new int[] { 0, 4, 0, 2 })
					|| Arrays.equals(move, new int[] { 7, 4, 7, 2 })) {
				return "O-O-O";
			} else if (Arrays.equals(move, new int[] { 0, 4, 0, 6 })
					|| Arrays.equals(move, new int[] { 7, 4, 7, 6 })) {
				return "O-O";
			}
		}
		if (NotationType.LONG_ALGEBRAIC.equals(notationType)) {
			if (pieceMoved != 'p' && pieceMoved != 'P') {
				String pieceMovedUpper = String.valueOf(pieceMoved)
						.toUpperCase();
				result.append(pieceMovedUpper);
			}
			result.append(Character.toChars(97 + move[1]));
			result.append(move[0] + 1);
			result.append('-');
			result.append(Character.toChars(97 + move[3]));
			result.append(move[2] + 1);
		}
		return result.toString();
	}