rem: if(this.canMoveToFoundation(card)) return this.foundation;  var num = card.parentNode.num; for(var i = 1; i != 4; i++) { var next = this.piles[(i+num) % 4]; if(!next.hasChildNodes()) return next; } 
add: const f = this.foundation; if(f.mayAddCard(card)) return f;  for(var p = card.parentNode, p2 = p.next; p2 != p; p2 = p2.next) if(!p2.hasChildNodes()) return p2; 
context:   getBestMoveForCard: function(card) {    if(this.canMoveToFoundation(card)) return this.foundation;    // find the next empty pile    var num = card.parentNode.num;    for(var i = 1; i != 4; i++) {      var next = this.piles[(i+num) % 4];      if(!next.hasChildNodes()) return next;    }    return null;  },
meta: 3385	/local1/tlutelli/issta_data/temp/all_js/javascript/2006_temp/2006/3385/05e21043701a5724e2c4368f9cf23b22050e0bda/acesup.js/clean/acesup.js