1
hyq 2012-10-21 11:40:14 +08:00
http://gist.github.com/3925580
不知道这个是不是你想要的 |
2
54sword 2012-10-21 12:11:23 +08:00
//true 正面, false 反面
var card = ['false', 'false', 'false', 'false']; var index = 0; function startTurnCard() { if (index == card.length) index = 0; var time = 5000 * index; setTimeout(function() { card[index] = true; console.log((index + 1) + "卡片被翻到正面"); setTimeout(function() { card[index] = false; console.log((index + 1) + "卡片被翻回反面"); index++; startTurnCard(); }, 5000); }, 5000 + time); } startTurnCard(); 也尝试写了一下,看看是否正确。 |
3
zhangxiao 2012-10-21 13:44:21 +08:00
// 第一个函数,负责翻一张卡片,参数是卡片
f1(card_id) { //翻卡片 } // 第二个函数,负责每隔5s调用第一个函数,参数是卡片和调用次数(这里是2) f2(card_id, times) { for i in [0..times] f1(card_id) sleep(5) } // 第三个函数,负责每隔10s调用第二个函数,参数是卡片们 f3(card_ids) { while true for i in [0..card_ids.length] f2(card_ids[i]) } 都是伪代码,逻辑应该能表示清楚了 |
4
zhangxiao 2012-10-21 13:45:22 +08:00
呃...上面的f3里忘记sleep(10)了
|
5
Dummy OP |
7
Dummy OP @hyq 以下是你的程序算出的结果:
5.001 "卡片0正面" //正确 10.003 "卡片0反面" //正确 20.005 "卡片1正面" //正确 25.006 "卡片1反面" //正确 40.007 "卡片2正面" //错误,应该是35 45.008 "卡片2反面" //上一个不正确,这一个自然就错了,应该是 40 65.009 "卡片3正面" //应该是 50,原因同上。 |
10
hyq 2012-10-21 20:18:40 +08:00
5 "卡片0正面"
10.001 "卡片0反面" 20.001 "卡片1正面" 25.002 "卡片1反面" 35.002 "卡片2正面" 40.002 "卡片2反面" 50.002 "卡片3正面" 55.002 "卡片3反面" 这个结果,不知道你是指哪里有问题 |
11
tshwangq 2012-10-21 22:25:21 +08:00
思路,牌+空档共有3个状态,4张牌12个状态也就是12位
var cards = 0x6db,seq = 0,bits = 12; window.setInterval(function () { seq++; if ((cards & (0x1 << (seq-1) % bits)) > 0) { console.debug(seq * 5 + ":" + ~~(seq / 3)%4 + "/" + ((seq % 2) ^ ( ~~(seq / 3)%2))); } else { console.debug(seq * 5 + ":"); } }, 500); |