slyte33 Posted January 8, 2013 Share Posted January 8, 2013 This might sound confusing, so I'll post a code for my example You have 100 levels to go through, each level needs a certain amount of EXPERIENCE to get to the next level. To hit level 100 you need that last 10,000,000th exp point. So [10,000,000/100] would be 100,000 EXP per level, correct? But I dont want getting level 2 to be so hard you need 100,000 EXP, off the start. I want it to get harder as you progress through your levels. Here's what I have and it equals a couple thousand from 10,000,000. $number=1; $num=99; for($x=2;$x<=99;$x++) { $xp2+=($number*250)+($x*250)*0.211; echo "<br>"; echo "Level: $x"; echo "- <b>".number_format($xp2)."</b>"; $tot+=$xp2; } echo "<br>"; echo "TOTAL: ".number_format($tot).""; echo stripslashes($message); This might sound confusing, so I'll post a code for my example You have 100 levels to go through, each level needs a certain amount of EXPERIENCE to get to the next level. To hit level 100 you need that last 10,000,000th exp point. So [10,000,000/100] would be 100,000 EXP per level, correct? But I dont want getting level 2 to be so hard you need 100,000 EXP, off the start. I want it to get harder as you progress through your levels. Here's what I have and it equals a couple thousand from 10,000,000. $number=1; $num=99; for($x=2;$x<=99;$x++) { $xp2+=($number*250)+($x*250)*0.211; echo "<br>"; echo "Level: $x"; echo "- <b>".number_format($xp2)."</b>"; $tot+=$xp2; } echo "<br>"; echo "TOTAL: ".number_format($tot).""; echo stripslashes($message); This might sound confusing, so I'll post a code for my example You have 100 levels to go through, each level needs a certain amount of EXPERIENCE to get to the next level. To hit level 100 you need that last 10,000,000th exp point. So [10,000,000/100] would be 100,000 EXP per level, correct? But I dont want getting level 2 to be so hard you need 100,000 EXP, off the start. I want it to get harder as you progress through your levels. Here's what I have and it equals a couple thousand from 10,000,000. $number=1; $num=99; for($x=2;$x<=99;$x++) { $xp2+=($number*250)+($x*250)*0.211; echo "<br>"; echo "Level: $x"; echo "- <b>".number_format($xp2)."</b>"; $tot+=$xp2; } echo "<br>"; echo "TOTAL: ".number_format($tot).""; echo stripslashes($message); Output: Level: 2- 356 Level: 3- 764 Level: 4- 1,225 Level: 5- 1,739 Level: 6- 2,306 Level: 7- 2,925 Level: 8- 3,597 Level: 9- 4,322 Level: 10- 5,100 Level: 11- 5,930 Level: 12- 6,814 Level: 13- 7,750 Level: 14- 8,739 Level: 15- 9,780 Level: 16- 10,875 Level: 17- 12,022 Level: 18- 13,222 Level: 19- 14,474 Level: 20- 15,780 Level: 21- 17,138 Level: 22- 18,549 Level: 23- 20,013 Level: 24- 21,530 Level: 25- 23,099 Level: 26- 24,721 Level: 27- 26,396 Level: 28- 28,124 Level: 29- 29,904 Level: 30- 31,738 Level: 31- 33,624 Level: 32- 35,562 Level: 33- 37,554 Level: 34- 39,598 Level: 35- 41,695 Level: 36- 43,845 Level: 37- 46,048 Level: 38- 48,304 Level: 39- 50,612 Level: 40- 52,973 Level: 41- 55,387 Level: 42- 57,853 Level: 43- 60,372 Level: 44- 62,944 Level: 45- 65,569 Level: 46- 68,247 Level: 47- 70,977 Level: 48- 73,761 Level: 49- 76,597 Level: 50- 79,485 Level: 51- 82,427 Level: 52- 85,421 Level: 53- 88,468 Level: 54- 91,568 Level: 55- 94,721 Level: 56- 97,926 Level: 57- 101,184 Level: 58- 104,495 Level: 59- 107,859 Level: 60- 111,275 Level: 61- 114,745 Level: 62- 118,267 Level: 63- 121,842 Level: 64- 125,469 Level: 65- 129,150 Level: 66- 132,883 Level: 67- 136,669 Level: 68- 140,507 Level: 69- 144,399 Level: 70- 148,343 Level: 71- 152,340 Level: 72- 156,390 Level: 73- 160,493 Level: 74- 164,648 Level: 75- 168,856 Level: 76- 173,117 Level: 77- 177,431 Level: 78- 181,797 Level: 79- 186,216 Level: 80- 190,688 Level: 81- 195,213 Level: 82- 199,791 Level: 83- 204,421 Level: 84- 209,104 Level: 85- 213,840 Level: 86- 218,629 Level: 87- 223,470 Level: 88- 228,364 Level: 89- 233,311 Level: 90- 238,311 Level: 91- 243,363 Level: 92- 248,469 Level: 93- 253,627 Level: 94- 258,838 Level: 95- 264,101 Level: 96- 269,418 Level: 97- 274,787 Level: 98- 280,209 Level: 99- 285,683 TOTAL: 10,002,479 Quote Link to comment https://forums.phpfreaks.com/topic/272839-for-loop-with-increasing-numbers-as-x-value-icreases/ Share on other sites More sharing options...
requinix Posted January 8, 2013 Share Posted January 8, 2013 (edited) ...Dude. Posting the same thing three times in one post doesn't make it three times easier to understand. I/We can run the math for you. Give us a couple data points to start with, such as "Level 1->2 is 1000 points" or "You hit level 100 as you reach 1M XP" or "Level 99->100 is 100K points", if you would rather a straight line (each level is the amount it took for the previous level + some fixed amount), or three data points if you want a curve (same amount as the previous level + some amount which increases as you gain levels). [edit] I may totally be overthinking this though. I'm just excited for a chance to do some math. Edited January 8, 2013 by requinix Quote Link to comment https://forums.phpfreaks.com/topic/272839-for-loop-with-increasing-numbers-as-x-value-icreases/#findComment-1404139 Share on other sites More sharing options...
slyte33 Posted January 8, 2013 Author Share Posted January 8, 2013 (edited) ...Dude. Posting the same thing three times in one post doesn't make it three times easier to understand. I/We can run the math for you. Give us a couple data points to start with, such as "Level 1->2 is 1000 points" or "You hit level 100 as you reach 1M XP" or "Level 99->100 is 100K points", if you would rather a straight line (each level is the amount it took for the previous level + some fixed amount), or three data points if you want a curve (same amount as the previous level + some amount which increases as you gain levels). [edit] I may totally be overthinking this though. I'm just excited for a chance to do some math. Weird I have no idea how it posted 3 times...lagged ctrl+v maybe Ok, level 1->2 = getting 500xp, total XP of 500 level 2->3 getting (500*1.5) xp , total xp = 500+750=1,250 total XP when reaching level 3 level 100 = 10,000,000 total XP when reaching level 100 Edited January 8, 2013 by slyte33 Quote Link to comment https://forums.phpfreaks.com/topic/272839-for-loop-with-increasing-numbers-as-x-value-icreases/#findComment-1404143 Share on other sites More sharing options...
requinix Posted January 8, 2013 Share Posted January 8, 2013 And level 3->4? It can't be 750*1.5=1125 XP (total 2375 XP). How about 4->5? Quote Link to comment https://forums.phpfreaks.com/topic/272839-for-loop-with-increasing-numbers-as-x-value-icreases/#findComment-1404295 Share on other sites More sharing options...
Barand Posted January 9, 2013 Share Posted January 9, 2013 (edited) Increasing the increment by around 2020 each level gets you there $score = 500; echo '<pre>'; for ($i=0; $i<100; $i++) { $inc = $i*2020.1; $score += $inc; printf('%3d %7.0f %7.0f<br>', $i+1, $inc, $score); } echo '</pre>'; Alternatively, there's exponential increase in difficulty $score = 500; echo '<pre>'; for ($i=0; $i<100; $i++) { $score *= 1.104105; printf('%3d %7.0f<br>', $i+1, $score); } echo '</pre>'; Edited January 9, 2013 by Barand Quote Link to comment https://forums.phpfreaks.com/topic/272839-for-loop-with-increasing-numbers-as-x-value-icreases/#findComment-1404451 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.