i saw the tutorial already on making a game like pokemon puzzle league but it doesn't go into the theory behind why it works , and there seems to be a shortage of tutorials for puzzle game logic on the web so can someone explain the programming logic behind a puzzle game for me please ?