01-29-2020, 08:34 PM
Quote:a player can play several times in a row : game.requiresReplay()
We should be able to add a method for this in the next version.
Quote:the legal moves of a state do not depend on the previous states i.e. only depend on the current state (i.e. on current properties of pieces (position, state, ...) and the current player) : isMarkov()
I'm not as sure about this one. Will have to discuss this with the other members of the Ludii team... What do we count as "the current state"? Only properties that a human could visually see, by looking at the board? Or all properties that are visible to AIs in the Trial and/or State objects that we supply to them? Because if we consider what's technically visible to the AIs, I'm pretty sure that all of our games would be Markov... We'll see what we can come up with.
Quote:the captured pieces are only removed at the end of each player moves sequence (games with remove(apply:false)) : hasDelayedRemoval()
I think we already have this. You can try "game.hasSequenceCapture()". I think that's what your looking for, at least in our current dev version. I'm not 100% sure whether this also already exists in the current public pre-release, but probably it does.
Quote:the game uses hands : requiresHand()
We should be able to add a method for this in the next version.
Quote:the game needs the counts of positions of the board : requiresBoardCount()
In our current dev version we have "game.requiresCount()". If that already exists in the current pre-release, I think that's what you're looking for. Note that "count" in Ludii is different from "stacking". requiresCount() would return true in Mancala games for instance, where sites can contain counts greater than 1. But it would still return false in "stacking" games, where pieces are stacked on top of each other. Backgammon for example uses stacking, not count. Stacking games may be detected using game.isStacking().
Quote:the game uses pass move : requiresPass()
I... think we can implement this, but would probably only make it return true for games where "Pass" is explicitly mentioned in a game's .lud description, i.e. games where players can really actively choose to press the Pass button even when they may have other legal moves available. Internally, Ludii also sometimes automatically applies Pass moves for human players, and expects AIs to generate their own Pass moves in cases where no legal moves are available. For instance, drawn games of Tic-Tac-Toe in Ludii do not end after 9 moves, but after 11 moves where 2 Pass moves are appended at the end. These cases would probably return false.