So last night I was trying to solve that puzzle, and after 5 minutes I realized I was just wasting my time and there was a much easier solution.
I made a code in c++ that goes through all 4^16=4.2 billion possibilities of moving tiles, and see which ones lead to solving the puzzle, given the initial rotation state of all tiles.
Unfortunately 4.2 billion is a large number, so the code takes a very long time to be executed (like, hours or days). However, what is interesting is that there seems to be more than 1 correct way of reaching a given final state from a given initial state. For example, I had the following initial state :
0000
0000
0000
2002
where 0 represents a tile that is correct, and each time a tile rotates, it increases by +1 (modulo 4, i.e. 4=0).
I had only gone through the first billion possibilities (25%) and I had already found 16 different solutions. However, I found 0 solutions in the next billion which leads me to believe that there are only 16 solutions every time the puzzle is solvable. (since there are 4^16 final states, and 4^16 possibilities of moving tiles, if there are 16 ways of reaching some final states, that also means that only 1/16 final states are reachable, luckily the correct solution is one of them).
Anyway, apparently the initial state of the puzzle is different each time you play, so I can't just post the solution like that. Best I can do is to give you the code I used. Once you manage to run it, you just enter for each 16 tiles their current rotation state (0,1,2,3), and it finds for you how many times you have to click on each tile to solve the puzzle (for example, click twice on tile 1, don't click on tile 2, click 3 times on tile 3, etc...). The tiles are numbered as follows :
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
The code :