Skip welcome & menu and move to editor
Welcome to JS Bin
Load cached copy from
 
<!DOCTYPE html>
<html>
   <head>
      <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.0.7/angular.min.js"></script>
      <link href="http://getbootstrap.com/dist/css/bootstrap.css" rel="stylesheet" type="text/css" />
      <script src="http://getbootstrap.com/dist/js/bootstrap.js"></script>
      <script src="http://code.jquery.com/jquery-latest.js"></script>
      <meta charset=utf-8 />
      <title>JS Bin</title>
   </head>
   <body ng-App>
      <div class="container">
        <!-- Winning Numbers -->
         <div class="row" id="winningNumbers" ng-controller="winningNumbersController">   
           <div ng-repeat="winningNumber in winningNumbers" class="{{winningNumber.cls}} col-xs-2" id="{{winningNumber.id}}">{{winningNumber.number}}</div>   
         </div>
        <!-- Draw Numbers-->
         <div class="row" id="drawNumbers" ng-controller="drawNumbersController">
            <!-- repeat -->
           <span ng-repeat="drawNumber in drawNumbers">
             <div class="{{drawNumber.cls}} col-xs-2" id="{{drawNumber.id}}">{{drawNumber.number}}</div>
           </span>
         </div>        
         <div class="row">
            <hr>
         </div>
         <div id="results" class="row" ng-controller="resultsController">
            <table class="table table-striped">
               <thead>
                  <tr>
                     <th>Matching Numbers</th>
                     <th>Winning Draws</th>
                  </tr>
               </thead>
               <tbody>    
                  <tr ng-repeat="result in results">
                     <td>{{result.label}}</td>
                     <td id="">{{result.value}}</td>
                  </tr> 
               </tbody>
            </table>
            <hr>
         </div>
         <!-- Stats -->
         <div class="row">
            <table class="table table-striped">
               <thead>
                  <tr>
                     <th>Total Draws</th>
                     <th>Total Winning Draws</th>
                  </tr>
               </thead>
               <tbody>
                  <tr id="stats" ng-controller="statsController">
                    <td>{{totalDraws}}</td>
                     <td>{{totalWinningDraws}}</td>
                  </tr>
               </tbody>
            </table>
            <hr>
         </div>
         <!-- Controls -->
         <div class="row">
            <div class="pull-right">
               <button type="button" class="reset btn btn-default">Reset</button>
               <button type="button" class="draw btn btn-default" data-draw="1">Draw 1</button>
               <button type="button" class="draw btn btn-default" data-draw="100">Draw 100</button>
               <button type="button" class="draw btn btn-default" data-draw="500">Draw 500</button>
               <button type="button" class="draw btn btn-default" data-draw="1000">Draw 1000</button>
               <button type="button" class="draw btn btn-default" data-draw="5000">Draw 5000</button>
               <button type="button" class="autodraw btn btn-default">Auto Draw</button>
            </div>
         </div>
      </div>
   </body>
</html>
 
body{margin-top:20px}
.number { font-size:2em; font-weight:bold; color:#666666;
  }
.mega{}
.match{}
 
// noprotect
// mega millions 1 to 56 and 1 to 46
// powerball 1 to 59 and 1 to 35
games = [
  {
    game:'MEGA MILLIONS',
    numbers:56,
    extra:46
  },
  {
    game:"POWERBALL",
    numbers:59,
    extra:35
  }
];
var game = "MEGA MILLIONS";
var autoDrawing = false;
var autoDrawSpeed = 0;
function statsController($scope){
  $scope.totalDraws = 0;
  $scope.drawsPerSecond = 0;
  $scope.totalWinningDraws = 0;
  $scope.timeRunning =  0;
}
function winningNumbersController($scope){
  
  var arr = [];
    while(arr.length < 6){
      var randomnumber=Math.ceil(Math.random()*46);
      var found=false;
      for(var i=0;i<arr.length;i++){
        if(arr[i]==randomnumber){found=true;break;}
      }
      if(!found){arr[arr.length]=randomnumber;}
    }   
  
  $scope.winningNumbers = [
    {
      number: arr[0],
      id: "num1",
      cls: "number text-center"
    },
    {
      number:  arr[1], 
      id: "num2",
      cls: "number text-center"
    },
    {
      number:  arr[2],
      id: "num3",
      cls: "number text-center"
    },
    {
      number:  arr[3], 
      id: "num4",
      cls: "number text-center"
    },
    {
      number:arr[4], 
      id: "num5",
      cls: "number text-center"
    },
    {
      number: drawRandom(1, 27),
      id: "mega", 
      cls: "number mega text-center"
    }      
  ];
}
function drawNumbersController($scope){
  $scope.drawNumbers = [
    {
      number:0,
      id: "num1",
      cls: "number text-center"
    },
    {
      number:  0,
      id: "num2",
      cls: "number text-center"
    },
    {
      number:  0,
      id: "num3",
      cls: "number text-center"
    },
    {
      number:  0, 
      id: "num4",
      cls: "number text-center"
    },
    {
      number: 0,
      id: "num5",
      cls: "number text-center"
    },
    {
      number: 0,
      id: "mega",
      cls: "number mega text-center"
    }      
  ];
}
function resultsController($scope) {
    $scope.results = [{
        "label": "5 + MEGA",
        "value": 0,
        "id": "5-1"
    }, {
        "label": "5",
        "value": 0,
        "id": "5-0"
    }, {
        "label": "4 + MEGA",
        "value": 0,
        "id": "4-1"
    }, {
        "label": "4",
        "value": 0,
        "id": "4-0"
    }, {
        "label": "3 + MEGA",
        "value": 0,
        "id": "3-1"
    }, {
        "label": "3",
        "value": 0,
        "id": "3-0"
    }, {
        "label": "2 + MEGA",
        "value": 0,
        "id": "2-1"
    }, {
        "label": "2",
        "value": 0,
        "id": "2-0"
    }, {
        "label": "1 + MEGA",
        "value": 0,
        "id": "1-1"
    }, {
        "label": "1",
        "value": 0,
        "id": "1-0"
    }, {
        "label": "MEGA",
        "value": 0,
        "id": "0-1"
    }];
}
function drawRandom(min, max) {
    return Math.floor(Math.random() * (max - min + 1)) + min;
}
function pickWinningNumbers() {
    
    var arr = [];
    while(arr.length < 6){
      var randomnumber=Math.ceil(Math.random()*47);
      var found=false;
      for(var i=0;i<arr.length;i++){
        if(arr[i]==randomnumber){found=true;break;}
      }
      if(!found){arr[arr.length]=randomnumber;}
    }      
  
    var appElement = document.getElementById('winningNumbers');
    var $scope = angular.element(appElement).scope();
    $scope.$apply(function() {
        $scope.winningNumbers[0].number = arr[0];
        $scope.winningNumbers[1].number = arr[1];
        $scope.winningNumbers[2].number = arr[2];
        $scope.winningNumbers[3].number = arr[3];
        $scope.winningNumbers[4].number = arr[4];
        $scope.winningNumbers[5].number = drawRandom(1,27);
    });
}
function drawNumbers(){
   
  var numberMatchCount = 0;
  var megaMatchCount = 0;
  var isWinningDraw = false;
  var winArray = [];
  var drawArray = [];
  
  // Results Scope Reference
  var resultsScope = angular.element(document.getElementById('results')).scope();  
  // Winning Scope Reference
  var winningScope = angular.element(document.getElementById('winningNumbers')).scope();
  // Draw Scope Reference
  var drawScope = angular.element(document.getElementById('drawNumbers')).scope();  
  
  // Stats Scope Reference
  var statsScope = angular.element(document.getElementById('stats')).scope();   
   
  // Draw New Numbers
  drawScope.$apply(function() {
  
    
    
  var arr = [];
    while(arr.length < 6){
      var randomnumber=Math.ceil(Math.random()*47);
      var found=false;
      for(var i=0;i<arr.length;i++){
        if(arr[i]==randomnumber){found=true;break;}
      }
      if(!found){arr[arr.length]=randomnumber;}
    }      
    
    // Draw Numbers
    for(var i=0; i<5; i++){
      var newNum = arr[i];    
      drawScope.drawNumbers[i].number = newNum;          
      winArray.push(winningScope.winningNumbers[i].number);
      drawArray.push(newNum);    
    }  
    
    // Draw Mega    
    var newMegaNumber = drawRandom(1,27);
    drawScope.drawNumbers[5].number = newMegaNumber;
    
    // Check Mega Match
    if(newMegaNumber === winningScope.winningNumbers[5].number){  
     megaMatchCount = 1; 
    }
    // Check Numbers Match
    numberMatchCount = compare(winArray,drawArray);
    
    var result = numberMatchCount + '-' + megaMatchCount;
    
    for (i=0; i < resultsScope.results.length; i++){
      
      if(result === resultsScope.results[i].id){
        statsScope.totalWinningDraws++;
        resultsScope.results[i].value++;
        //console.log('win!');
        if (result === '4-1' || result === '5-0' || result === '5-1'){
          winArray.push(winningScope.winningNumbers[5].number);
          drawArray.push(newMegaNumber);
          console.log(winArray); 
          console.log(drawArray); 
        }
      }
    }
    
  });  
      
  // increment draw count
  $scope = angular.element(document.getElementById('stats')).scope();
  $scope.$apply(function() {
      $scope.totalDraws++;
  }); 
  
  // total wins
  
  
 
}
function compare(arr1, arr2) {
  var count = 0, numbers = {}, i;
  for(i = 0; i < arr1.length; i++) {
    numbers[arr1[i]] = (numbers[arr1[i]] || 0) + 1;
  }
  for(i = 0; i < arr2.length; i++) {
    if(numbers[arr2[i]] > 0) {
      count++;
      numbers[arr2[i]]--;
    }
  }
  return count;
}
function draw(draw){
    for(var i=0; i<draw; i++){  
      drawNumbers();
    }
}
function autoDraw(){
    drawNumbers();
}
$('.draw').click(function(){
  draw($(this).data('draw')); 
});
$('.autodraw').click(function(){
  if(!autoDrawing){
    $(this).addClass('btn-danger').removeClass('btn-default');
    autoDrawing = true;
    timer = setInterval(autoDraw,autoDrawSpeed);
  }
  else{
    clearTimeout(timer); 
    autoDrawing = false; 
    $(this).addClass('btn-default').removeClass('btn-danger');
  }
});
function reset(){
  
  // Results Scope Reference
  var resultsScope = angular.element(document.getElementById('results')).scope();  
 
  // Stats Scope Reference
  var statsScope = angular.element(document.getElementById('stats')).scope();   
    
  // Reset Draw Results
  for(var i=0; i<resultsScope.results.length; i++){   
    resultsScope.results[i].value = '0';
    console.log(resultsScope.results[i].value); 
  } 
  
  // Reset Draw count
  statsScope.$apply(function() {
      statsScope.totalWinningDraws = 0;
      statsScope.totalDraws = 0;
  }); 
}
$('.reset').click(function(){
  reset();  
  clearTimeout(timer); 
  $('.autodraw').addClass('btn-default').removeClass('btn-danger');
  autoDrawing = false; 
});
Output 300px

You can jump to the latest bin by adding /latest to your URL

Dismiss x
public
Bin info
krsunpro
0viewers