1. Standard memberArrakis
    D_U_N_E
    Account suspended
    Joined
    01 May '04
    Moves
    64653
    01 Mar '07 08:55
    Originally posted by sydsad
    It would be neat to be able to deliver conditional moves. IF king e8 THEN ....
    I think it would be hard on Russ to support that feature.
  2. Joined
    11 Nov '05
    Moves
    43938
    01 Mar '07 09:111 edit
    Originally posted by c99ux
    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...
    It is of an advantage for you, if your opponents are using conditional moves.

    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.
  3. Joined
    09 Jun '04
    Moves
    39731
    01 Mar '07 09:25
    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!!
  4. SubscriberRuss
    RHP Code Monkey
    RHP HQ
    Joined
    21 Feb '01
    Moves
    2417
    01 Mar '07 11:25
    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
  5. Montreal
    Joined
    27 Jan '07
    Moves
    2141
    10 Mar '07 18:13
    Originally posted by Russ
    This is indeed the next major RHP project in the pipeline.
    Fantastic! As soon as it's done, I'm subscribing.

    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.
  6. Montreal
    Joined
    27 Jan '07
    Moves
    2141
    10 Mar '07 18:39
    Originally posted by arrakis
    I think it would be hard on Russ to support that feature.
    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 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;
    }
    }
  7. hirsute rooster
    Joined
    13 Apr '05
    Moves
    20459
    11 Mar '07 15:25
    Originally posted by Russ
    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
    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 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.
  8. Standard memberRagnorak
    For RHP addons...
    tinyurl.com/yssp6g
    Joined
    16 Mar '04
    Moves
    15013
    11 Mar '07 16:10
    Originally posted by Jesse Custer
    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;
    }
    }
    Much too complicated.

    I don't see the purpose of the loop, considering you only have 1 reply to each opponent move.

    D
  9. Standard memberRagnorak
    For RHP addons...
    tinyurl.com/yssp6g
    Joined
    16 Mar '04
    Moves
    15013
    11 Mar '07 16:11
    Originally posted by orangutan
    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.
    Really nice implementation idea. Just like recording a macro in excel.

    D
  10. Montreal
    Joined
    27 Jan '07
    Moves
    2141
    12 Mar '07 00:03
    Originally posted by Ragnorak
    Much too complicated.

    I don't see the purpose of the loop, considering you only have 1 reply to each opponent move.
    FOR (int x = 0; x < autoMoves.Count; ++x)
    {
    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".
  11. Standard memberc99ux
    'Sir' to you
    Osaka, Japan
    Joined
    30 Sep '05
    Moves
    40257
    12 Mar '07 01:18
    Some questions for the designers, mechanics and lawmakers:

    How many "conditionals" can be set?

    Can I make 2 or more in the same game? For example:

    If (QxQ) then (RxQ);

    or

    If (RxR) then (NxR);

    in the same game?

    And can a conditional be set up when it's not my move?
  12. Standard memberbosintang
    perpetualEditMonkey
    Nova Scotia
    Joined
    14 Jan '06
    Moves
    10177
    12 Mar '07 07:28
    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.
  13. Joined
    11 Nov '05
    Moves
    43938
    12 Mar '07 08:20
    Originally posted by bosintang
    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.
    This 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.

    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.
  14. Standard memberRagnorak
    For RHP addons...
    tinyurl.com/yssp6g
    Joined
    16 Mar '04
    Moves
    15013
    12 Mar '07 10:59
    Originally posted by FabianFnas
    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.
    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 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
  15. Joined
    11 Nov '05
    Moves
    43938
    12 Mar '07 12:09
    Originally posted by Ragnorak
    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
    By Jove, you're perfectly right!
    This is a genial solution!
    This is almost implementable right away?
Back to Top

Cookies help us deliver our Services. By using our Services or clicking I agree, you agree to our use of cookies. Learn More.I Agree