12-04-2020, 10:54 AM
(This post was last modified: 12-04-2020, 10:57 AM by dale walton.)
Consequently, if a player made a move and then pass, that turn is not a pass, because he actually did a move before to do anything else (including a pass).
-- I totally agree, but (was pass) will be true, not false because the last action was a pass if it was a decision pass, not a consequence pass.
I assume you are talking about
(move ActionType (then (pass)))
case, where (was pass) should return false because the decision move was not a "Pass"
I am talking about implementing moves with multiple decisions where the final decision is optional, with for example:
(or (move ActionType (then (moveAgain)))
(move Pass)
)
or a
(or
(if (is Prev Mover)
(move Actiontype2)
(move Actiontype1 (then (moveAgain)))
)
(move Pass)
)
In these last cases, the (move Pass) is used to end the turn, and is only a real player's turn pass if it is the first option used in the players turn.
Whether or not it is the goal of the existing ludeme, the function of passing and ending a turn is different. If the function of ending a turn has to be doubled up with true passing, then there is need for a turn based pass query, not just a decision based pass query. - for example in games that end in consecutive passes.
But even if there was an "I'm finished with my turn move", (does:
(move Propose "Your Turn" (then (if (is Proposed "Your Turn) (pass))))
work?) the current implementation of the pass query would still not be turn based because the true passes would be interspersed with other decision moves, not consecutive.
-- I totally agree, but (was pass) will be true, not false because the last action was a pass if it was a decision pass, not a consequence pass.
I assume you are talking about
(move ActionType (then (pass)))
case, where (was pass) should return false because the decision move was not a "Pass"
I am talking about implementing moves with multiple decisions where the final decision is optional, with for example:
(or (move ActionType (then (moveAgain)))
(move Pass)
)
or a
(or
(if (is Prev Mover)
(move Actiontype2)
(move Actiontype1 (then (moveAgain)))
)
(move Pass)
)
In these last cases, the (move Pass) is used to end the turn, and is only a real player's turn pass if it is the first option used in the players turn.
Whether or not it is the goal of the existing ludeme, the function of passing and ending a turn is different. If the function of ending a turn has to be doubled up with true passing, then there is need for a turn based pass query, not just a decision based pass query. - for example in games that end in consecutive passes.
But even if there was an "I'm finished with my turn move", (does:
(move Propose "Your Turn" (then (if (is Proposed "Your Turn) (pass))))
work?) the current implementation of the pass query would still not be turn based because the true passes would be interspersed with other decision moves, not consecutive.