| Author |
Message |
Uwe Wiedemann (Uwe)
| | Posted on Friday, June 22, 2001 - 12:45 pm: | |
I've used dummy pieces to count moves, if I implement 50-move-rules, i.e. for example "the chess play is ended if there was 50-moves no pawn move and no capture move". By this I saw that the 3-repetition-rule is skipped, because dummy positions are count as a part of the board and therefore they make positions different which are equal with respect to the rest. Is this behavior intended? Of course it is a nice method to skip the 3-times-repitition in puzzles, but it makes it hard to find implementations for 50-moves-rules without skipping the 3-times-repetition-rule. |
Dan Troyka (Dtroyka)
| | Posted on Friday, June 22, 2001 - 1:08 pm: | |
Dummy pieces are also counted in count-conditions which can sometimes lead to skewed results. Just a thought: maybe you could place fifty dummy pieces in a row (off-board, of course), then use an attribute to keep track of the number of moves. The code would look something like: to-dummy-board (while placeholder e) (set-attribute placeholder true) (set-attribute counter false) e (set-attribute placeholder false) (set-attribute counter true) This (after you de-bug it) would in theory move the attribute "counter" along the row. Then there could be a test for "counter" in the 5oth position which, if true, would trigger some sort of move to a space associated with a draw-condition. There would also have to be code to re-set the counter attribute when a capture or pawn-move occurs. I'm assuming that changes in piece attributes aren't counted for repetition purposes. |
Uwe Wiedemann (Uwe)
| | Posted on Friday, June 22, 2001 - 7:55 pm: | |
Oh they are. If I change only the attributes of pieces and have no other changes a 3-times-repetition is not found. Changes in piece attributes are counted for repetition purposes. The attributes are therefor not a mean to implement 50-moves-rules without killing the 3-times-repetition-rule. You can use either the count of moves with changing dummy pieces or with changing piece attributes to kill the 3-time-repetition-rule in puzzle games. But I can't see any method to make exact FIDE-chess-rules, exact International Checker rules or exact rules for International Morris with Zillions which would include to have both a 50-move-rule and a 3-times-repetition rule. |
Dan Troyka (Dtroyka)
| | Posted on Saturday, June 23, 2001 - 2:53 pm: | |
I'm surprised that changes in attributes are counted toward repetition. That means that in rare circumstances Zillions will not detect 3-move repetition in chess because of the never-moved attributes of the King and Rook. I tried setting up a 15-move limit with flags. It works with human players -- a draw is declared after 15 moves or earlier if 3-move repetition occurs. Once the computer opponent is introduced, however, the flag values are quickly run up to 15 as the computer searches ahead, resulting in a premature draw. I can't figure out a way around this. |
Jeff Mallett (Jeffm)
| | Posted on Sunday, June 24, 2001 - 4:51 pm: | |
Dan, you're right that it's possible in rare circumstances a 3-move repetition would go undetected, because positions will be considered different due to never-moved attributes when they shouldn't be. However, if attributes were not counted, the situation would not be better, because this would mean you'd get 3-move repetition draws when they don't apply. In Chess, positions are considered different when the right to make a certain castling move is lost by one of the players between positions. |
Jose Carrillo (J_carrillo_vii)
New member Username: J_carrillo_vii
Post Number: 10 Registered: 5-2008
| | Posted on Saturday, January 17, 2015 - 3:13 pm: | |
I guess this behavior issue was never fixed. I too just implemented a solution with dummy pieces to count moves, in order to end the game after so many moves, and declare the winner the one with the last capture. The problem is, that since it now does not recognize the 3-times repetition goal, then in certain positions Zillions starts to repeat the same position over and over and over, until the counter reaches the target. But if the 3-times repetition goal was working right (since I'm declaring repetition a loss in my game) then Zillions would not go into a loop replaying the same position over and over, until the target count was reached. |
|