简体   繁体   中英

Ensuring user completes given word before moving on

In my drag and drop game, letters are dragged on to the words in the grid with the aim of completing them all and revealing the image behind. The user chooses a word to spell by clicking the "click me!" button. This then marks a word at random with a style called ".spellword".

I need it so that the letters revert away from other words, other than the one they are currently on - highlighted by the click me button.

Here is the script that makes the button choose a word at random and give it the ".spellword" style.

 $('#pickNext').click(function() {
// remove the class from all td's
$('td').removeClass('spellword');
// pick a random word
rndWord = shuffledWords.sort(function() {
    return 0.8 - Math.random();
})[0];
// apply class to all cells containing a letter from that word
$('td[data-word="' + rndWord + '"]').addClass('spellword');
});

Here is the revert I have applied to my draggables already...

$('.drag').draggable({

     helper: 'clone',
     snap: '.drop',
     grid: [60, 60],
     revert: function(droppable) {
         if (droppable === false) {
             return true;
         }

         else {

             return false;
         }
    }
});

Thanks!

http://jsfiddle.net/bmgonzal/uu99V/

This fiddle reverts the letter back unless it is dropped into the first cell of the word to be spelt and is the correct letter.

I have done it by creating the variable "validDrop" like so..

var validDrop = $('.drop-box.spellword[data-letter='+ $(this).attr('data-letter') +']');
        validDrop.addClass('drop');

Hope it helps

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM