Научился: Провели рефакторинг, переместив в общую функцию проверки, и лишь возвратом вызывая функции для каждой из четырёх рокировок.
Названия я поменял, чтобы не были похожи на переменные, но всё же постарался сохранить их понятными, чтобы можно было догадаться.
Научился: Очень интересны мнения знающих. Схему делал первый раз, 100% где-то напортачил. Трудности: Ну, это была новая тема. Непривычно.
Но, думаю, полезно)