We are an Italian group of three people: Luciano Gualà, Stefano Leucci, and Emanuele Natale. We had the weird idea to spend our weekends proving that Candy Crush Saga is NP-Hard. We also thought that it was nice to put online an implementation of our hardness reduction... so here it is!
Swap two adjacent gems in order to match three or more gems of the same kind. The matched gems will pop, and the gems above will fall.
It is possible to have chains of pops.
For a complete understanding of what's going on please read the paper on ArXiv. In a nutshell (for those "tl;dr" folks): you can swap one or two gems on each choice wire from the top one to the bottom one, then you have to traverse the goal wire to reach the goal gem. Popping a wire means setting the corresponing variable to true.