Size: a a a

2021 March 29

DE

Denis Efremov in JS Liberty
Эд
И нужно что отсюда понять?
В том то и дело, что понять что происходит сложно
источник

В

Виталий in JS Liberty
Эд
И нужно что отсюда понять?
построй все то же без композиции и попробуй прочесть
источник

DE

Denis Efremov in JS Liberty
Там нет композиции. Тупые ифы
источник

DE

Denis Efremov in JS Liberty
https://github.com/Piterden/chessbot/blob/board-img/src/handlers/inlineMove/index.js#L46

Если это ни один из игроков, то ничего не делать
источник

Э

Эд in JS Liberty
Виталий
построй все то же без композиции и попробуй прочесть
Я не вижу композиции
источник

В

Виталий in JS Liberty
Эд
Я не вижу композиции
туплю...
источник

DE

Denis Efremov in JS Liberty
Если это белый, но ход черного, или черный, но ход белого, то показываем сообщение что ход не твой
https://github.com/Piterden/chessbot/blob/board-img/src/handlers/inlineMove/index.js#L59-L63
источник

DE

Denis Efremov in JS Liberty
Это было просто
источник

Э

Эд in JS Liberty
Виктория
const compose = (...fns) => (value) => fns.reduceRight((result, fn) => fn(result), value)
А языки сразу не предоставляют такое? Почему?
источник

Э

Эд in JS Liberty
Нельзя обобщить?
источник

DE

Denis Efremov in JS Liberty
https://github.com/Piterden/chessbot/blob/board-img/src/handlers/inlineMove/index.js#L86-L95

Есть две стадии хода: когда ты выбраешь фигуру, и когда ты её двигаешь
Если ты только выбираешь и (
 либо нажата не клетка доски или
 либо на клетке нет фигуры или
 ход белых, но фигура черная или
 ход черных, но фигура белая
)
то ничего не делать
источник

DE

Denis Efremov in JS Liberty
Дальше добавляется ещё больше крайних кейсов
источник

DE

Denis Efremov in JS Liberty
https://github.com/Piterden/chessbot/blob/board-img/src/handlers/inlineMove/index.js#L99-L106

Если нажата кленка доски и на ней есть фигура и
(
 фигура белая и ход белых или
 фигура черная и ход черных
) и
не всё вместе (
 фигура уже выбрана и
 нажатая клетка есть клетка выбранной фигуры (это 104 и 105 строки)
)
тогда мы фильтруем из всех возможных ходов, только ходы этой фигуры и показываем их на доске
источник

Э

Эд in JS Liberty
Для чего это ты показываешь?
источник

Э

Эд in JS Liberty
А лол кста
источник

DE

Denis Efremov in JS Liberty
Но там ещё надо обработать крайний кейс: когда все предыдущие условия прошли, но фигура заперта. Это происходит тут
https://github.com/Piterden/chessbot/blob/board-img/src/handlers/inlineMove/index.js#L111-L115
источник

Э

Эд in JS Liberty
источник

В

Виктория in JS Liberty
Эд
А языки сразу не предоставляют такое? Почему?
В хаскеле это есть.
В джс это не предусматривается.
В конце концов, тебе функцию простейшую в одну строку в ломак написать?
источник

В

Виктория in JS Liberty
В хаскеле есть оператор композиции
источник

В

Виктория in JS Liberty
f3 . f2 . f1
источник