Jump to content
Forum Shutdown 28/7/2023 Read more... ×

Istrilyin

Players
  • Content Сount

    8
  • Joined

  • Last visited

  • Battles

    10979
  • Clan

    [GOT]

Everything posted by Istrilyin

  1. Opened 10 containers - tier V mission. Bought 3 super containers - junk. Bought 5 containers - junk. Really... giving up on directive 3. Feels pretty bad.
  2. Save stuff below the line as an html file, and run the numbers to see your chances of getting that rank! For rank 10 to 1 only... Hope this editor actually supports this stuff. Feel free to improve upon, edit, flame, host, whatever. It ran nicely on Chrome, didn't test it anywhere else as it's late in the afternoon already. Just needed a break from x-layer programming and felt like hacking a bit with html/javascript. %<---------------------------------------------------line------------------------------------------------ <!DOCTYPE HTML> <html> <head> <style> table { border-spacing:0px; border-collapse:separate; border:1px solid black; } td { margin:0px; padding:0px; vertical-align:bottom; } </style> </head> <body> <h1>Ranked Battle Progress Estimation</h1> <form onsubmit="try { estimate(); } catch (err) { alert(err.message); } return false;"> <p> My name is <input type='text' id='fldName' maxlength='30'/>. <br/> I am rank <select id='fldCurrentRank'> <option>2</option><option>3</option><option>4</option><option>5</option> <option>6</option><option>7</option><option>8</option><option>9</option> <option selected>10</option> </select> with <select id='fldCurrentStars'> <option>0</option><option>1</option><option>2</option><option>3</option><option>4</option> </select> stars... <br/> Reaching rank <select id='fldTargetRank'> <option selected>1</option> <option>2</option><option>3</option><option>4</option><option>5</option> <option>6</option><option>7</option><option>8</option><option>9</option> </select> is what I'm dreaming off! <br/> Probably I can play <input type='text' id='fldGamesToPlay' maxlength='4' size='4' value='200'/> more games this season. <br/> My winrate in the rank 10-6 bracket is like <input type='text' id='fldWinrate10' maxlength='8' size='3' value='51'/>%. <br/> In the rank 5-2 bracket? Well let's say <input type='text' id='fldWinrate5' maxlength='8' size='3' value='49'/>%. <br/> Okay Istrilyin, show me, <input type=submit onclick="return checkForm()" value='what are my odds'/>? </p> </form> <div id="consoleDiv"> </div> <table width="100%"> <tr id="timeCurveRow"> </tr> </table> <table width="100%"> <tr id="statsRow"> <td style='color:green;text-align:left;'><span id='nameSucces'></span> SUCCES CHANCE: <span id='succesChance'></span>%</td> <td style='color:red;text-align:right;'><span id='nameFail'></span> FAIL CHANCE: <span id='failChance'></span>%</td> </tr> </table> <script> var name, currentRank, currentStars, targetRank, gamesToPlay, winrate10, winrate5; function checkForm() { var message = ''; name = document.getElementById('fldName').value; currentRank = parseInt(document.getElementById('fldCurrentRank').value); currentStars = parseInt(document.getElementById('fldCurrentStars').value); targetRank = parseInt(document.getElementById('fldTargetRank').value); gamesToPlay = parseInt(document.getElementById('fldGamesToPlay').value); winrate10 = parseFloat(document.getElementById('fldWinrate10').value); winrate5 = parseFloat(document.getElementById('fldWinrate5').value); if (name == null || name.length == 0) { name = 'NOOB'; } else { name = name.toUpperCase(); } if (isNaN(gamesToPlay)) { alert('How many games you think you will play? Like 200 or so.'); return false; } if (gamesToPlay > 1500) { message += 'We assume 1500 more games!\n'; gamesToPlay = 1500; } if (gamesToPlay < 1) { message += 'We assume one game, okay?\n'; gamesToPlay = 1; } if (isNaN(winrate10)) { alert('Fill in the winrates... Like 50.5 or so...'); return false; } if (winrate10 > 100) { message += 'Guess winrate cannot be higher then 100...\n'; winrate10 = 100; } if (winrate10 < 0) { message += 'Guess winrate cannot be lower then 0...\n'; winrate10 = 0; } if (isNaN(winrate5)) { alert('Fill in the winrates... Like 48.5 or so...'); return false; } if (winrate5 > 100) { message += 'Guess winrate cannot be higher then 100...\n'; winrate5 = 100; } if (winrate5 < 0) { message += 'Bracket 5-2 is not THAT hard! Ok we assume 0...\n'; winrate5 = 0; } document.getElementById('fldGamesToPlay').value = gamesToPlay; document.getElementById('fldWinrate10').value = winrate10; document.getElementById('fldWinrate5').value = winrate5; if (message != '') { alert(message); } return true; } function prepareDisplay() { var timeCurve = document.getElementById('timeCurveRow'); timeCurve.innerHTML = ''; for (var i=1; i <= gamesToPlay; i++) { timeCurve.innerHTML += "<td title='Odds of getting it in " +i+ " games.'>" + "<div style='width:100%;background:green;' id='t" +i+ "'></div>" + "</td>"; } for (var i=targetRank+1; i <= 10; i++) { timeCurve.innerHTML += "<td title='Odds of getting stuck at rank " +i+ ".'>" + "<div style='width:100%;background:red;' id='r" +i+ "'></div>" + "</td>"; } document.getElementById('nameSucces').innerHTML = name; document.getElementById('nameFail').innerHTML = name; return; } function estimate() { prepareDisplay(); var fails = 0; for (var x=1; x <= 10 * gamesToPlay; x++) { var rank = currentRank; var stars = currentStars; for (var t=1; t <= gamesToPlay; t++) { var won = Math.random() * 100.0 < (rank > 5 ? winrate10 : winrate5); if (won) { stars++; if ((stars >= 4 && rank > 5) || (stars >= 5 && rank <= 5)) { rank--; stars = 1; if (rank <= targetRank) { updateStats(fails, x); if (upHeightAndCheckForDone('t' + t)) { return; } break; } } } else { stars--; if (stars < 0) { if (rank == 10) { stars = 0; } else { rank++; stars = rank > 5 ? 3 : 4; } } } } if (rank > targetRank) { fails++; updateStats(fails, x); if (upHeightAndCheckForDone('r' + rank)) { return; } } } } function updateStats(fails, runs) { document.getElementById('succesChance').innerHTML = (100.0 * (runs - fails) / runs); document.getElementById('failChance').innerHTML = (100.0 * fails / runs); } function upHeightAndCheckForDone(id) { var div = document.getElementById(id); var newHeight = parseInt(div.style.height) + 1; div.style.height = newHeight + 'px'; return (newHeight >= 400); } </script> </body> </html>
  3. Istrilyin

    Calculate your Ranked Battle Chances!

    Sure, but now see how long it takes them. Noobs with a winrate of 48% can climb from rank 10 to rank 1, surely, but after 500 battles only half of them will have made it. 47%? 650 battles. 47% but more like 45% after reaching the 2-5 bracket? Think 1000 battles... Half of them are still sailing around. On the other hand, 52%? 245 battles. 55%? 175 battles. That's what the tool is for.
  4. Istrilyin

    Calculate your Ranked Battle Chances!

    You're right about that. The exact distribution is a less obvious mathematical problem. Simulating with a random number generator is quick and easy. If you get odds of 62% to reach the desired rank in 300 battles, the next run may give 60%. Of course one can make the script run longer by tweaking it, then it becomes more accurate. However it's about the ballpark figure that's otherwise hard to estimate. And that ballpark figure is, if I didn't make some dumb mistake, pretty useful. Also, it gives you some idea about the spread. Like how likely it is that instead of 200 battles it will take you 80 or 400.
  5. Istrilyin

    Calculate your Ranked Battle Chances!

    Of course! Noobs cannot be tolerated under any circumstance anywhere. :-) The idea is to give the average player an estimate of the return on (time) investment. Removed two debug lines in the script - sorry for the alert spam if you saved it before that.
  6. Istrilyin

    Ranked Battles Openings: New Dawn

    This amount of work to analyze it must have been enormous! What is very relevant, however, is the number of DD's per team (can be 1 vs 2 also), and presence / absence of carriers... Including that would produce so many variations that this approach will kind of blow up in your face (may already do so without). Example: with 2 DD's and a carrier, you might send the DD's to A and C while the airforce goes B (preventing cap of it by scouting any enemy DD). One of the DD's hopefully caps whatever the enemy is not going to, the other DD hopefully is able to run away, and the main fleet and bombers hopefully make a kill or two against that half of the enemy fleet around B. Sooooo... a bunch of general guidelines and examples is, IMHO, the right way to approach this map. Basic principles are, for example, that you want the main fleet concentrated and able to fire at two cap circles if possible. You want DD's to concentrate on capping/decapping. Etc etc. I appreciate the thread!
  7. Istrilyin

    Ranked Battles Openings: Fault Line

    This is indeed the truth. I'm playing Mutzuki mostly and always try to get the whole team to support me going '2' on your map. That gives the most open space (least islands blocking fire lanes) to support the capture of A (from the south) or B (from the north). If the fleet stays grouped behind the destroyer(s), it's a good recipe for a win. I don't see any counter strategy. If both teams play like this, it's a matter of slugging it out in the center afterwards. Simple? You bet, but hey there are always these problems: 1) You start in the south, call "A", and 5 seconds later someone else says "B". This happens like in 1 out of 7 games or so. It's tough to handle this. The other guy might be some teenager in need to win "something" for a quick ego boost, and might see this "A" vs "B" quarrel as his golden opportunity. I usually say "Okay B then" and take the 3-4% extra loss chance and still hope for the best. After all, chances are 6 vs 7 in my advantage that he'll be in the other team next game. 2) Battleship players who think that sniping is a brilliant idea. They don't get that from 20km you make 25% of the hits compared to firing from 10km, plus it forces the enemy to do what is their winning strategy: focusing on the more fragile cruisers and destroyers. Often it seems these guys don't speak English so education efforts are a waste of time. Your job in a BB is to exchange punches, to hit and get hit. If you're the first to die while the enemy lost 2 ships, you did it right. 3) Cruisers and battleships who are hidden behind islands half of the time. Look... there is always SOME team member the enemy can fire at. So hiding simply lets the enemy kill your team piece by piece. Nothing more frustrating than facing 7 enemies with 3 guys of your team, just because the other 4 attempt to do some "sophisticated" maneuvering / flanking / checking the island graphics / whatever. 4) Cruisers firing torpedo's from the second line that cannot possibly hit any enemy, only friendlies. But that's a well-known one.
  8. Istrilyin

    Wrong display of ship positions

    This is a SHOWSTOPPER! BUMP! It seems that every minute that passes,games gets worse. And it's not just the position. It's also that the ship doesn't respond anymore to manual controls. Torpedo's don't get fired. It takes 5 seconds before the ship changes course after you press "left" or "right". It is since today. No clue what crappy piece code made it to production but please please please roll back to a good build.
×