rem: for(var i = 0; i < 8; i++) if(!this.stacks[i].hasChildNodes() && this.stacks[i]!=target) spaces++; 
add: for(var i = 0; i != 8; i++) if(!this.piles[i].hasChildNodes() && this.piles[i]!=target) spaces++; 
context:   movePossible: function(card, target) {    // XXX destinaton should be usable in moves, but the moving algorithms are slightly broken    // count spaces, excluding the destination    var spaces = 0;    for(var i = 0; i < 8; i++)      if(!this.stacks[i].hasChildNodes() && this.stacks[i]!=target) spaces++;    var cells = this.countEmptyCells();    // this is the number we can move using the most complex algorithm    var numCanMove = (cells+1) * (1 + (spaces * (spaces + 1) / 2));    // count number of cards to move    var numToMove = 0;    for(var next = card; next; next = next.nextSibling) numToMove++;    //    return numToMove<=numCanMove;  },
meta: 3385	/local1/tlutelli/issta_data/temp/all_js/javascript/2006_temp/2006/3385/15f3df693ddf02fb9ee6a2662189220868368b23/freecell.js/clean/freecell.js