Okay, that's doable. I'd have to keep an array of legal droppables for each piece before each move. After each move, that pieces legal droppables would have to be updated. Doable. I might go that route.
On 7/5/07, Diodeus <[EMAIL PROTECTED]> wrote: > > > You could also change the list of droppables, so that the piece could > simply not be dropped on an illegal square. You would have to fetch > (or determine) the list of legal target squares before the move > begins. > > 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 -~----------~----~----~----~------~----~------~--~---
