/* ############################################################################# * # DiceRoller * This Program will alow you to role a dice or die using the scmatics such * as 1d6, 5d20, 1d100, d20 * * AUTHER: PreacherDHM * DATE: 06/02/25 * ############################################################################# */ #include #include #include #include /* GetDice(char* format) * * This will return the value of the rolled dice. */ int GetDice(const char* format) { int size = strlen(format); int seperator = 0; int resolt = 0; unsigned int seed = time(0); char c_amount[30] = { '\0' }; char c_dice[30] = { '\0' }; for(int i = 0; i < size; i++) { if(format[i] != 'd') continue; seperator = i; break; } if(seperator == 0) return -1; strncpy(c_amount, format,seperator); strcpy(c_dice, &format[seperator + 1]); int amount = atoi(c_amount); int dice = atoi(c_dice); int r = 0; for (int i = 0; i < amount; i++) { r = rand_r(&seed) % (dice - 1 + 1) + 1; resolt += r; } return resolt; } int main (int argc, char *argv[]) { int roled; for(int i = 1; i < argc; i++) { roled = GetDice(argv[i]); if(roled <= 0) { printf("FORMAT ERROR\n"); return -1; } printf("%s: Roled a %d\n",argv[i], GetDice(argv[i])); } return 0; }