Self-solving Rubic's Cube