Created
August 27, 2016 19:23
-
-
Save randbrown/93f105dfd3bae61fb17d7e389f6754a2 to your computer and use it in GitHub Desktop.
Pokemon Go Trade/Evolution Calculator
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<html> | |
<head> | |
</head> | |
<body> | |
<h1> | |
Pokemon Trade/Evolve Calculator | |
</h1> | |
<label for="pokemon"># of pokemon</label> | |
<input type="number" name="pokemon" id="pokemon" value="19"> | |
<br/> | |
<label for="candy"># of candy</label> | |
<input type="number" name="candy" id="candy" value="186"> | |
<br/> | |
<label for="evcost">cost per evolution</label> | |
<input type="number" name="evcost" id="evcost" value="12"> | |
<br/> | |
<button type="button" onclick="calc()">Calculate</button> | |
<div id="log"> | |
</div> | |
<script type="text/javascript"> | |
function calc() { | |
var p = document.getElementById('pokemon').value; | |
var c = document.getElementById('candy').value; | |
var e = document.getElementById('evcost').value; | |
var x = 0; | |
var div = document.getElementById('log'); | |
div.innerHTML = ''; | |
log(`Starting with ${p} pokemon and ${c} candies`); | |
var curEvolves = 0; | |
var pStart = p; | |
var maxLoops = 1000; | |
var currLoop = 0; | |
while (p > 0 && currLoop++ < maxLoops) { | |
// log(`--------------------`) | |
// log(`Have ${c} candy, ${p} pokemon`); | |
if (c < e) { | |
//log(`Num candies ${c} is not enough to evolve, need to trade in some`); | |
if ((p + c) > e) { | |
p -= 1; | |
c += 1; | |
//log(`traded one pokemon`); | |
} | |
else { | |
//log(`not enough pokemon, ending loop`); | |
//log(`trading in ${p} left over pokemon`); | |
c += p; | |
p = 0; | |
break; | |
} | |
} | |
curEvolves = Math.min(Math.floor(c / e), p); | |
x += curEvolves; | |
c -= (curEvolves * e); | |
// we get one candy back for evolve! | |
c += curEvolves; | |
//log(`evolved ${curEvolves} pokemon, have ${c} candy left`); | |
// trade in all evolved ones get 2 (1 for evolve + 1 for trade) | |
c += curEvolves; | |
p -= curEvolves; | |
//log(`traded ${curEvolves} pokemon and now have ${c} candy`); | |
} | |
var numTrade = pStart - p - x; | |
log(`---------RESULT------------`); | |
log(`Trade ${numTrade} in, Evolve ${x} pokemon, trading as you evolve, have ${p} pokemon and ${c} candy remaining`); | |
} | |
function log(s) { | |
console.log(s); | |
var div = document.getElementById('log'); | |
div.innerHTML = div.innerHTML + '<br/>' + s; | |
} | |
</script> | |
</body> | |
</html> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment