Ahora sí que funciona. He ido cogiendo de un lado y de otro y al final me ha salido esto. A ver si podéis echarle un vistazo y me decís que tal
Código Javascript
:
Ver original<!DOCTYPE html>
<head>
<meta charset="utf-8" />
<title>Documento sin título</title>
<script>
var barajar = new Barajar ({
cartas: ['a', 'b', 'c', 'd'],
intervalo: 2000,
indice: -1,
mesa: '#mesa'
});
function Barajar(opt) {
if (!(this instanceof Barajar)) return new Barajar();
this.original = opt.cartas || [];
this.copia = [];
this.indice = opt.indice || -1;
this.intervalo = opt.intervalo || 1000;
this.mesa = opt.mesa || null;
this.i = 0;
}
Barajar.prototype.repartir = function() {
this.indice = (this.indice < 0) ? Math.floor(Math.random() * this.original.length) : (this.indice + Math.floor(Math.random() * (this.original.length-1) + 1)) % this.original.length;
var carta = this.original.splice(this.indice, 1);
this.copia.unshift(carta);
if (!this.original.length) {
this.original = Array.prototype.slice.call(this.copia, 0);
this.copia.splice(0, Number.MAX_VALUE);
}
document.querySelector(this.mesa).innerHTML += (this.i++ % 4 == 0) ? '<br />' + carta : ' | ' + carta;
setTimeout(this.repartir.bind(this), this.intervalo);
}
document.addEventListener('DOMContentLoaded', function() {barajar.repartir();}, false);
</script>
</head>
<body>
<div id="mesa"></div>
</body>
</html>