Pour le noyau il faut se fixer comme objectif d´allumer toutes les case de la rangée de droite (par exemple).
J´ai pas tous capté comment fonctionnait l´algo mais grosso modo lorsque tu appuis sur un bouton tu "déplaces" la cases la plus haute vers la rangée que tu as sélectionné. Tu ne peux malheureusement pas continuer lorsque la première rangée ou une ligne est vide, tu dois alors revenir en arrière.
Le truc c´est d´allumer les cases du bas vers le haut. Donc si tu arrives à allumer la case du bas de la rangée de droite c´est un bon début. Si à un autres moment tu dois l´éteindre alors non reviens en arrière et cherches à allumer celle juste au dessus et comme ça jusqu´a la dernière tout en haut.
C´est un problème classique de mathématique combinatoire qui rappel les "Tours de Hanoï".
http://fr.wikipedia.org/wiki/Tours_de_Hano%C3%AF