private Color deserialiseColour(String c) throws NumberFormatException {
        String[] parts = c.split(" ");
        int r, g, b, a;
        Color result;
        if (parts.length >= 3) {
            r = Integer.parseInt(parts[0]);
            g = Integer.parseInt(parts[1]);
            b = Integer.parseInt(parts[2]);
            result = new Color(r, g, b);
        } else {
            throw new NumberFormatException(c + " is not a valid colour!");
        }
        // Bonus: Secret alpha channel support
        if (parts.length == 4) {
            a = Integer.parseInt(parts[3]);
            result = new Color(r, g, b, a);
        }
        return result;
    }