Adventure Game (text based) in C++Text-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 EngineHaskell Text-Adventure GameJava text-based adventure gameShort text-based adventure gameText-based adventure and combat game

Why does Bach not break the rules here?

Hacking a Safe Lock after 3 tries

Why one should not leave fingerprints on bulbs and plugs?

What do Xenomorphs eat in the Alien series?

How to write cleanly even if my character uses expletive language?

Min function accepting varying number of arguments in C++17

A Cautionary Suggestion

Look at your watch and tell me what time is it. vs Look at your watch and tell me what time it is

Use of undefined constant bloginfo

Is it true that good novels will automatically sell themselves on Amazon (and so on) and there is no need for one to waste time promoting?

How to make healing in an exploration game interesting

Why did it take so long to abandon sail after steamships were demonstrated?

How to use deus ex machina safely?

How big is a MODIS 250m pixel in reality?

Why Choose Less Effective Armour Types?

What approach do we need to follow for projects without a test environment?

Could the Saturn V actually have launched astronauts around Venus?

Why do Australian milk farmers need to protest supermarkets' milk price?

Welcoming 2019 Pi day: How to draw the letter π?

Is it possible to upcast ritual spells?

compactness of a set where am I going wrong

How to deal with taxi scam when on vacation?

Who is flying the vertibirds?

What are the naunces between the use of 訊く instead of 聞く in the following sentence?



Adventure Game (text based) in C++


Text-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 EngineHaskell Text-Adventure GameJava text-based adventure gameShort text-based adventure gameText-based adventure and combat game













1












$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.



#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;










share|improve this question









New contributor




Justin is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.







$endgroup$
















    1












    $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.



    #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;










    share|improve this question









    New contributor




    Justin is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
    Check out our Code of Conduct.







    $endgroup$














      1












      1








      1





      $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.



      #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;










      share|improve this question









      New contributor




      Justin is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.







      $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.



      #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






      share|improve this question









      New contributor




      Justin is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.











      share|improve this question









      New contributor




      Justin is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.









      share|improve this question




      share|improve this question








      edited 6 mins ago









      Jamal

      30.4k11121227




      30.4k11121227






      New contributor




      Justin is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.









      asked 44 mins ago









      JustinJustin

      61




      61




      New contributor




      Justin is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.





      New contributor





      Justin is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.






      Justin is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.




















          1 Answer
          1






          active

          oldest

          votes


















          1












          $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.





          share









          $endgroup$












            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.









            draft saved

            draft discarded


















            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









            1












            $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.





            share









            $endgroup$

















              1












              $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.





              share









              $endgroup$















                1












                1








                1





                $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.





                share









                $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.






                share











                share


                share










                answered 5 mins ago









                QuuxplusoneQuuxplusone

                12.5k12061




                12.5k12061




















                    Justin is a new contributor. Be nice, and check out our Code of Conduct.









                    draft saved

                    draft discarded


















                    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.




                    draft saved


                    draft discarded














                    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





















































                    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







                    Popular posts from this blog

                    कुँवर स्रोत दिक्चालन सूची"कुँवर""राणा कुँवरके वंशावली"

                    Why is a white electrical wire connected to 2 black wires?How to wire a light fixture with 3 white wires in box?How should I wire a ceiling fan when there's only three wires in the box?Two white, two black, two ground, and red wire in ceiling box connected to switchWhy is there a white wire connected to multiple black wires in my light box?How to wire a light with two white wires and one black wireReplace light switch connected to a power outlet with dimmer - two black wires to one black and redHow to wire a light with multiple black/white/green wires from the ceiling?Ceiling box has 2 black and white wires but fan/ light only has 1 of eachWhy neutral wire connected to load wire?Switch with 2 black, 2 white, 2 ground and 1 red wire connected to ceiling light and a receptacle?

                    चैत्य भूमि चित्र दीर्घा सन्दर्भ बाहरी कडियाँ दिक्चालन सूची"Chaitya Bhoomi""Chaitya Bhoomi: Statue of Equality in India""Dadar Chaitya Bhoomi: Statue of Equality in India""Ambedkar memorial: Centre okays transfer of Indu Mill land"चैत्यभमि