I believe revert=true has to be set before the dragging occurs. Why not just move the chess piece back to the square it came from using a function if the move is illegal?
On Jul 5, 3:44 pm, Red <[EMAIL PROTECTED]> wrote: > Whether I do that or do it the way I'm doing it, it would still require that > I set revert to true or false depending on whether or not the move is legal. > So I'd have to set revert programatically. I know it can be done, but I > don't know how to do it. > > It shouldn't matter whether I use ajax to verify the move or store the legal > moves locally. The ajax verification happens pretty instantaneously. The > issue becomes making it either stay at revert=true or revert=false depending > on whether or not the move is legal. Because no matter what, I need the > piece to stay there for a sec or so while the verification function checks > to see if the move is legal regardless of whether or not it's checking > locally or using ajax. > > So I need it to basically go to revert=false (and center itself in the > square, which is a div) if the move is legal and revert if the move is > false. I'm not even sure if this is possible, unless I come up with > something custom. > > Thanks for the response. > > On 7/5/07, Jon Trelfa <[EMAIL PROTECTED]> wrote: > > > > > On 7/5/07, Red <[EMAIL PROTECTED]> wrote: > > > I can't figure out an intelligent way to do this. If I set revert to > > true, > > > it will snap back to it's original position when I want it to stay at > > the > > > square while checking to see if the move is legit. If I set revert to > > false > > > and the move is illegal, it's not going to know where to snap back to. > > > > Anybody have any ideas how to go about this? Thanks in advance. > > > How about pre-fetching your legal moves for the piece using the XHR call? > > Then you can validate the move against a local set of data. For example: > > > In a grid where the rows are numbered and the columns are lettered, > > we'll say a pawn is in square 4A > > The pre-fetch for that piece says that it can only legally move to > > square 5A (if there were an opponent's piece in 5B, that square would > > also be returned) > > The user moves the piece forward 1 square (legally) to square 5A (If > > they tried 6A, the event would return false and snap the piece back.) > > If the ondrop event says it's "OK" for that piece, you fire off an XHR > > to get the next list of legal moves for that piece > > > I'm sure it will get more complicated with regards to taking another > > person's piece, etc - but using Ajax before the person actually has to > > make the move would be more sensible rather than making the person > > wait for the response for each move. > > > You could then maintain an object with 32 (16 black, 16 white) > > elements with arrays of "legal" moves. > > > My two cents :) > > > Jon --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Spinoffs" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/rubyonrails-spinoffs?hl=en -~----------~----~----~----~------~----~------~--~---
