Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var rng = new PM_PRNG(View.snowState);
- var found = false;
- var snowballs = View.snowballsFound;
- var count = 0;
- /*
- Best case: finding the lowest possible value of [snowballsNeededLow]
- Collect a stack of [stackNeededHigh ~ stackNeededLow] snowballs when [snowballsNeededHigh ~ snowballsNeededLow] snowballs are found
- Note that snowballsNeededHigh + stackNeededHigh = snowballsNeededLow + stackNeededLow = total snowballs needed
- */
- var snowballsNeededLow=-1, stackNeededLow=-1, snowballsNeededHigh=-1, stackNeededHigh=-1;
- while (!found)
- {
- var t_snowballsNeededLow, t_stackNeededLow, t_snowballsNeededHigh, t_stackNeededHigh;
- var roll = rng.nextDouble();
- if (roll <= Math.pow(snowballs + count + 720, 2) / 9000000000)
- {
- t_snowballsNeededHigh = snowballs + count;
- t_stackNeededHigh = Math.ceil(Math.sqrt(roll * 9000000000)) - t_snowballsNeededHigh
- if (t_stackNeededHigh <= 0)
- {
- found = true;
- t_stackNeededHigh = 1
- }
- var diff = 720 - t_stackNeededHigh;
- if (count - diff <= snowballs)
- diff = count;
- t_snowballsNeededLow = t_snowballsNeededHigh - diff;
- t_stackNeededLow = t_stackNeededHigh + diff;
- if (snowballsNeededLow < 0 || snowballsNeededLow > t_snowballsNeededLow)
- {
- snowballsNeededLow = t_snowballsNeededLow;
- snowballsNeededHigh = t_snowballsNeededHigh;
- stackNeededLow = t_stackNeededLow;
- stackNeededHigh = t_stackNeededHigh;
- }
- }
- count++;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement