gbtami / pychess-variants

Chess variant server
https://www.pychess.org
GNU Affero General Public License v3.0
236 stars 115 forks source link

Show counting for Makruk/Ouk #138

Closed Fulmene closed 4 years ago

Fulmene commented 4 years ago

The endgame counting of makruk and ouk includes verbally counting as you move. Both players know what number it currently is, and that should be reflected in the UI. I'd personally place the box for counting indicator at the top right corner, above the moves box. My only concern is whether pyffish supports retrieving counting value.

Edit: Removed the part about optional counting

gbtami commented 4 years ago

Maybe we can get the needed info via pyffish from SF. @ianfab ?

ianfab commented 4 years ago

Fairy-Stockfish uses the makruk FEN format of cutechess, which indicates the counting limit and the current count in the en passant and half-move clock field (if counting applies), e.g.: https://www.pychess.org/xAQy1fxQ 8/8/8/8/2nM4/1k6/1mm5/K7 w - 128 49 91 which means: 128 half moves, i.e., 64 full moves is the counting limit 49 half moves have been made since the counting started

So the half-moves just need to be converted to full moves. The half-move clock only refers to counting if the en passant field contains a number, otherwise (if it is a -) it is a normal 50 move counter (you can check move 66 where the format switches).

However, the optional counting is very problematic, since the count is part of the board state, and you would then change the board state by other means than making a move. I think this topic is much more difficult and should be separated from just displaying the already available counts.

By the way, this format is used for all variants with counting rules, i.e., also Ouk and Sittuyin (as well as ASEAN).

Fulmene commented 4 years ago

I wondered whether I should've separated optional counting to another issue in the first place. Thanks for confirming.

gbtami commented 4 years ago

Yes, please.

ianfab commented 4 years ago

@gbtami Extracting it from the FEN should be fine, so we do not need to add anything in pyffish, right?

gbtami commented 4 years ago

Yes, it should be Ok.