Rs odds calc

by Andrejs Gubars

HTML

<h2>
  How many hours on average it will take to get a drop?
</h2>
<hr>
<div class="form">
<div class="form-field">
    <label for="hour">How many kills per hour?</label>
    <input type="text" id="hour" placeholder="300">
  </div>
  <div class="form-field">
    <label for="odds">What are the odds?</label>
    <input type="text" id="odds" placeholder="1/5000">
  </div>
  <div class="form-field">
      <button>Submit</button>
  </div>
</div>
<p class="helper"><small>Based on <span></span> people attempting...</small></p>
<div class="result">
  On average drop happened after: <u><strong class="value">N\A</strong></u> kills
</div>
<div class="result2">
  And it took on avergate: <u><strong class="value">N\A</strong></u> hours
</div>
<div class="result3">
  Longest was: 
  Shortest was<div class="short"></div>
</div>
<div class="error">
  Please make sure all the values are right.
</div>

SCSS

.info {
  margin-bottom: 10px;
}

h2 {
  margin-bottom: 10px;
}

hr {
  margin-top: 0;
}

.error {
  color: red;
  display: none;
  
  &.show {
    display: block;
  }
}

.form-field {
  margin-bottom: 10px;
  padding-bottom: 5px;

  
  label {
    display: block;
    cursor: pointer;
  }
  
  input {
    width: 200px;
    padding: 10px;
    font-size: 14px;
    border-radius: 5px;
    outline: 0;
  }
}

TypeScript

const odds = $('#odds');
const perhour = $('#hour');
const button = $('button');
const resultCont = $('.result .value');
const resultCont2 = $('.result2 .value');
const helper = $('.helper');
const error = $('.error');
const noOfAttempsToGetDrop = 20;

helper.find('span').text(noOfAttempsToGetDrop);

button.on('click', (e) => {
  try {
  	error.removeClass('show');
    const oddsValue = odds.val().split('/');
    const killsPerHour = perhour.val();

    const a = oddsValue[0];
    const b = oddsValue[1];
    const x = a/b;
    const t = 0;

    let averageArray = [];
    let isFound = false;
    let count = 0;
    let randomNumber;

    for(let i = 0; i < noOfAttempsToGetDrop; i++) {
      while(randomNumber !== 0) {
        randomNumber = Math.ceil(Math.random() / x) - 1;
        count++;
      }
      averageArray.push(count);
      randomNumber = -1;
      count = 0;
    }

    let sum = averageArray.reduce((previous, current) =>{
      return current += previous
    });
    let avg = sum / averageArray.length;
    const killsCount = Math.ceil(avg);
    const hoursTook = (killsCount/parseInt(killsPerHour)).toFixed(2);

    resultCont.html(killsCount);
    resultCont2.html(hoursTook);
  } catch(e) {
	 	error.addClass('show');
    throw e;
  }
});