piotrkabacinski
1/17/2016 - 12:29 PM

Lotto losowania - puść X losowań na chybił trafił i sprawdź w jakim stopniu losy pokryją się ze zwycięskimi numerami.

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
});