11-02-2020, 03:47 PM
(11-02-2020, 09:15 AM)Eric Piette Wrote: Hi,
Thanks for your response.
(11-02-2020, 09:15 AM)Eric Piette Wrote: your define "MoveWithinBoard" using a step move needs to know from where you can step. That is expressed by the (from) ludeme. However that ludeme needs to iterate each piece. That's what is doing by (forEach Piece). That ludeme described like that refers to each piece owned by the mover and look where they are placed to compute the moves described in each piece in modifying the value of (from) by the place of the piece. That's why the moves description of that ludeme should be at a piece level. However, that's also possible to put that description directly in the play rules in doing (forEach Piece "MoveWithinBoard").Thanks again. So what I understand is that "MoveOntoBoard" cannot be defined inside the pieces definition (as it would need to be in Zillions).
But that's better to describe the moves belonging to a piece directly in the description of the piece in our opinion.
The other define "MoveOntoBoard" refers from a set of sites to another. Consequently the moves do not belong to a specific pieces and is better to be directly in the playing rules rather than the pieces themselves.
Is it possible to define "MoveWithinBoard" inside the "play" section? I can understand if this is less than ideal from your point of view. However I am getting the impression that the language is fairly fragile, and that as I try to express the rules of the game I will arrive at a point where it cannot be done in the piece definition because of X and cannot be done inside the play definition because of Y.
(11-02-2020, 09:15 AM)Eric Piette Wrote: Minor remark about it, you currently does not check if some pieces are still in the hand of the mover. Consequently that's possible to move from an empty sites to any outer sites.I am not sure I understand this comment. Surely this would just resolve to a non-possibility?
(11-02-2020, 09:15 AM)Eric Piette Wrote: A more accurate description can be:Okay, I don't see how this addresses the point you raised above. Surely this just says "Any piece can be moved from whereever it happens to be to anywhere on the edge of the board." How would this help me define "MovesOntoBoard"? Surely it would entirely break it?
(move
(from (sites Occupied by:Mover container:(mover)))
(to (sites Outer))
)
(11-02-2020, 09:15 AM)Eric Piette Wrote: Another minor comment is for
(hand Each size:1)
the "size:1" is the default parameter, consequently just (hand Each) is enough.
That piece of code is a placeholder for "(hand Each size:2)". So I would rather leave it as it is.
(11-02-2020, 09:15 AM)Eric Piette Wrote: Concerning that "Player 2 picks up player 1's piece rather than its own." I am not sure of what should happen in that game, but if you can put your piece on top of an enemy piece and then be able to move that stack only if the top piece is to you you can use (forEach Piece top:true).In terms of what I am trying to do that is both correct and incorrect.
It is incorrect, because I am focussing only on certain aspects of the game. If I could totally achieve my goals for this stage it certainly would not be a very interesting game. And in particular for what I am trying at this stage the top piece in no way inhibits the movement of any piece of the stack. Perhaps it is better to describe it not as a stacking game, but as a 3D-game where a piece falls to the lowest possible level. (Except that the stack concept is more helpful for some of the other rules.)
However it was correct in that I guess about 60-70% of the time the top piece does inhibit the movement of opponents pieces below. But I am not trying to express that just yet, because I would need to increase the handsize to 2 and start differentiating the pieces and so on. And my goal at the moment is to get stacking right before I worry about anything else. I am guessing that the thing Ludii is most likely to let me down on are my stacking requirements. So I want to do that before I attempt anything else.