Вам не кажется, что вам стоит выделить класс `Point`? У вас координаты x и y ходят независимо, но из-за этого все методы дублируются. Плюс конструкция довольно хрупкая, поскольку можно перепутать координаты разных точек.