Как правильно вынести общую логику на Java в отдельный метод?
Пытаюсь вынести общую логику в отдельный метод isWinnerXandO, но не получается
public boolean isWinnerX() {
return this.fillBy(Figure3T::hashMarkX, 0, 0, 1, 0) ||
this.fillBy(Figure3T::hashMarkX, 0, 0, 1, 1) ||
this.fillBy(Figure3T::hashMarkX, 0, 0, 1, 1) ||
this.fillBy(Figure3T::hashMarkX, this.table.length - 1, 0, -1, 1)
}
public boolean isWinner0() {
return this.fillBy(Figure3T::hashMark0, 0, 0, 1, 0) ||
this.fillBy(Figure3T::hashMark0, 0, 0, 1, 1) ||
this.fillBy(Figure3T::hashMark0, 0, 0, 1, 1) ||
this.fillBy(Figure3T::hashMark0, this.table.length - 1, 0, -1, 1)
}
public boolean isWinnerXand0(boolean hasMark) {
return this.fillBy(Figure3T::hashMark, 0, 0, 1, 0) ||
this.fillBy(Figure3T::hashMark, 0, 0, 1, 1) ||
this.fillBy(Figure3T::hashMark, 0, 0, 1, 1) ||
this.fillBy(Figure3T::hashMark, this.table.length - 1, 0, -1, 1)
}
public boolean isWinnerX(boolean hasMarkX) {
return isWinnerXand0(hasMarkX);
}
public boolean isWinner0(boolean hasMark0) {
return isWinnerXand0(hasMark0);
}
Ответы (1 шт):
Автор решения: Sergei Buvaka
→ Ссылка
Так а зачем вы в общем методе вызывате Figure3T::hashMark?
public boolean isWinnerXand0(boolean hasMark) {
return this.fillBy(hashMark, 0, 0, 1, 0) ||
this.fillBy(hashMark, 0, 0, 1, 1) ||
this.fillBy(hashMark, 0, 0, 1, 1) ||
this.fillBy(hashMark, this.table.length - 1, 0, -1, 1)
}
И передавайте извне сюда параметр hasMark.