Abstract: A method for providing a puzzle game on a computing device includes displaying a source image on the computing device; dividing the source image into discrete divided sections; displaying on the computing device the source image divided into the divided sections; creating and then displaying on the computing device kaleidoscopic images, each kaleidoscopic image corresponding to one of the divided sections; and permitting a user to play the puzzle game by permitting the user to select a kaleidoscopic image that corresponds to one of the divided sections from the displayed kaleidoscopic images.