Adventure Game (text based) in C++Producer/Consumer implementation using condition_variableSimple...
In a future war, an old lady is trying to raise a boy but one of the weapons has made everyone deaf
Why is the President allowed to veto a cancellation of emergency powers?
Interplanetary conflict, some disease destroys the ability to understand or appreciate music
How do I hide Chekhov's Gun?
How to read the value of this capacitor?
Why would a flight no longer considered airworthy be redirected like this?
Life insurance that covers only simultaneous/dual deaths
How to explain that I do not want to visit a country due to personal safety concern?
Recruiter wants very extensive technical details about all of my previous work
PTIJ: Who should I vote for? (21st Knesset Edition)
How could a scammer know the apps on my phone / iTunes account?
How to create the Curved texte?
Brexit - No Deal Rejection
Most cost effective thermostat setting: consistent temperature vs. lowest temperature possible
Co-worker team leader wants to inject his friend's awful software into our development. What should I say to our common boss?
Adventure Game (text based) in C++
If curse and magic is two sides of the same coin, why the former is forbidden?
Why do Australian milk farmers need to protest supermarkets' milk price?
Do the common programs (for example: "ls", "cat") in Linux and BSD come from the same source code?
What did Alexander Pope mean by "Expletives their feeble Aid do join"?
If the DM rolls initiative once for a group of monsters, how do end-of-turn effects work?
Existence of subset with given Hausdorff dimension
How can I track script which gives me "command not found" right after the login?
If I can solve Sudoku can I solve Travelling Salesman Problem(TSP)? If yes, how?
Adventure Game (text based) in C++
Producer/Consumer implementation using condition_variableSimple multithreading C projectText-based adventure gameThe Mysts of Altair - text-based adventure gameText-based adventure survival horror gameFirst text-based adventure gameText based adventure game navigationText-based Adventure-Game EngineJava text-based adventure gameA little C++ based 2D game engine I madeShort text-based adventure gameText-based adventure and combat game
$begingroup$
I'm working on a simple text based adventure game. I've just finished working on the character creation portion. The code works perfectly fine when run, but I would just like to get some feedback to ensure that it checks off from a professional and efficient standpoint.
The values of the materials, weapons, and spells are representing the amount of damage points each does for further and future calculations with the characters stats later in the game.
The code itself essentially allows you to input a characters name. Then, the strength, stamina, and intellect is randomly generated so that your character build is different at the beginning of each game. Then, once that has finished, the code takes into account the weapon type, the material of the weapon, the spell type and adds additional damage based on the players stats.
I would just like to know if there is a better way of writing my code to make it look cleaner, or if there possibly any concerns that might cause me issues down the road when I add more functionality to the game. Seeing as I am a beginner to C++, I am not incredibly great at determining whether my code is optimal or not.
#include <iostream>
#include <string>
#include <ctime>
using namespace std;
/* Materials Structure */
typedef struct materials {
int wood = 1, oak = 2, maple = 3, ash = 4, bronze = 2, iron = 3, steel = 4, mithril = 5, dragon = 6;
};
/* Weapon Structure */
typedef struct weapons {
int dagger = 2, sword = 3, axe = 4, mace = 5, bow = 3, arrows = 2;
} weapons;
/* Spell Structure */
typedef struct spells {
int fire = 4, frost = 6, dark = 8, chaos = 10;
} spells;
/* Character Structure */
typedef struct character {
string name;
int health = 100, mana = 100, strength, stamina, intellect, weaponAttack, spellAttack, souls = 0;
spells spell;
weapons weapon;
materials material;
} character;
/* Function Declaration */
character characterCreation(string name);
void printInfo(character createChar);
/* Main Function */
int main() {
string characterName;
cout << "Please input character name: ";
cin >> characterName;
srand(time(NULL));
character player = characterCreation(characterName);
printInfo(player);
system("pause");
return 0;
}
/* Function Definition */
character characterCreation(string name) {
character createChar;
createChar.name = name;
createChar.strength = rand() % 5 + 5;
createChar.stamina = rand() % 5 + 5;
createChar.intellect = rand() % 5 + 5;
createChar.health += 2 * createChar.stamina;
createChar.mana += 3 * createChar.intellect;
createChar.weaponAttack = (createChar.weapon.dagger * createChar.material.bronze) + (2 * createChar.strength);
createChar.spellAttack = (createChar.spell.fire + (createChar.intellect * 2));
return createChar;
}
void printInfo(character createChar) {
cout << createChar.name << endl;
cout << createChar.health << endl;
cout << createChar.mana << endl;
cout << createChar.strength << endl;
cout << createChar.stamina << endl;
cout << createChar.intellect << endl;
cout << createChar.weaponAttack << endl;
cout << createChar.spellAttack << endl;
cout << createChar.souls << endl;
}
c++ beginner game adventure-game
New contributor
$endgroup$
add a comment |
$begingroup$
I'm working on a simple text based adventure game. I've just finished working on the character creation portion. The code works perfectly fine when run, but I would just like to get some feedback to ensure that it checks off from a professional and efficient standpoint.
The values of the materials, weapons, and spells are representing the amount of damage points each does for further and future calculations with the characters stats later in the game.
The code itself essentially allows you to input a characters name. Then, the strength, stamina, and intellect is randomly generated so that your character build is different at the beginning of each game. Then, once that has finished, the code takes into account the weapon type, the material of the weapon, the spell type and adds additional damage based on the players stats.
I would just like to know if there is a better way of writing my code to make it look cleaner, or if there possibly any concerns that might cause me issues down the road when I add more functionality to the game. Seeing as I am a beginner to C++, I am not incredibly great at determining whether my code is optimal or not.
#include <iostream>
#include <string>
#include <ctime>
using namespace std;
/* Materials Structure */
typedef struct materials {
int wood = 1, oak = 2, maple = 3, ash = 4, bronze = 2, iron = 3, steel = 4, mithril = 5, dragon = 6;
};
/* Weapon Structure */
typedef struct weapons {
int dagger = 2, sword = 3, axe = 4, mace = 5, bow = 3, arrows = 2;
} weapons;
/* Spell Structure */
typedef struct spells {
int fire = 4, frost = 6, dark = 8, chaos = 10;
} spells;
/* Character Structure */
typedef struct character {
string name;
int health = 100, mana = 100, strength, stamina, intellect, weaponAttack, spellAttack, souls = 0;
spells spell;
weapons weapon;
materials material;
} character;
/* Function Declaration */
character characterCreation(string name);
void printInfo(character createChar);
/* Main Function */
int main() {
string characterName;
cout << "Please input character name: ";
cin >> characterName;
srand(time(NULL));
character player = characterCreation(characterName);
printInfo(player);
system("pause");
return 0;
}
/* Function Definition */
character characterCreation(string name) {
character createChar;
createChar.name = name;
createChar.strength = rand() % 5 + 5;
createChar.stamina = rand() % 5 + 5;
createChar.intellect = rand() % 5 + 5;
createChar.health += 2 * createChar.stamina;
createChar.mana += 3 * createChar.intellect;
createChar.weaponAttack = (createChar.weapon.dagger * createChar.material.bronze) + (2 * createChar.strength);
createChar.spellAttack = (createChar.spell.fire + (createChar.intellect * 2));
return createChar;
}
void printInfo(character createChar) {
cout << createChar.name << endl;
cout << createChar.health << endl;
cout << createChar.mana << endl;
cout << createChar.strength << endl;
cout << createChar.stamina << endl;
cout << createChar.intellect << endl;
cout << createChar.weaponAttack << endl;
cout << createChar.spellAttack << endl;
cout << createChar.souls << endl;
}
c++ beginner game adventure-game
New contributor
$endgroup$
add a comment |
$begingroup$
I'm working on a simple text based adventure game. I've just finished working on the character creation portion. The code works perfectly fine when run, but I would just like to get some feedback to ensure that it checks off from a professional and efficient standpoint.
The values of the materials, weapons, and spells are representing the amount of damage points each does for further and future calculations with the characters stats later in the game.
The code itself essentially allows you to input a characters name. Then, the strength, stamina, and intellect is randomly generated so that your character build is different at the beginning of each game. Then, once that has finished, the code takes into account the weapon type, the material of the weapon, the spell type and adds additional damage based on the players stats.
I would just like to know if there is a better way of writing my code to make it look cleaner, or if there possibly any concerns that might cause me issues down the road when I add more functionality to the game. Seeing as I am a beginner to C++, I am not incredibly great at determining whether my code is optimal or not.
#include <iostream>
#include <string>
#include <ctime>
using namespace std;
/* Materials Structure */
typedef struct materials {
int wood = 1, oak = 2, maple = 3, ash = 4, bronze = 2, iron = 3, steel = 4, mithril = 5, dragon = 6;
};
/* Weapon Structure */
typedef struct weapons {
int dagger = 2, sword = 3, axe = 4, mace = 5, bow = 3, arrows = 2;
} weapons;
/* Spell Structure */
typedef struct spells {
int fire = 4, frost = 6, dark = 8, chaos = 10;
} spells;
/* Character Structure */
typedef struct character {
string name;
int health = 100, mana = 100, strength, stamina, intellect, weaponAttack, spellAttack, souls = 0;
spells spell;
weapons weapon;
materials material;
} character;
/* Function Declaration */
character characterCreation(string name);
void printInfo(character createChar);
/* Main Function */
int main() {
string characterName;
cout << "Please input character name: ";
cin >> characterName;
srand(time(NULL));
character player = characterCreation(characterName);
printInfo(player);
system("pause");
return 0;
}
/* Function Definition */
character characterCreation(string name) {
character createChar;
createChar.name = name;
createChar.strength = rand() % 5 + 5;
createChar.stamina = rand() % 5 + 5;
createChar.intellect = rand() % 5 + 5;
createChar.health += 2 * createChar.stamina;
createChar.mana += 3 * createChar.intellect;
createChar.weaponAttack = (createChar.weapon.dagger * createChar.material.bronze) + (2 * createChar.strength);
createChar.spellAttack = (createChar.spell.fire + (createChar.intellect * 2));
return createChar;
}
void printInfo(character createChar) {
cout << createChar.name << endl;
cout << createChar.health << endl;
cout << createChar.mana << endl;
cout << createChar.strength << endl;
cout << createChar.stamina << endl;
cout << createChar.intellect << endl;
cout << createChar.weaponAttack << endl;
cout << createChar.spellAttack << endl;
cout << createChar.souls << endl;
}
c++ beginner game adventure-game
New contributor
$endgroup$
I'm working on a simple text based adventure game. I've just finished working on the character creation portion. The code works perfectly fine when run, but I would just like to get some feedback to ensure that it checks off from a professional and efficient standpoint.
The values of the materials, weapons, and spells are representing the amount of damage points each does for further and future calculations with the characters stats later in the game.
The code itself essentially allows you to input a characters name. Then, the strength, stamina, and intellect is randomly generated so that your character build is different at the beginning of each game. Then, once that has finished, the code takes into account the weapon type, the material of the weapon, the spell type and adds additional damage based on the players stats.
I would just like to know if there is a better way of writing my code to make it look cleaner, or if there possibly any concerns that might cause me issues down the road when I add more functionality to the game. Seeing as I am a beginner to C++, I am not incredibly great at determining whether my code is optimal or not.
#include <iostream>
#include <string>
#include <ctime>
using namespace std;
/* Materials Structure */
typedef struct materials {
int wood = 1, oak = 2, maple = 3, ash = 4, bronze = 2, iron = 3, steel = 4, mithril = 5, dragon = 6;
};
/* Weapon Structure */
typedef struct weapons {
int dagger = 2, sword = 3, axe = 4, mace = 5, bow = 3, arrows = 2;
} weapons;
/* Spell Structure */
typedef struct spells {
int fire = 4, frost = 6, dark = 8, chaos = 10;
} spells;
/* Character Structure */
typedef struct character {
string name;
int health = 100, mana = 100, strength, stamina, intellect, weaponAttack, spellAttack, souls = 0;
spells spell;
weapons weapon;
materials material;
} character;
/* Function Declaration */
character characterCreation(string name);
void printInfo(character createChar);
/* Main Function */
int main() {
string characterName;
cout << "Please input character name: ";
cin >> characterName;
srand(time(NULL));
character player = characterCreation(characterName);
printInfo(player);
system("pause");
return 0;
}
/* Function Definition */
character characterCreation(string name) {
character createChar;
createChar.name = name;
createChar.strength = rand() % 5 + 5;
createChar.stamina = rand() % 5 + 5;
createChar.intellect = rand() % 5 + 5;
createChar.health += 2 * createChar.stamina;
createChar.mana += 3 * createChar.intellect;
createChar.weaponAttack = (createChar.weapon.dagger * createChar.material.bronze) + (2 * createChar.strength);
createChar.spellAttack = (createChar.spell.fire + (createChar.intellect * 2));
return createChar;
}
void printInfo(character createChar) {
cout << createChar.name << endl;
cout << createChar.health << endl;
cout << createChar.mana << endl;
cout << createChar.strength << endl;
cout << createChar.stamina << endl;
cout << createChar.intellect << endl;
cout << createChar.weaponAttack << endl;
cout << createChar.spellAttack << endl;
cout << createChar.souls << endl;
}
c++ beginner game adventure-game
c++ beginner game adventure-game
New contributor
New contributor
edited 1 hour ago
Justin
New contributor
asked 4 hours ago
JustinJustin
212
212
New contributor
New contributor
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
$begingroup$
It's extremely unclear what you're asking (or whether your post might just be a troll post), so expect it to get closed shortly.
typedef struct weapons {
int dagger = 2, sword = 3, axe = 4, mace = 5, bow = 3, arrows = 2;
} weapons;
The typedef struct X { ... } X;
pattern is a C-ism; in C++ you don't need the typedef and can just write struct X { ... };
.
You're creating a struct type named weapons
with a bunch of per-instance member variables. This is almost certainly not what you meant to do. Probably what you meant was
enum class Weapon {
dagger = 2,
sword = 3,
axe = 4,
mace = 5,
};
so that you could later write
Weapon w = Weapon::sword;
if (w == Weapon::axe) { ... }
What you actually wrote, unfortunately, is simply nonsense.
character characterCreation(string name);
Look up the C++ notion of "constructors" (and also destructors). What you have here would normally be spelled something like
Character::Character(const std::string& name) {
this->name = name;
this->strength = rand() % 5 + 5;
}
and so on.
Also consider writing yourself a helper function
int randint(int lo, int hi) {
return rand() % (hi - lo) + lo;
}
so that you can write simply
this->strength = randint(5, 10);
Ninety percent of what we call "programming" is just finding sources of repetition and eliminating them.
$endgroup$
$begingroup$
I apologize, I should have clarified what my code is doing and what my expectations were. My post is not a troll, I prefer not to waste peoples time if I do not have to. I will make edits to the question. The numbers on the materials, weapons, and spells simply represent the amount of damage.
$endgroup$
– Justin
2 hours ago
$begingroup$
Thank you for the insight and helpful post though. I will take a look at more constructors and destructors. I used the struct with the hopes that I would be able to create a large combination of different weapon types/spells, being that my class has only just begun using structs I am not too familiar with constructors/destructors.
$endgroup$
– Justin
2 hours ago
$begingroup$
randint(5,10)
, as written, only generates 5 to 9, inclusive. You’d wanthi - lo + 1
to get the full range.
$endgroup$
– AJNeufeld
1 hour ago
$begingroup$
@AJNeufeld: Half-open ranges are the building blocks of C++ (as well as most other programming languages), and the sooner OP gets familiar with them, the better. See here and here for places I've used the phrase "half-open range" in previous reviews.
$endgroup$
– Quuxplusone
59 mins ago
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
return StackExchange.using("mathjaxEditing", function () {
StackExchange.MarkdownEditor.creationCallbacks.add(function (editor, postfix) {
StackExchange.mathjaxEditing.prepareWmdForMathJax(editor, postfix, [["\$", "\$"]]);
});
});
}, "mathjax-editing");
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "196"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Justin is a new contributor. Be nice, and check out our Code of Conduct.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fcodereview.stackexchange.com%2fquestions%2f215542%2fadventure-game-text-based-in-c%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
$begingroup$
It's extremely unclear what you're asking (or whether your post might just be a troll post), so expect it to get closed shortly.
typedef struct weapons {
int dagger = 2, sword = 3, axe = 4, mace = 5, bow = 3, arrows = 2;
} weapons;
The typedef struct X { ... } X;
pattern is a C-ism; in C++ you don't need the typedef and can just write struct X { ... };
.
You're creating a struct type named weapons
with a bunch of per-instance member variables. This is almost certainly not what you meant to do. Probably what you meant was
enum class Weapon {
dagger = 2,
sword = 3,
axe = 4,
mace = 5,
};
so that you could later write
Weapon w = Weapon::sword;
if (w == Weapon::axe) { ... }
What you actually wrote, unfortunately, is simply nonsense.
character characterCreation(string name);
Look up the C++ notion of "constructors" (and also destructors). What you have here would normally be spelled something like
Character::Character(const std::string& name) {
this->name = name;
this->strength = rand() % 5 + 5;
}
and so on.
Also consider writing yourself a helper function
int randint(int lo, int hi) {
return rand() % (hi - lo) + lo;
}
so that you can write simply
this->strength = randint(5, 10);
Ninety percent of what we call "programming" is just finding sources of repetition and eliminating them.
$endgroup$
$begingroup$
I apologize, I should have clarified what my code is doing and what my expectations were. My post is not a troll, I prefer not to waste peoples time if I do not have to. I will make edits to the question. The numbers on the materials, weapons, and spells simply represent the amount of damage.
$endgroup$
– Justin
2 hours ago
$begingroup$
Thank you for the insight and helpful post though. I will take a look at more constructors and destructors. I used the struct with the hopes that I would be able to create a large combination of different weapon types/spells, being that my class has only just begun using structs I am not too familiar with constructors/destructors.
$endgroup$
– Justin
2 hours ago
$begingroup$
randint(5,10)
, as written, only generates 5 to 9, inclusive. You’d wanthi - lo + 1
to get the full range.
$endgroup$
– AJNeufeld
1 hour ago
$begingroup$
@AJNeufeld: Half-open ranges are the building blocks of C++ (as well as most other programming languages), and the sooner OP gets familiar with them, the better. See here and here for places I've used the phrase "half-open range" in previous reviews.
$endgroup$
– Quuxplusone
59 mins ago
add a comment |
$begingroup$
It's extremely unclear what you're asking (or whether your post might just be a troll post), so expect it to get closed shortly.
typedef struct weapons {
int dagger = 2, sword = 3, axe = 4, mace = 5, bow = 3, arrows = 2;
} weapons;
The typedef struct X { ... } X;
pattern is a C-ism; in C++ you don't need the typedef and can just write struct X { ... };
.
You're creating a struct type named weapons
with a bunch of per-instance member variables. This is almost certainly not what you meant to do. Probably what you meant was
enum class Weapon {
dagger = 2,
sword = 3,
axe = 4,
mace = 5,
};
so that you could later write
Weapon w = Weapon::sword;
if (w == Weapon::axe) { ... }
What you actually wrote, unfortunately, is simply nonsense.
character characterCreation(string name);
Look up the C++ notion of "constructors" (and also destructors). What you have here would normally be spelled something like
Character::Character(const std::string& name) {
this->name = name;
this->strength = rand() % 5 + 5;
}
and so on.
Also consider writing yourself a helper function
int randint(int lo, int hi) {
return rand() % (hi - lo) + lo;
}
so that you can write simply
this->strength = randint(5, 10);
Ninety percent of what we call "programming" is just finding sources of repetition and eliminating them.
$endgroup$
$begingroup$
I apologize, I should have clarified what my code is doing and what my expectations were. My post is not a troll, I prefer not to waste peoples time if I do not have to. I will make edits to the question. The numbers on the materials, weapons, and spells simply represent the amount of damage.
$endgroup$
– Justin
2 hours ago
$begingroup$
Thank you for the insight and helpful post though. I will take a look at more constructors and destructors. I used the struct with the hopes that I would be able to create a large combination of different weapon types/spells, being that my class has only just begun using structs I am not too familiar with constructors/destructors.
$endgroup$
– Justin
2 hours ago
$begingroup$
randint(5,10)
, as written, only generates 5 to 9, inclusive. You’d wanthi - lo + 1
to get the full range.
$endgroup$
– AJNeufeld
1 hour ago
$begingroup$
@AJNeufeld: Half-open ranges are the building blocks of C++ (as well as most other programming languages), and the sooner OP gets familiar with them, the better. See here and here for places I've used the phrase "half-open range" in previous reviews.
$endgroup$
– Quuxplusone
59 mins ago
add a comment |
$begingroup$
It's extremely unclear what you're asking (or whether your post might just be a troll post), so expect it to get closed shortly.
typedef struct weapons {
int dagger = 2, sword = 3, axe = 4, mace = 5, bow = 3, arrows = 2;
} weapons;
The typedef struct X { ... } X;
pattern is a C-ism; in C++ you don't need the typedef and can just write struct X { ... };
.
You're creating a struct type named weapons
with a bunch of per-instance member variables. This is almost certainly not what you meant to do. Probably what you meant was
enum class Weapon {
dagger = 2,
sword = 3,
axe = 4,
mace = 5,
};
so that you could later write
Weapon w = Weapon::sword;
if (w == Weapon::axe) { ... }
What you actually wrote, unfortunately, is simply nonsense.
character characterCreation(string name);
Look up the C++ notion of "constructors" (and also destructors). What you have here would normally be spelled something like
Character::Character(const std::string& name) {
this->name = name;
this->strength = rand() % 5 + 5;
}
and so on.
Also consider writing yourself a helper function
int randint(int lo, int hi) {
return rand() % (hi - lo) + lo;
}
so that you can write simply
this->strength = randint(5, 10);
Ninety percent of what we call "programming" is just finding sources of repetition and eliminating them.
$endgroup$
It's extremely unclear what you're asking (or whether your post might just be a troll post), so expect it to get closed shortly.
typedef struct weapons {
int dagger = 2, sword = 3, axe = 4, mace = 5, bow = 3, arrows = 2;
} weapons;
The typedef struct X { ... } X;
pattern is a C-ism; in C++ you don't need the typedef and can just write struct X { ... };
.
You're creating a struct type named weapons
with a bunch of per-instance member variables. This is almost certainly not what you meant to do. Probably what you meant was
enum class Weapon {
dagger = 2,
sword = 3,
axe = 4,
mace = 5,
};
so that you could later write
Weapon w = Weapon::sword;
if (w == Weapon::axe) { ... }
What you actually wrote, unfortunately, is simply nonsense.
character characterCreation(string name);
Look up the C++ notion of "constructors" (and also destructors). What you have here would normally be spelled something like
Character::Character(const std::string& name) {
this->name = name;
this->strength = rand() % 5 + 5;
}
and so on.
Also consider writing yourself a helper function
int randint(int lo, int hi) {
return rand() % (hi - lo) + lo;
}
so that you can write simply
this->strength = randint(5, 10);
Ninety percent of what we call "programming" is just finding sources of repetition and eliminating them.
answered 4 hours ago
QuuxplusoneQuuxplusone
12.5k12061
12.5k12061
$begingroup$
I apologize, I should have clarified what my code is doing and what my expectations were. My post is not a troll, I prefer not to waste peoples time if I do not have to. I will make edits to the question. The numbers on the materials, weapons, and spells simply represent the amount of damage.
$endgroup$
– Justin
2 hours ago
$begingroup$
Thank you for the insight and helpful post though. I will take a look at more constructors and destructors. I used the struct with the hopes that I would be able to create a large combination of different weapon types/spells, being that my class has only just begun using structs I am not too familiar with constructors/destructors.
$endgroup$
– Justin
2 hours ago
$begingroup$
randint(5,10)
, as written, only generates 5 to 9, inclusive. You’d wanthi - lo + 1
to get the full range.
$endgroup$
– AJNeufeld
1 hour ago
$begingroup$
@AJNeufeld: Half-open ranges are the building blocks of C++ (as well as most other programming languages), and the sooner OP gets familiar with them, the better. See here and here for places I've used the phrase "half-open range" in previous reviews.
$endgroup$
– Quuxplusone
59 mins ago
add a comment |
$begingroup$
I apologize, I should have clarified what my code is doing and what my expectations were. My post is not a troll, I prefer not to waste peoples time if I do not have to. I will make edits to the question. The numbers on the materials, weapons, and spells simply represent the amount of damage.
$endgroup$
– Justin
2 hours ago
$begingroup$
Thank you for the insight and helpful post though. I will take a look at more constructors and destructors. I used the struct with the hopes that I would be able to create a large combination of different weapon types/spells, being that my class has only just begun using structs I am not too familiar with constructors/destructors.
$endgroup$
– Justin
2 hours ago
$begingroup$
randint(5,10)
, as written, only generates 5 to 9, inclusive. You’d wanthi - lo + 1
to get the full range.
$endgroup$
– AJNeufeld
1 hour ago
$begingroup$
@AJNeufeld: Half-open ranges are the building blocks of C++ (as well as most other programming languages), and the sooner OP gets familiar with them, the better. See here and here for places I've used the phrase "half-open range" in previous reviews.
$endgroup$
– Quuxplusone
59 mins ago
$begingroup$
I apologize, I should have clarified what my code is doing and what my expectations were. My post is not a troll, I prefer not to waste peoples time if I do not have to. I will make edits to the question. The numbers on the materials, weapons, and spells simply represent the amount of damage.
$endgroup$
– Justin
2 hours ago
$begingroup$
I apologize, I should have clarified what my code is doing and what my expectations were. My post is not a troll, I prefer not to waste peoples time if I do not have to. I will make edits to the question. The numbers on the materials, weapons, and spells simply represent the amount of damage.
$endgroup$
– Justin
2 hours ago
$begingroup$
Thank you for the insight and helpful post though. I will take a look at more constructors and destructors. I used the struct with the hopes that I would be able to create a large combination of different weapon types/spells, being that my class has only just begun using structs I am not too familiar with constructors/destructors.
$endgroup$
– Justin
2 hours ago
$begingroup$
Thank you for the insight and helpful post though. I will take a look at more constructors and destructors. I used the struct with the hopes that I would be able to create a large combination of different weapon types/spells, being that my class has only just begun using structs I am not too familiar with constructors/destructors.
$endgroup$
– Justin
2 hours ago
$begingroup$
randint(5,10)
, as written, only generates 5 to 9, inclusive. You’d want hi - lo + 1
to get the full range.$endgroup$
– AJNeufeld
1 hour ago
$begingroup$
randint(5,10)
, as written, only generates 5 to 9, inclusive. You’d want hi - lo + 1
to get the full range.$endgroup$
– AJNeufeld
1 hour ago
$begingroup$
@AJNeufeld: Half-open ranges are the building blocks of C++ (as well as most other programming languages), and the sooner OP gets familiar with them, the better. See here and here for places I've used the phrase "half-open range" in previous reviews.
$endgroup$
– Quuxplusone
59 mins ago
$begingroup$
@AJNeufeld: Half-open ranges are the building blocks of C++ (as well as most other programming languages), and the sooner OP gets familiar with them, the better. See here and here for places I've used the phrase "half-open range" in previous reviews.
$endgroup$
– Quuxplusone
59 mins ago
add a comment |
Justin is a new contributor. Be nice, and check out our Code of Conduct.
Justin is a new contributor. Be nice, and check out our Code of Conduct.
Justin is a new contributor. Be nice, and check out our Code of Conduct.
Justin is a new contributor. Be nice, and check out our Code of Conduct.
Thanks for contributing an answer to Code Review Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
Use MathJax to format equations. MathJax reference.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fcodereview.stackexchange.com%2fquestions%2f215542%2fadventure-game-text-based-in-c%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown