Много дублирующего кода, можно сократить. Создать функцию подсчёта, которая принимает нужные параметры и использовать её во всех дублирущих местах
Имхо без разницы, сколько кода, но пусть он будет понятным. Тут я читаю код и понятия не имею, что делается и зачем