online compiler and debugger for c/c++

code. compile. run. debug. share.
Source Code    Language
#include <stdio.h> #include <stdlib.h> #include <ctype.h> #include <string.h> #include <math.h> int main() { /* ac: armor class, ba:bonus attack(prof,mods,ecc), bd: bonus damage(str or dex mod), att: total attack roll, fatt: first attack roll, satt: second attack roll dmg: damage on hit, tdmg: all damage done during test, t: turn gwm: great weapon master feat, avg: average, d: number of dice on attack roll, dd: value of single dice on attack roll lvl: barbarian level exa: bonus action from extra attack */ int ac, ba, bd, att, fatt, satt, dmg, tdmg, gwm, d, dd, lvl, exa; float avg, t; tdmg = 0; srand(time(0)); printf("Assign barbarian level: "); scanf("%d", &lvl); printf("Assign number of thrown dice to attack, if 1d12 assign 1, 2d4 assign 2, 3d8 assign 3, ecc.: "); scanf("%d", &d); printf("Assign value of a single attack die, if 1d12 assign 12, if 2d4 metti 4, ecc.: "); scanf("%d", &dd); printf("Assign enemy AC: "); scanf("%d", &ac); printf("Assign sum of all attack modifiers, such as strenght mod., prof.,anything that affects precision. If using GWM remember the -5: "); scanf("%d", &ba); printf("Assign sum of all damage modifiers, such as strenght mod. and rage. If using GWM remember the +10: "); scanf("%d", &bd); printf("If using GWM assign 1, otherwise assign 0: "); scanf("%d", &gwm); if ( lvl==1 ) { for(t=1; t<=10000; t++) { printf("\n\nTurn: %.f", t); att = ( rand()%20 ) + ba + 1; if (att>=ac || att==(20+ba)) { dmg = ( d * ( rand()%dd + 1 ) ) + bd ; tdmg = tdmg + dmg; printf("\nHit for: %d. Total damage: %d", dmg, tdmg); if (att==(20+ba)) { dmg = ( d * ( rand()%dd + 1 ) ); tdmg = tdmg + dmg; printf("\nNice, a crit for: %d. Total damage: %d", dmg, tdmg); if (gwm == 1) { att = ( rand()%20 ) + ba + 1; if (att>=ac || att==(20+ba)) { dmg = ( d * ( rand()%dd + 1 ) ) + bd; tdmg = tdmg + dmg; printf("\nHit for: %d. Total damage: %d\n", dmg, tdmg); if (att==(20+ba)) { dmg = ( d * ( rand()%dd + 1 ) ); tdmg = tdmg + dmg; printf("\nNow it's starting to get ridiculous, twice in a row. You crit for: %d, Total damage: %d", dmg, tdmg); } } else { printf("\nDidn't hit. Total damage: %d", tdmg); } } } } else { printf("\nDidn't hit. Total damage: %d", tdmg); } } } if ( 2<=lvl && lvl<=4 ) { for(t=1; t<=10000; t++) { printf("\n\nTurn: %.f", t); fatt = ( rand()%20 ) + ba + 1; satt = ( rand()%20 ) + ba + 1; if (fatt>=satt) { att = fatt; printf("\nThe first die was chosen: %d because the other was: %d", att, satt); } else { att = satt; printf("\nThe second die was chosen: %d because the other was: %d", att, fatt); } if (att>=ac || att==(20+ba)) { dmg = ( d * ( rand()%dd + 1 ) ) + bd; tdmg = tdmg + dmg; printf("\nHit for: %d. Total damage: %d", dmg, tdmg); if (att==(20+ba)) { dmg = ( d * ( rand()%dd + 1 ) ); tdmg = tdmg + dmg; printf("\nNice, a crit for: %d. Total damage: %d", dmg, tdmg); if (gwm == 1) { fatt = ( rand()%20 ) + ba + 1; satt = ( rand()%20 ) + ba + 1; if (fatt>=satt) { att = fatt; printf("\nThe first die was chosen: %d because the other was: %d", att, satt); } else { att = satt; printf("\nThe second die was chosen: %d because the other was: %d", att, fatt); } if (att>=ac || att==(20+ba)) { dmg = ( d * ( rand()%dd + 1 ) ) + bd; tdmg = tdmg + dmg; printf("\nHit for: %d. Total damage: %d", dmg, tdmg); if (att==(20+ba)) { dmg = ( d * ( rand()%dd + 1 ) ); tdmg = tdmg + dmg; printf("\nNow it's starting to get ridiculous, twice in a row. You crit for: %d, Total damage: %d", dmg, tdmg); } } else { printf("\nDidn't hit. Total damage: %d", tdmg); } } } } else { printf("\nDidn't hit. Total damage: %d", tdmg); } } } if ( 5<=lvl && lvl<=8 ) { for(t=1; t<=10000; t++) { exa = 0; printf("\n\nTurn: %.f", t); fatt = ( rand()%20 ) + ba + 1; satt = ( rand()%20 ) + ba + 1; if (fatt>=satt) { att = fatt; printf("\nThe first die was chosen: %d because the other was: %d", att, satt); } else { att = satt; printf("\nThe second die was chosen: %d because the other was: %d", att, fatt); } if (att>=ac || att==(20+ba)) { dmg = ( d * ( rand()%dd + 1 ) ) + bd; tdmg = tdmg + dmg; printf("\nHit for: %d. Total damage: %d", dmg, tdmg); if (att==(20+ba)) { dmg = ( d * ( rand()%dd + 1 ) ); tdmg = tdmg + dmg; printf("\nNice, a crit for: %d. Total damage: %d", dmg, tdmg); if (gwm == 1) { exa = 1; fatt = ( rand()%20 ) + ba + 1; satt = ( rand()%20 ) + ba + 1; if (fatt>=satt) { att = fatt; printf("\nThe first die was chosen: %d because the other was: %d", att, satt); } else { att = satt; printf("\nThe second die was chosen: %d because the other was: %d", att, fatt); } if (att>=ac || att==(20+ba)) { dmg = ( d * ( rand()%dd + 1 ) ) + bd; tdmg = tdmg + dmg; printf("\nHit for: %d. Total damage: %d", dmg, tdmg); if (att==(20+ba)) { dmg = ( d * ( rand()%dd + 1 ) ); tdmg = tdmg + dmg; printf("\nNow it's starting to get ridiculous, twice in a row. You crit for: %d, Total damage: %d", dmg, tdmg); } } else { printf("\nDidn't hit. Total damage: %d", tdmg); } } } } else { printf("\nDidn't hit. Total damage: %d", tdmg); } fatt = ( rand()%20 ) + ba + 1; satt = ( rand()%20 ) + ba + 1; if (fatt>=satt) { att = fatt; printf("\nThe first die was chosen: %d because the other was: %d", att, satt); } else { att = satt; printf("\nThe second die was chosen: %d because the other was: %d", att, fatt); } if (att>=ac || att==(20+ba)) { dmg = ( d * ( rand()%dd + 1 ) ) + bd; tdmg = tdmg + dmg; printf("\nHit for: %d. Total damage: %d", dmg, tdmg); if (att==(20+ba)) { dmg = ( d * ( rand()%dd + 1 ) ); tdmg = tdmg + dmg; printf("\nNice, a crit for: %d. Total damage: %d", dmg, tdmg); if (gwm == 1 && exa == 0) { exa = 1; fatt = ( rand()%20 ) + ba + 1; satt = ( rand()%20 ) + ba + 1; if (fatt>=satt) { att = fatt; printf("\nThe first die was chosen: %d because the other was: %d", att, satt); } else { att = satt; printf("\nThe second die was chosen: %d because the other was: %d", att, fatt); } if (att>=ac || att==(20+ba)) { dmg = ( d * ( rand()%dd + 1 ) ) + bd; tdmg = tdmg + dmg; printf("\nHit for: %d. Total damage: %d", dmg, tdmg); if (att==(20+ba)) { dmg = ( d * ( rand()%dd + 1 ) ); tdmg = tdmg + dmg; printf("\nNow it's starting to get ridiculous, twice in a row. You crit for: %d, Total damage: %d", dmg, tdmg); } } else { printf("\nDidn't hit. Total damage: %d", tdmg); } } } } else { printf("\nDidn't hit. Total damage: %d", tdmg); } } } if ( 9<=lvl && lvl<=12 ) { for(t=1; t<=10000; t++) { exa = 0; printf("\n\nTurn: %.f", t); fatt = ( rand()%20 ) + ba + 1; satt = ( rand()%20 ) + ba + 1; if (fatt>=satt) { att = fatt; printf("\nThe first die was chosen: %d because the other was: %d", att, satt); } else { att = satt; printf("\nThe second die was chosen: %d because the other was: %d", att, fatt); } if (att>=ac || att==(20+ba)) { dmg = ( d * ( rand()%dd + 1 ) )+ bd; tdmg = tdmg + dmg; printf("\nHit for: %d. Total damage: %d", dmg, tdmg); if (att==(20+ba)) { dmg = ( d * ( rand()%dd + 1 ) ) + ( rand()%dd + 1 ); tdmg = tdmg + dmg; printf("\nNice, a crit for: %d. Total damage: %d", dmg, tdmg); if (gwm == 1) { exa = 1; fatt = ( rand()%20 ) + ba + 1; satt = ( rand()%20 ) + ba + 1; if (fatt>=satt) { att = fatt; printf("\nThe first die was chosen: %d because the other was: %d", att, satt); } else { att = satt; printf("\nThe second die was chosen: %d because the other was: %d", att, fatt); } if (att>=ac || att==(20+ba)) { dmg = ( d * ( rand()%dd + 1 ) ) + bd; tdmg = tdmg + dmg; printf("\nHit for: %d. Total damage: %d", dmg, tdmg); if (att==(20+ba)) { dmg = ( d * ( rand()%dd + 1 ) ) + ( rand()%dd ) + 1; tdmg = tdmg + dmg; printf("\nNow it's starting to get ridiculous, twice in a row. You crit for: %d, Total damage: %d", dmg, tdmg); } } else { printf("\nDidn't hit. Total damage: %d", tdmg); } } } } else { printf("\nDidn't hit. Total damage: %d", tdmg); } fatt = ( rand()%20 ) + ba + 1; satt = ( rand()%20 ) + ba + 1; if (fatt>=satt) { att = fatt; printf("\nThe first die was chosen: %d because the other was: %d", att, satt); } else { att = satt; printf("\nThe second die was chosen: %d because the other was: %d", att, fatt); } if (att>=ac || att==(20+ba)) { dmg = ( d * ( rand()%dd + 1 ) ) + bd; tdmg = tdmg + dmg; printf("\nHit for: %d. Total damage: %d", dmg, tdmg); if (att==(20+ba)) { dmg = ( d * ( rand()%dd + 1 ) ) + ( rand()%dd ) + 1; tdmg = tdmg + dmg; printf("\nNice, a crit for: %d. Total damage: %d", dmg, tdmg); if (gwm == 1 && exa == 0) { exa = 1; fatt = ( rand()%20 ) + ba + 1; satt = ( rand()%20 ) + ba + 1; if (fatt>=satt) { att = fatt; printf("\nThe first die was chosen: %d because the other was: %d", att, satt); } else { att = satt; printf("\nThe second die was chosen: %d because the other was: %d", att, fatt); } if (att>=ac || att==(20+ba)) { dmg = ( d * ( rand()%dd + 1 ) ) + bd; tdmg = tdmg + dmg; printf("\nHit for: %d. Total damage: %d", dmg, tdmg); if (att==(20+ba)) { dmg = ( d * ( rand()%dd + 1 ) ) + ( rand()%dd ) + 1; tdmg = tdmg + dmg; printf("\nNow it's starting to get ridiculous, twice in a row. You crit for: %d, Total damage: %d", dmg, tdmg); } } else { printf("\nDidn't hit. Total damage: %d", tdmg); } } } } else { printf("\nDidn't hit. Total damage: %d", tdmg); } } } if ( 13<=lvl && lvl<=16 ) { for(t=1; t<=10000; t++) { exa = 0; printf("\n\nTurn: %.f", t); fatt = ( rand()%20 ) + ba + 1; satt = ( rand()%20 ) + ba + 1; if (fatt>=satt) { att = fatt; printf("\nThe first die was chosen: %d because the other was: %d", att, satt); } else { att = satt; printf("\nThe second die was chosen: %d because the other was: %d", att, fatt); } if (att>=ac || att==(20+ba)) { dmg = ( d * ( rand()%dd + 1 ) ) + bd; tdmg = tdmg + dmg; printf("\nHit for: %d. Total damage: %d", dmg, tdmg); if (att==(20+ba)) { dmg = ( d * ( rand()%dd + 1 ) ) + ( rand()%dd ) + 1 + ( rand()%dd ) + 1; tdmg = tdmg + dmg; printf("\nNice, a crit for: %d. Total damage: %d", dmg, tdmg); if (gwm == 1) { exa = 1; fatt = ( rand()%20 ) + ba + 1; satt = ( rand()%20 ) + ba + 1; if (fatt>=satt) { att = fatt; printf("\nThe first die was chosen: %d because the other was: %d", att, satt); } else { att = satt; printf("\nThe second die was chosen: %d because the other was: %d", att, fatt); } if (att>=ac || att==(20+ba)) { dmg = ( d * ( rand()%dd + 1 ) ) + bd; tdmg = tdmg + dmg; printf("\nHit for: %d. Total damage: %d", dmg, tdmg); if (att==(20+ba)) { dmg = ( d * ( rand()%dd + 1 ) ) + ( rand()%dd ) + 1 + ( rand()%dd ) + 1; tdmg = tdmg + dmg; printf("\nNow it's starting to get ridiculous, twice in a row. You crit for: %d, Total damage: %d", dmg, tdmg); } } else { printf("\nDidn't hit. Total damage: %d", tdmg); } } } } else { printf("\nDidn't hit. Total damage: %d", tdmg); } fatt = ( rand()%20 ) + ba + 1; satt = ( rand()%20 ) + ba + 1; if (fatt>=satt) { att = fatt; printf("\nThe first die was chosen: %d because the other was: %d", att, satt); } else { att = satt; printf("\nThe second die was chosen: %d because the other was: %d", att, fatt); } if (att>=ac || att==(20+ba)) { dmg = ( d * ( rand()%dd + 1 ) ) + bd; tdmg = tdmg + dmg; printf("\nHit for: %d. Total damage: %d", dmg, tdmg); if (att==(20+ba)) { dmg = ( d * ( rand()%dd + 1 ) ) + ( rand()%dd ) + 1 + ( rand()%dd ) + 1; tdmg = tdmg + dmg; printf("\nNice, a crit for: %d. Total damage: %d", dmg, tdmg); if (gwm == 1 && exa == 0) { exa = 1; fatt = ( rand()%20 ) + ba + 1; satt = ( rand()%20 ) + ba + 1; if (fatt>=satt) { att = fatt; printf("\nThe first die was chosen: %d because the other was: %d", att, satt); } else { att = satt; printf("\nThe second die was chosen: %d because the other was: %d", att, fatt); } if (att>=ac || att==(20+ba)) { dmg = ( d * ( rand()%dd + 1 ) ) + bd; tdmg = tdmg + dmg; printf("\nHit for: %d. Total damage: %d", dmg, tdmg); if (att==(20+ba)) { dmg = ( d * ( rand()%dd + 1 ) ) + ( rand()%dd ) + 1 + ( rand()%dd ) + 1; tdmg = tdmg + dmg; printf("\nNow it's starting to get ridiculous, twice in a row. You crit for: %d, Total damage: %d", dmg, tdmg); } } else { printf("\nDidn't hit. Total damage: %d", tdmg); } } } } else { printf("\nDidn't hit. Total damage: %d", tdmg); } } } if ( lvl>=17 ) { for(t=1; t<=10000; t++) { exa = 0; printf("\n\nTurn: %.f", t); fatt = ( rand()%20 ) + ba + 1; satt = ( rand()%20 ) + ba + 1; if (fatt>=satt) { att = fatt; printf("\nThe first die was chosen: %d because the other was: %d", att, satt); } else { att = satt; printf("\nThe second die was chosen: %d because the other was: %d", att, fatt); } if (att>=ac || att==(20+ba)) { dmg = ( d * ( rand()%dd + 1 ) ) + bd; tdmg = tdmg + dmg; printf("\nHit for: %d. Total damage: %d", dmg, tdmg); if (att==(20+ba)) { dmg = ( d * ( rand()%dd + 1 ) ) + ( rand()%dd ) + 1 + ( rand()%dd ) + 1 + ( rand()%dd ) + 1; tdmg = tdmg + dmg; printf("\nNice, a crit for: %d. Total damage: %d", dmg, tdmg); if (gwm == 1) { exa = 1; fatt = ( rand()%20 ) + ba + 1; satt = ( rand()%20 ) + ba + 1; if (fatt>=satt) { att = fatt; printf("\nThe first die was chosen: %d because the other was: %d", att, satt); } else { att = satt; printf("\nThe second die was chosen: %d because the other was: %d", att, fatt); } if (att>=ac || att==(20+ba)) { dmg = ( d * ( rand()%dd + 1 ) ) + bd; tdmg = tdmg + dmg; printf("\nHit for: %d. Total damage: %d", dmg, tdmg); if (att==(20+ba)) { dmg = ( d * ( rand()%dd + 1 ) ) + ( rand()%dd ) + 1 + ( rand()%dd ) + 1 + ( rand()%dd ) + 1; tdmg = tdmg + dmg; printf("\nNow it's starting to get ridiculous, twice in a row. You crit for: %d, Total damage: %d", dmg, tdmg); } } else { printf("\nDidn't hit. Total damage: %d", tdmg); } } } } else { printf("\nDidn't hit. Total damage: %d", tdmg); } fatt = ( rand()%20 ) + ba + 1; satt = ( rand()%20 ) + ba + 1; if (fatt>=satt) { att = fatt; printf("\nThe first die was chosen: %d because the other was: %d", att, satt); } else { att = satt; printf("\nThe second die was chosen: %d because the other was: %d", att, fatt); } if (att>=ac || att==(20+ba)) { dmg = ( d * ( rand()%dd + 1 ) ) + bd; tdmg = tdmg + dmg; printf("\nHit for: %d. Total damage: %d", dmg, tdmg); if (att==(20+ba)) { dmg = ( d * ( rand()%dd + 1 ) ) + ( rand()%dd ) + 1 + ( rand()%dd ) + 1 + ( rand()%dd ) + 1; tdmg = tdmg + dmg; printf("\nNice, a crit for: %d. Total damage: %d", dmg, tdmg); if (gwm == 1 && exa == 0) { exa = 1; fatt = ( rand()%20 ) + ba + 1; satt = ( rand()%20 ) + ba + 1; if (fatt>=satt) { att = fatt; printf("\nThe first die was chosen: %d because the other was: %d", att, satt); } else { att = satt; printf("\nThe second die was chosen: %d because the other was: %d", att, fatt); } if (att>=ac || att==(20+ba)) { dmg = ( d * ( rand()%dd + 1 ) ) + bd; tdmg = tdmg + dmg; printf("\nHit for: %d. Total damage: %d", dmg, tdmg); if (att==(20+ba)) { dmg = ( d * ( rand()%dd + 1 ) ) + ( rand()%dd ) + 1 + ( rand()%dd ) + 1 + ( rand()%dd ) + 1; tdmg = tdmg + dmg; printf("\nNow it's starting to get ridiculous, twice in a row. You crit for: %d, Total damage: %d", dmg, tdmg); } } else { printf("\nDidn't hit. Total damage: %d", tdmg); } } } } else { printf("\nDidn't hit. Total damage: %d", tdmg); } } } printf("\nTotal damage after 10000 turns: %d", tdmg); avg = tdmg / t; printf("\n\nAverage damage per turn: %.2f", avg); return 0; }

Compiling Program...

Command line arguments:
Standard Input: Interactive Console Text
×

                

                

Program is not being debugged. Click "Debug" button to start program in debug mode.

#FunctionFile:Line
VariableValue
RegisterValue
ExpressionValue