Что я мог упустить? UPD: Нашёл причину. Двойное сжатие за один ход не должно происходить. Должно быть:
Before:
4 4 4 4
After:
8 8 0 0
А сейчас:
Before:
4 4 4 4
After:
16 0 0 0
Работаю над этим.