Falla el gravity

Cree una clase que genera juegos aleatorios y cuando se hacen jugadas
que dejan 2 o mas columnas vacías falla el corrimiento lateral. Intente
cambiarlo pero sigue sin funcionar y ya me canse de pensar jaja fijense
si lo pueden ver
Cambio ineficiente en el gravity

Ahi funciona bien pero es mucho mas ineficiente la función. fijense la
diferencia entre esta y la anterior así se dan cuenta de que hablo