Comments/Ratings for a Single Item
e.g. give a command, for instance, 'keepturn' and the turn remains with
the player who just moved. In this way I can implement my revolutionary
Relocation Variants. Perhaps this could be implemented by forcing a pass move(?).
/Mats
The extendmove command should do what you want. It does not change the turn order, and it does not force anyone to pass a turn. What it does is return the player to the form for making a move, showing the moves as they have already been made for that turn, and allowing the player to make another move. It then appends the new move to the past moves. It may be used once or multiple times for longer moves, depending on what is called for. When using this command, care should be taken that it only be used for the current move. This may involve writing code that distinguishes between partial moves and complete moves. Basically, it lets you use the mouse to do what you could always do previously by typing moves manually. See my current code for Korean Chess for an example similar to what you want. It allows the player to swap one or both pairs of Knight and Elephant, then immediately make a move, all using the mouse. But I'm going to change this in a new preset, because this doesn't follow the rules of Korean Chess strictly.
Wonderful! Thanx! I think I can attract more chessplayers to the site to test my Relocation variants, when I have implemented them, because this is chess close to Fide chess. What was the latest Anand vs. Carlsen game all about? I say computer preparation far into the middle game. I don't believe in this development. /Mats
However, I have a problem. If the game is started with Black as the first party to move, then the board doesn't turn when a move is made. It's a bug in Game Courier. (This is regardless of extendmove.) Moreover, after 'extendmove' the board is still turned, which forfeits the purpose of the command, I think. /Mats
When I use extendmove I hoped to be able to make one more move with the same player. This seems to work, however, the board has turned. If white is going to make one more move, he has to do it with his pieces at the top of the board, and this is awkward. /Mats
I need you to show me the preset you are using the extendmove command in.
Fergus, why don't you try to implement your Janggi with two relocation moves in a row, and make use of extendmove. /Mats
But I'm not doing anything. I just insert the statement 'extendmove' and the board still turns. So there is nothing to look at. It works, because I can move the same colour again, but from the top of the board. This is confusing, of course. /Mats
Fergus, if I insert it *last* in the post-move code, as the final command (or as the only command), then the move is extended, but the board turns. You can test it yourself, it takes 15 seconds. /Mats
Okay, the problem on my end is that the extendmove
command is not yet working properly in solitaire mode. But my tests indicate that it is working properly in correspondence mode.
The problem on your end is that putting extendmove
as the final command in the postmove code creates an infinite loop. It's not a proper use of the command. It should only be used within a conditional statement that checks whether it needs to be called. In this Chess game between myself and my alter ego, extendmove
is the only command, occurring in post-move1 by itself. It does not turn the board around, but it creates an infinite loop in which White can keep moving one piece after another but is never able to send the move to his opponent. You can try it yourself.
Good. How about the problem that the board does *not* turn (in single mode) when first player is set to Black? /Mats
Of course, 'extendmove' must be conditioned, but it seems like the flags don't change their value when 'extendmove' is used(?). Correct me if I'm wrong; if I change a flag in order to make extendmove conditional, the flag doesn't actually change its value until the other *colour* gets the turn. Example: if flag firstturn; if == origin e1 and == dest g1: setsystem moves 'swap e1 g1'; add K g1 N e1; endif; unsetflag firstturn; setflag secondturn; extendmove; elseif flag secondturn; if equal moved Q; setsystem moves 'swap origin dest'; add moved origin moved dest; endif; unsetflag secondturn; endif; In the above code 'secondturn' is executed by the same colour. But this code is never executed because the flag 'secondturn' does not actually change its value until the other player gets the turn. The command extendmove seems to have this effect, if I'm correct. /Mats
25 comments displayed
Permalink to the exact comments currently displayed.