1) назови ебучие переменные нормально 2) выброси то что не используется 3) выброси Стейт между итерациями, который можно функционально вычислить из другого стейта
А ты не в том положении чтобы быть недовольным, я тебе подсказал наиболее простой способ решить проблему самому, раздели её на маленькие части и быстро всё поймёшь.