Lotto losowania - puść X losowań na chybił trafił i sprawdź w jakim stopniu losy pokryją się ze zwycięskimi numerami.
// DEMO: https://jsfiddle.net/nmgh0xuL/3/
var lotto = {
config: { wyniki: [] , losowania: 0 },
kupony : {},
podsumowanie: { 0: 0, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0 },
losuj: function( losowanie ) {
var cyfry = [],
kupon = {},
losowanie = losowanie || 0;
for( var i = 0; i < 6; i++ ) {
var los = Math.floor( ( Math.random() * 49 ) + 1 );
while( cyfry.indexOf(los) !== -1 ) {
los = Math.floor( ( Math.random() * 49 ) + 1 );
}
cyfry.push( los );
}
function porownaj(a, b) {
return a - b;
}
kupon.wylosowane = cyfry.sort( porownaj );
kupon.wynik = 0;
this.kupony[losowanie] = kupon;
return;
},
losowania: function() {
for( var i = 0; i < this.config.losowania; i++ ) {
this.losuj( i );
}
return;
},
sprawdzLos: function( numerLosowania ) {
for( var i = 0; i < 6; i++ ) {
if( this.config.wyniki.indexOf( this.kupony[numerLosowania].wylosowane[i] ) !== -1 ) {
this.kupony[numerLosowania].wynik += 1;
}
}
switch( this.kupony[numerLosowania].wynik ) {
case 0:
this.podsumowanie[0] += 1;
break;
case 1:
this.podsumowanie[1] += 1;
break;
case 2:
this.podsumowanie[2] += 1;
break;
case 3:
this.podsumowanie[3] += 1;
break;
case 4:
this.podsumowanie[4] += 1;
break;
case 5:
this.podsumowanie[5] += 1;
break;
case 6:
this.podsumowanie[6] += 1;
break;
}
},
wynik: function() {
for( var i = 0; i < this.config.losowania; i++ ) {
this.sprawdzLos( i );
}
},
pokaz: function() {
var table = document.createElement("TABLE"),
color;
document.body.appendChild( table );
table.innerHTML = "<tr>"+
"<td><b>Nr losowania</b></td>"+
"<td><b>Los</b></td>"+
"<td><b>Wynik</b></td>"+
"</tr><tbody id='lista'></tbody>";
var wynikiKomorka = document.getElementById("lista");
for( var i = 0; i < this.config.losowania; i++ ) {
if( this.kupony[i].wynik > 2 ) {
color = ( this.kupony[i].wynik > 3 ) ? "style='color: red;'" : null;
wynikiKomorka.insertAdjacentHTML('beforeend', "<tr "+color+">"+
"<td>"+i+"</td>"+
"<td>"+this.kupony[i].wylosowane+"</td>"+
"<td>"+this.kupony[i].wynik+"</td>"+
"</tr>");
}
}
document.body.insertAdjacentHTML('beforeend', "<hr size='1' /> <b>Brak pokrycia: </b>"+this.podsumowanie[0]+"<br />"+
"<b>Jedynki: </b>"+this.podsumowanie[1]+"<br />"+
"<b>Dwójki: </b>"+this.podsumowanie[2]+"<br />"+
"<b>Trójki: </b>"+this.podsumowanie[3]+"<br />"+
"<b>Czwórki: </b>"+this.podsumowanie[4]+"<br />"+
"<b>Piątki: </b>"+this.podsumowanie[5]+"<br />"+
"<b>Szóstki: </b>"+this.podsumowanie[6] );
},
init: function( config ) {
var config = config || {};
this.config.wyniki = config.wyniki;
this.config.losowania = config.losowania;
this.losowania();
this.wynik();
this.pokaz();
return;
}
}
lotto.init({
wyniki : [ 2, 4, 18, 35, 40, 41 ],
losowania: 1000
});