Changed the way pieces observer pattern works - introduced a class holding a delegate and inserted a Moved event in the game pieces. Changed the way the gameboard is notified of the move - now recieves the piece and its new position as seperate variables - making it easier to find the old position and redraw the gameboard correctly.
Changed the way messages are shown to player - removed the need to specify where to show each message - now there is a constant and a private in the game engine for that.
Fixed the proper messages to show every time.

P.S. The game now runs normally. Tested 2 times - no bugs found.