Código Javascript :
var Bingo = {
min: 01,
max: 90,
numerosSorteados: new Array(),
windowDocument: null,
init: function(parent){
this.windowDocument = parent;
this.bind();
},
bind: function(){
$("#boton-borrar-todo").click(function(){
Bingo.botonBorrarTodoAction();
});
$("#boton-jugar").click(function(){
Bingo.botonJugarAction();
});
$(".texto").click(function(){
Bingo.seleccionarTipoJuego(this);
});
$("#boton-sortear").click(function(){
Bingo.jugar();
});
$(".wp-pagenavi-span").click(function(){
Bingo.seleccionarBolaAction($('#' + this.id));
});
},
seleccionarTipoJuego: function(boton){
if(!$(boton).hasClass( "texto-seleccionado" )){
$(boton).addClass('texto-seleccionado', 1000, 'easeOutQuart');
var aux = $(boton).attr('id');
switch(aux){
case 'boton-terna':
$('#boton-linea').removeClass('texto-seleccionado', 500, 'easeOutQuart');
$('#boton-bingo').removeClass('texto-seleccionado', 500, 'easeOutQuart');
break;
case 'boton-linea':
$('#boton-terna').removeClass('texto-seleccionado', 500, 'easeOutQuart');
$('#boton-bingo').removeClass('texto-seleccionado', 500, 'easeOutQuart');
break;
case 'boton-bingo':
$('#boton-terna').removeClass('texto-seleccionado', 500, 'easeOutQuart');
$('#boton-linea').removeClass('texto-seleccionado', 500, 'easeOutQuart');
break;
}
} else {
$(boton).removeClass('texto-seleccionado', 1000, 'easeOutQuart');
}
},
botonBorrarTodoAction: function(){
window.top.location.reload();
},
botonJugarAction: function(){
bootbox.dialog({
message: "<p>Quiere activar<br/>el modo automatico</p>",
title: "",
buttons: {
danger: {
label: "No",
className: "btn-danger",
callback: function() {
}
},
main: {
label: "Si",
className: "btn-primary",
callback: function() {
bootbox.hideAll();
Bingo.numerosSorteados = new Array();
// ---------- Aqui el modo automatico con el retardo
// --- este es el body---- <input class="botonStop" type="button" id="stop" value="Pausar">
// --- <input class="botonAuto" type="button" id="boton-jugar" value="Automatico">
// --- <input class="botonStart" type="button" id="start" value="Play">
var milisegundos = 3000;
var x = 0;
$(document).ready(function() {
$(":button#start").bind("click", function() {
timer = setInterval('Bingo.jugar()', milisegundos);
});
$(":button#stop").bind("click", function() {
timer = clearInterval(timer);
});
});
// -------------------
Bingo.jugar();
}
}
}
});
},
anularBola: function(numero){
$('#bola-actual').html('-');
$('#bola-salio-'+numero).remove();
$('#bola-'+numero).removeClass('wp-pagenavi-span-bola-salio');
$('#bola-'+numero).addClass('wp-pagenavi-span');
},
seleccionarBolaAction: function(bola){
if(bola.hasClass( "wp-pagenavi-span-bola-salio" )){
console.log("La bola seleccionada YA SALIO!");
}
else{
var n = bola.html();
console.log('Numero marcado: ' + n);
this.generarBolaGigante(n);
this.marcarBolaYaSalio(bola);
this.numerosSorteados.push(n);
console.log(this.numerosSorteados);
}
},
marcarBolaYaSalio: function(bola){
bola.addClass('wp-pagenavi-span-bola-salio', 1000, 'easeOutExpo',
function(){
bola.removeClass('wp-pagenavi-span');
var numero = bola.html();
$('#bola-actual-flotante').remove();
$('#ultimas-6').prepend('<span class="wp-pagenavi-span-bola-salio" onclick="Bingo.anularBola(\''+numero+'\');" id="bola-salio-'+numero+'">'+numero+'</span>');
}
);
},
generarBolaGigante: function(numero){
$('#bola-actual').html(numero);
$( window.document.body ).prepend('<span class="bola-actual-flotante" id="bola-actual-flotante">'+numero+'</span>');
$( ".bola-actual-flotante" ).position({
of: $('#left-content')
});
},
generarNumeroAleatorio: function() {
// -----Aqui añadido 1 para evitar la repeticion
while (repe != false)
// -----
var n = Math.floor(Math.random() * (Bingo.max - Bingo.min + 01)) + Bingo.min;
if(n < 10){
n = "0" + n.toString();
// -----Aqui añadido 2 para evitar la repeticion
var repe:Boolean = repetido(n); } Bingo.numerosSorteados.push(n); return n;
// -----
}
// -----Aqui añadido 3 para evitar la repeticion
function repetido(n:Number):Boolean { var repe:Boolean = false; for (i=0; i<Bingo.numerosSorteados.length; i++) { if (n == Bingo.numerosSorteados[i]) { repe = true; } } return repe; }
// -----
console.log('Numero generado: ' + n.toString());
// -----Aqui añadido para el audio
document.all.sound.src =n +'.mp3';
console.log('Mi audio es '+n+'.mp3');
// -----
return n.toString();
},
jugar: function(){
console.log(_.size(Bingo.numerosSorteados));
if(_.size(Bingo.numerosSorteados) >= (Bingo.max)){
Bingo.showMensajeJuegoFinalizado();
return;
}
var n = Bingo.generarNumeroAleatorio();
if(_.contains(Bingo.numerosSorteados, n)){
// controlar que aqui si ya tiene todos los numeros no genere infinitamente
console.log('Numero sorteado ya salio: ' + n);
Bingo.jugar();
}
else{
Bingo.seleccionarBolaAction($('#bola-' + n));
}
},
showMensajeJuegoFinalizado: function(){
bootbox.dialog({
message: "<p>Todos los números ya fueron sorteados.<br/>Desea LIMPIAR la pizarra?</p>",
title: "El Juego a finalizado",
buttons: {
danger: {
label: "No",
className: "btn-danger",
callback: function() {
}
},
main: {
label: "Si, limpiar",
className: "btn-primary",
callback: function() {
bootbox.hideAll();
Bingo.botonBorrarTodoAction();
}
}
}
});
}
};
$( window.document ).ready(function() {
Bingo.init(this);
});El script esta funcionando perfectamente. solo le queda que no repita numeros, y al ser posible, suprimir el botom automatico y que se active con el boton start (Play) de modo que active el "setInterval" y la opcion "Si" al mismo tiempo.
script Para el modo automático:
botonJugarAction: function(){
bootbox.dialog({
message: "<p>Quiere activar<br/>el modo automatico</p>",
title: "",
buttons: {
danger: {
label: "No",
className: "btn-danger",
callback: function() {
}
},
main: {
label: "Si",
className: "btn-primary",
callback: function() {
bootbox.hideAll();
Bingo.numerosSorteados = new Array();
// ---------- Aqui el modo automatico con el retardo
var milisegundos = 3000;
var x = 0;
$(document).ready(function() {
$(":button#start").bind("click", function() {
timer = setInterval('Bingo.jugar()', milisegundos);
});
$(":button#stop").bind("click", function() {
timer = clearInterval(timer);
});
});
Bingo.jugar();
}
}
}
});
},
// -------------------
Los Botones Para el modo automático:
<input class="botonStop" type="button" id="stop" value="Pausar">
<input class="botonAuto" type="button" id="boton-jugar" value="Automatico">
<input class="botonStart" type="button" id="start" value="Play">
El script Para inpedir la repeticion de números:
generarNumeroAleatorio: function() {
// -----Aqui añadido 1 para evitar la repeticion
while (repe != false)
// -----
var n = Math.floor(Math.random() * (Bingo.max - Bingo.min + 01)) + Bingo.min;
if(n < 10){
n = "0" + n.toString();
// -----Aqui añadido 2 para evitar la repeticion
var repe:Boolean = repetido(n); } Bingo.numerosSorteados.push(n); return n;
// -----
}
// -----Aqui añadido 3 para evitar la repeticion
function repetido(n:Number):Boolean { var repe:Boolean = false; for (i=0; i<Bingo.numerosSorteados.length; i++) { if (n == Bingo.numerosSorteados[i]) { repe = true; } } return repe; }
// -----
