I'm building a Random Character Generator in C++, and I have around 12 large blocks of if
statements, like this:
int wisdom = rand() % 18;
cout << "\n";
if (wisdom == 0 || wisdom == 1) {
cout << "Wisdom Score: 1\n";
cout << "Modifier: -5\n";
} else if (wisdom == 2 || wisdom == 3) {
cout << "Wisdom Score: " << wisdom << "\n";
cout << "Modifier: -4\n";
} else if (wisdom == 4 || wisdom == 5) {
cout << "Wisdom Score: " << wisdom << "\n";
cout << "Modifier: -3\n";
} else if (wisdom == 6 || wisdom == 7) {
cout << "Wisdom Score: " << wisdom << "\n";
cout << "Modifier: -2\n";
} else if (wisdom == 8 || wisdom == 9) {
cout << "Wisdom Score: " << wisdom << "\n";
cout << "Modifier: -1\n";
} else if (wisdom == 10 || wisdom == 11) {
cout << "Wisdom Score: " << wisdom << "\n";
cout << "Modifier: +0\n";
} else if (wisdom == 12 || wisdom == 13) {
cout << "Wisdom Score: " << wisdom << "\n";
cout << "Modifier: +1\n";
} else if (wisdom == 14 || wisdom == 15) {
cout << "Wisdom Score: " << wisdom << "\n";
cout << "Modifier: +2\n";
} else if (wisdom == 16 || wisdom == 17) {
cout << "Wisdom Score: " << wisdom << "\n";
cout << "Modifier: +3\n";
} else {
cout << "Wisdom Score: 18\n";
cout << "Modifier: +4\n";
}
I'm wondering, is there a better way to write this? Perhaps some type of function?