Skip welcome & menu and move to editor
Welcome to JS Bin
Load cached copy from
 
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>JS Bin</title>
</head>
<body>
  
  <input id="one0" type="text">
  <input id="one1" type="text">
  <input id="one2" type="text">
  <input id="one3" type="text">
  <button id="result" onclick="go()">Click Here</button> 
  
  <canvas id="myCanvas" width="800" height="500"></canvas>
  
</body>
</html>
 
body {
  margin: 0px;
  padding: 0px;
}
input{
  width: 100px;
  height: 30px;
}
 
var arr=[];
var x=[];
var y;
for(var i=0;i<4;i++){
  arr[i]=5*(i+1);
}
var canvas = document.getElementById('myCanvas');
var context = canvas.getContext('2d');
var centerX = 0;
var centerY = 90;
var radius = 70;
var temp;
var xar=[];
var constructed = [];
for(var i=0;i<4;i++){
  centerX=centerX+100;
  context.beginPath();
  context.arc(centerX, centerY, 50, 0, 2 * Math.PI, false);
  context.fillStyle = 'green';
  context.fill();
  context.lineWidth = 5;
  context.strokeStyle = '#003300';
  context.stroke();
  context.fillStyle="black";
  context.fillText(arr[i],centerX,centerY);
}
function go(){
  for(i=0; i<4; i++){
    temp=parseInt(document.getElementById("one"+i).value);
    xar.push(temp);
  }
  
  // My part START
  var filtered = xar.filter(function(number){
    return contains(arr, number);
  });
  arr.forEach(function(el, key) {
    filtered.forEach(function(cel,ckey){
      if (el === cel){
        constructed[key] = el;
      }
    })
  });
  
  var dif = difference(xar, constructed);
    
  for(var k=0; k<4; k++){
    var cval = constructed[k];
    if (cval === undefined){
      constructed[k] = dif[0];
      dif.shift();
    }
  }
  // My part END
  
  var xnext=0;
  
  for(var i=0; i<4; i++){
    xnext=xnext+100;
    context.beginPath();
    context.arc(xnext, 190, 50, 0, 2 * Math.PI, false);
    context.fillStyle = 'green';
    context.fill();
    context.lineWidth = 5;
    context.strokeStyle = '#003300';
    context.stroke();
    context.fillStyle="black";
    context.fillText(constructed[i],xnext,190);
    if(xar[i]==arr[i]){
      context.arc(xnext, 190, 50, 0, 2 * Math.PI, false);
    }
  }
}
//// My Helpers
function contains(a, obj) {
    var i = a.length;
    while (i--) {
       if (a[i] === obj) {
           return true;
       }
    }
    return false;
}
function difference(a1, a2) {
  var result = [];
  for (var i = 0; i < a1.length; i++) {
    if (a2.indexOf(a1[i]) === -1) {
      result.push(a1[i]);
    }
  }
  return result;
}
Object.prototype.getKeyByValue = function( value ) {
    for( var prop in this ) {
        if( this.hasOwnProperty( prop ) ) {
             if( this[ prop ] === value )
                 return prop;
        }
    }
}
Output

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

Dismiss x
public
Bin info
mihailomisicpro
0viewers