## Solving the rainbow ball

Description:

The rainbow ball is a quite recent logical toy for children from the age of 6. It is quite simple to solve intuitively and even small children usually manage very well. The aim of this project is to understand the ball, and use the understanding to give solution strategies and implement them on the computer.

Goals:

The following steps could be done:

• Find a formal notation system for describing the current state of the ball and also for describing moves, for computer use.
• Represent the ball on the computer: either in text notation (simple) or graphically (more advanced).
• Simulate the ball on the computer (allow the user to play the ball on the computer: either in text mode, or graphically).
• Analyse the possible moves: find and describe basic (sequences of) moves, such as, exchanging two neighbouring colours without changing the other colours.
• Use the language of permutations (e.g. cycles, transpositions) that you know from "Structures mathématiques" or "Algèbre linéaire" to make and prove theorems about the ball; in particular, answer the question: "Can any position of the colours be achieved?"
• Use the basic moves and your mathematical analysis to write a solution algorithm.
• (If time permits) Analyse the running time of the algorithm and try to find improvements.
Prerequisites:
• Mathematics: only the basic terminology of permutations and groups, such as taught in "Structures mathématiques".
• Programming: basic programming in any language (for the text version); for a graphical representation a little more is needed.
• Most important: You must want to understand the ball properly.

Supervisors: Tara Trauthwein, Gabor Wiese

Difficulty level: EML 2 