Advertisement
Guest User

Untitled

a guest
Jul 24th, 2019
189
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.57 KB | None | 0 0
  1. #include <stdio.h>
  2.  
  3. double EffectiveHealP(int base, int rev, int bre)
  4. {
  5. double EH = (20.0 + (rev * 3));
  6. double health = (base + (10.0 * bre));
  7. double effectivehealth = (health * 0.6);
  8. if (EH >= effectivehealth)
  9. {
  10. return effectivehealth;
  11. }
  12. else
  13. {
  14. return EH;
  15. }
  16. }
  17.  
  18. double EffectiveHealS(int base, int rev, int bre)
  19. {
  20. double EH = (15.0 + (rev * 3));
  21. double health = (base + (10.0 * bre));
  22. double effectivehealth = (health * 0.6);
  23. if (EH >= effectivehealth)
  24. {
  25. return effectivehealth;
  26. }
  27. else
  28. {
  29. return EH;
  30. }
  31. }
  32.  
  33. double ZealotPCrunch(int base, int rev, int ble, int dev, int bre)
  34. {
  35. double tot = ((((50.0 + (100 * ble) + (10 * dev)) * EffectiveHealP(base, rev, bre)) / 25) + (bre * 10) + base);
  36. return tot;
  37. }
  38.  
  39. double ZealotSCrunch(int base, int rev, int ble, int dev, int bre)
  40. {
  41. double tot = ((((50.0 + (100 * ble) + (10 * dev)) * EffectiveHealS(base, rev, bre)) / 25) + (bre * 10) + base);
  42. return tot;
  43. }
  44.  
  45. void ZealotCalculator(int level)
  46. {
  47. int points = 0;
  48.  
  49. int base = 50;
  50.  
  51. int rev = 0;
  52. int ble = 0;
  53. int dev = 0;
  54. int bre = 0;
  55.  
  56. int pb_rev = 0;
  57. int pb_ble = 0;
  58. int pb_dev = 0;
  59. int pb_bre = 0;
  60.  
  61. int sb_rev = 0;
  62. int sb_ble = 0;
  63. int sb_dev = 0;
  64. int sb_bre = 0;
  65.  
  66. double p_tot = 0.0;
  67. double s_tot = 0.0;
  68. double pb_tot = 0.0;
  69. double sb_tot = 0.0;
  70.  
  71. if (level <= 1)
  72. {
  73. printf("level: 1, no talents, total: %d\n", base);
  74. return;
  75. }
  76.  
  77. if (level < 7)
  78. {
  79. printf("level: %d, breathing: %d, total: %d\n", level, level - 1, (base + (10 * (level - 1))));
  80. return;
  81. }
  82.  
  83. points = level - 2;
  84.  
  85. //p
  86. for (rev = 5; rev <= points; ++rev)
  87. {
  88. for (ble = 0; ble <= 1 && ble <= (points - rev); ++ble)
  89. {
  90. for (dev = 0; dev <= (points - rev - ble); ++dev)
  91. {
  92. for (bre = 0; bre <= (points - rev - ble - dev); ++bre)
  93. {
  94. if ((points - rev - ble - dev - bre) == 0)
  95. {
  96. p_tot = ZealotPCrunch(base, rev, ble, dev, bre);
  97. if (p_tot >= pb_tot)
  98. {
  99. pb_rev = rev;
  100. pb_ble = ble;
  101. pb_dev = dev;
  102. pb_bre = bre;
  103. pb_tot = p_tot;
  104. }
  105. }
  106. }
  107. }
  108. }
  109. }
  110.  
  111. //s
  112. for (rev = 0; rev <= points; ++rev)
  113. {
  114. if (rev >= 5)
  115. {
  116. for (ble = 0; ble <= 1 && ble <= (points - rev); ++ble)
  117. {
  118. for (dev = 5; dev <= (points - rev - ble); ++dev)
  119. {
  120. for (bre = 0; bre <= (points - rev - ble - dev); ++bre)
  121. {
  122. if ((points - rev - ble - dev - bre) == 0)
  123. {
  124. s_tot = ZealotSCrunch(base, rev, ble, dev, bre);
  125. if (s_tot >= sb_tot)
  126. {
  127. sb_rev = rev;
  128. sb_ble = ble;
  129. sb_dev = dev;
  130. sb_bre = bre;
  131. sb_tot = s_tot;
  132. }
  133. }
  134. }
  135. }
  136. }
  137. }
  138. else
  139. {
  140. ble = 0;
  141. for (dev = 5; dev <= (points - rev); ++dev)
  142. {
  143. for (bre = 0; bre <= (points - rev - dev); ++bre)
  144. {
  145. if ((points - rev - dev - bre) == 0)
  146. {
  147. s_tot = ZealotSCrunch(base, rev, ble, dev, bre);
  148. if (s_tot >= sb_tot)
  149. {
  150. sb_rev = rev;
  151. sb_ble = ble;
  152. sb_dev = dev;
  153. sb_bre = bre;
  154. sb_tot = s_tot;
  155. }
  156. }
  157. }
  158. }
  159. }
  160. }
  161.  
  162. if (pb_tot > sb_tot)
  163. {
  164. printf("level: %d, prayer: 1, reverence: %d, blessing: %d, devotion: %d, breath: %d, total: %f\n",
  165. level, pb_rev, pb_ble, pb_dev, pb_bre, pb_tot);
  166. }
  167. else
  168. {
  169. printf("level: %d, selfish: 1, reverence: %d, blessing: %d, devotion: %d, breath: %d, total: %f\n",
  170. level, sb_rev, sb_ble, sb_dev, sb_bre, sb_tot);
  171. }
  172. return;
  173. }
  174.  
  175. int main()
  176. {
  177. int i;
  178. for (i = 1; i < 51; ++i)
  179. {
  180. ZealotCalculator(i);
  181. }
  182. return 0;
  183. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement