Пишу код для шахмат. Столкнулся с проблемой определения корректности хода EnPassant у пешки, то есть, когда вражеская пешка "прыгает" на две клетки и её стоит сразу бить ответным ходом, иначе теряется возможность совершить EnPassant. Не понимаю, как отобразить это в коде, отслеживать ходы всех своих фигур? Буду благодарен за любую конструктивную помощь.
Можно ввести, так называемый флаг (переменную типа boolean
) enPassantable
которая будет отвечать за возможность данного хода. Тогда условия хода En Passant будет определяться следующим способом:
if(пешка стоит на определенной горизонтали &&
enPassantable для пешки противника == true &&
пешка противника стоит справа или слева) {}
Теперь как же менять этот флажок. Если пешка ходит на две клетки, то enPassantable = true
. После того, как противник сделал ход нужно пройтись по всем пешкам (или пешки у которых enPassantable = true
хранить где-то в отдельном списке) и присвоить enPassantable = false
. Таким образом, следующим ходом противник не сможет сделать данный ход, так как enPassantable
будет уже false
.
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
У меня есть класс которые в себе содержит логику RecyclerView, также в этом классе содержится логика меню, а помимо этого еще toolBar и другие компоненты...
Есть вопрос концептуального и общего характераЯ не очень понимаю каким образом реализуется бэкенд на java