EDIT : how can i define to engine ,that these three panels (that have a same pictures) are in the line ?
The game logic could/ should be done with arrays, the panels are only the visualization.
You can, f.i., save the panel's grid position in its skill_a and skill_b, when you now pick up a panel and drag it somewhere else (I don't know if the game's rules allow that, but nevertheless), you calculate the index of your grid below the mouse cursor and change the value of the array at that position. The panels themself could be saved in a panel array and updated in a while loop, where you just set panel[i].bmap = my_icons[array[panel[i].skill_a][panel[i].skill_b]], where my_icons is a bmap array.