有2个按键,一个是重置,一个是抽牌
谢谢各位帮忙!
重置时shuffle一次 每次抽时pop一个
var cards = ['A','B','C','D'];
function pickOneCard() {
var i = cards.length;
if (i) {
var random = Math.floor(Math.random() * i);
var picked = cards.splice(random, 1).toString();
alert(picked);
} else {
alert('牌抽完了!');
}
}
$('#pick').click(pickOneCard);
$('#reset').click(function() {
cards = ['A','B','C','D'];
});
放在一个数组,随机排序,然后shift/pop,每次拿走第一个或最后一个。
用一个简易的随机数组吧
var cards = ['A', 'B', 'C', 'D'];
function randomSort () {
return Math.random() > 0.5 ? -1 : 1;
}
cards.sort(randomSort).forEach(function (item) {
console.log(item);
});
四张牌存于一个数组中
每次random 0~length-1
splice出选中的那个数
重复四次
=================
我也不重新开个回答了,基于这个回答来做吧;edit by kumfo
上面提到四张牌存于一个数组中,应该还要有一个存是否选中的数组。
一个存储选中的数组
random的时候判断一下是否已经选中了,如果选中了重新random,直到获取到未选中的
===
@kumfo 请看清楚再作修改好吗
你的做法太低效了,我将选中的数splice出去,不用像你那么麻烦