If Moves

If Moves

Site Ideas

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

A
D_U_N_E

Arrakis

Joined
01 May 04
Moves
64653
01 Mar 07

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.

F

Joined
11 Nov 05
Moves
43938
01 Mar 07
1 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.

h

Joined
09 Jun 04
Moves
39731
01 Mar 07

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!!

RHP Code Monkey

RHP HQ

Joined
21 Feb 01
Moves
2419
01 Mar 07

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

JC

Montreal

Joined
27 Jan 07
Moves
2141
10 Mar 07

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.

JC

Montreal

Joined
27 Jan 07
Moves
2141
10 Mar 07

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;
}
}

ook

hirsute rooster

Joined
13 Apr 05
Moves
20493
11 Mar 07

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.

For RHP addons...

tinyurl.com/yssp6g

Joined
16 Mar 04
Moves
15013
11 Mar 07

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

For RHP addons...

tinyurl.com/yssp6g

Joined
16 Mar 04
Moves
15013
11 Mar 07

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

JC

Montreal

Joined
27 Jan 07
Moves
2141
12 Mar 07

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".

c
'Sir' to you

Osaka, Japan

Joined
30 Sep 05
Moves
40257
12 Mar 07

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?

b
perpetualEditMonkey

Nova Scotia

Joined
14 Jan 06
Moves
10177
12 Mar 07

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.

F

Joined
11 Nov 05
Moves
43938
12 Mar 07

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.

For RHP addons...

tinyurl.com/yssp6g

Joined
16 Mar 04
Moves
15013
12 Mar 07

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

F

Joined
11 Nov 05
Moves
43938
12 Mar 07

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?