Originally posted by c99uxIt is of an advantage for you, if your opponents are using conditional moves.
Yes, a flag would be a good idea.
The main reason I would be against conditional moves is because it gives my opponent a time advantage if there is even a short delay between my pre-conditional move and his post-conditional automatic move.
For example, if my opponent knows I only play 7/14 games, and move once a week per game, on a Saturday evening, he ...[text shortened]... against me again.
Of course, all this supposes that I move as my opponent suspects I will...
If a game is time critical, it can actually save my game to be timed out. I often log in to RHP the last thing I do of the day. I see my opponent of a near-zero-time-left-game has moved. I make a move.
(1) My opponent waits 10 minutes until my little green dot disappears indicating my absence. Then he moves. During the time I have logged off and is gone to bed, snoring like a pig. When I wake the following morning I see that he had skulled me out, and I lost the game.
(2) My opponent entered a conditional move so I see his response immediately, giving me the option to give a counter move directly. He has to think deeply about it. And so is my game saved of being skulled out.
Perhaps it's an invented example, but nevertheless, the games are flowing more quickly, no delays are necessary.
For those with only 6 games, it is a very useful feature. Moving by proxy.
There's no real advantage to a player who uses an automated conditional move. If your move is countered immediately it would be no different than if the player was online and moved himself. I notice that with many of my games, my moves are countered almost immediately by my opponents especially during openings. You can't go request that your opponent wait a bit until you are prepared for their reply.
Furthermore, if your conditional move is successful then I think that you have "earned" that immediate automated move. You have taken the time to think ahead of your opponent and so any benefit you gain will be proportionate to the work you put in while studying the possible lines in your game.
Having conditional moves on this site is a brilliant idea!!
Originally posted by RussFantastic! As soon as it's done, I'm subscribing.
This is indeed the next major RHP project in the pipeline.
Right now, I have a OCD-like mouse finger that keeps reloading my "My Games" page to see if the guy made a move. Having a what-if list of responses to obvious moves would be incredible.
Originally posted by arrakisarrakis responded to "IF king e8 THEN ...."
I think it would be hard on Russ to support that feature.
Actually, from a programmer's perspective, this is an easy thing to do. That line "IF king e8 THEN" is exactly how it would look... OK it will probably look more like this:
IF opponentMove == "Ke8"
replyMove = "f8=Q";
(Yes, that's a little chess joke for those who are paying attention.)
Of course, when this will be implemented, I'd prefer the more complex and more useful:
FOR (int x = 0; x < autoMoves.Count; ++x)
{
IF (opponentMove == parseOpponent(autoMoves[x]))
{
replyMove = parseReply(autoMoves[x]);
x += autoMoves.Count;
}
}
Originally posted by RussIt should be possible to implement something like the analysis board for Auto-moves.
I will discuss the design of this in detail once it gets my full attention. All comments in this thread will be read though.
-Russ
You could play out a line - say for the next three / four moves - and have the line followed for you if the opponent matches the moves.
You could layer lines of top of each other. First 'record' line 1 where the moves go this way. Then 'record' line 2 where the moves go elsewhere. You just keep layering the lines on top of each other till you think you've got the options covered.
As long as the game progresses along one of the saved lines - a response can be made.
Originally posted by Jesse CusterMuch too complicated.
arrakis responded to "IF king e8 THEN ...."
Actually, from a programmer's perspective, this is an easy thing to do. That line "IF king e8 THEN" is exactly how it would look... OK it will probably look more like this:
IF opponentMove == "Ke8"
replyMove = "f8=Q";
(Yes, that's a little chess joke for those who are paying attention.)
Of cour ...[text shortened]... {
replyMove = parseReply(autoMoves[x]);
x += autoMoves.Count;
}
}
I don't see the purpose of the loop, considering you only have 1 reply to each opponent move.
D
Originally posted by orangutanReally nice implementation idea. Just like recording a macro in excel.
It should be possible to implement something like the analysis board for Auto-moves.
You could play out a line - say for the next three / four moves - and have the line followed for you if the opponent matches the moves.
You could layer lines of top of each other. First 'record' line 1 where the moves go this way. Then 'record' line 2 where the move ...[text shortened]... d.
As long as the game progresses along one of the saved lines - a response can be made.
D
Originally posted by RagnorakFOR (int x = 0; x < autoMoves.Count; ++x)
Much too complicated.
I don't see the purpose of the loop, considering you only have 1 reply to each opponent move.
{
IF (opponentMove == parseOpponent(autoMoves[x]))
{
replyMove = parseReply(autoMoves[x]);
x += autoMoves.Count;
}
}
This code is one way of implementing a system for multiple lines of play. The container autoMoves would hold .Count amount of possible opponent moves and their desired replies.
The whole point is to allow the player to set up auto replies to many possibilities. I don't know how you'd do that without some kind of loop to check for each "opponentMove".
I think for conditional moves, a better, more user-friendly idea rather than using recursive or boolean logic would be to let users set individual lines, ( like 1.Nxf6 e5 2. R2c6 e6 3. Ke7 Re1) and let users set as many of these as they want.
Even better have a "conditional moves settings" link where when clicked, a chessboard GUI pop up where the players can move pieces around the chessboard and then click an "add conditional move" button.
Originally posted by bosintangThis is the best idea I've seen so far! Why complicate things more than you need? Just having an input field where you put the lines of variations. IF anyone of the lines fit in, THEN it is performed automatically.
I think for conditional moves, a better, more user-friendly idea rather than using recursive or boolean logic would be to let users set individual lines, ( like 1.Nxf6 e5 2. R2c6 e6 3. Ke7 Re1) and let users set as many of these as they want.
Even better have a "conditional moves settings" link where when clicked, a chessboard GUI pop up where the players can move pieces around the chessboard and then click an "add conditional move" button.
To have a GUI for the thing, though, slows things up a lot for the programmers. The input field can be invoked easily, the GUI not so easily, and then we have to wait a long time to have it, and perhaps with some bugs along too.
I prefer a simple solution, like your idea!
But…
How to enter moves? What system? Short algebraic Nc3, Long algebraic Nb1-c3, with coordinates only b1c3? The easiest thing for the programmer is to use the coordinate system. Then the move doesn't need to be interpreted when ambiguities. But of course, a more elegant method is also welcomed eventually. And a help file that explains it all.
Originally posted by FabianFnasThe GUI is already in place.
The input field can be invoked easily, the GUI not so easily, and then we have to wait a long time to have it, and perhaps with some bugs along too.
On the Analyse board screen, move a few pieces about. Then click Previous Position a few times until you're back at the start. Then Next Position goes through the moves you already inputted, thus the moves are already being recorded and stored temporarily. So orangutan's idea is already nearly there.
Using an inputline for PGN's would be a very poor implementation, and probably only usable by 50% of the site. It would generate all sorts of problems where people input moves wrong, and so wonder/complain why they suddenly lost their queen.
When you say you like simple things, your bias should be towards simplicity for the end user, not the programmer.
D
Originally posted by RagnorakBy Jove, you're perfectly right!
The GUI is already in place.
On the Analyse board screen, move a few pieces about. Then click Previous Position a few times until you're back at the start. Then Next Position goes through the moves you already inputted, thus the moves are already being recorded and stored temporarily. So orangutan's idea is already nearly there.
Using an inputlin ...[text shortened]... ple things, your bias should be towards simplicity for the end user, not the programmer.
D
This is a genial solution!
This is almost implementable right away?