//逐个检查
var tingMaps = {};
console.log(tingMaps == {});
for (var i = 0; i < seatData.holds.length; ++i) {
var t = seatData.holds.shift();
seatData.countMap[t]--;
if (tingMaps[t] == null) {
cc.vv.mjutil.updateTingMap(seatData, [31]);
tingMaps[t] = seatData.tingMap;
}
seatData.holds.push(t);
seatData.countMap[t]++;
}
console.log(tingMaps);
逐个检查听牌。
其实MJ听牌的思路捋顺了很简单的。
首先是手里有十四张牌,打那张牌就模拟把哪一张牌去掉就可以了,这时遍历14张,模拟去掉任意一张牌,剩13张牌。
然后再从34张牌里面把每一张牌都尝试添加到拥有的牌里面,这时就是14张牌了。
这时看补得这张牌能不能胡,如果能胡,那么这张牌就是在打出牌后听牌要胡的牌。循环遍历34次,看所有能胡的牌。
shift()去掉首牌,然后检查是否听牌胡牌,然后检查完后还原,添加到数组的最后面用push()方法。