www.webdeveloper.com
Results 1 to 2 of 2

Thread: I dont understand whats going on with this variable.

  1. #1
    Join Date
    Feb 2013
    Posts
    19

    I dont understand whats going on with this variable.

    The name variable in my text game acts funny.When I run the stats or help functions which are triggered by typing in those words, it changes the name variable to either stats or help. Why?
    Here is the game:

    //mycode

    <html>

    <head>
    <title> Game of Thrones the Text Game </title>


    <head>

    <body>
    <header>

    <script src = "http://ajax.googleapis.com/ajax/libs/jquery/1.6.3/jquery.min.js"> </script>

    <script>

    var name = "";
    var strength = 1;
    var agility = 1;
    var lifepoints = 10;
    var armorrating = 0;
    var weaponrating = 0;


    $(document).ready(function() {

    function CheckForCommand(choice, go) {
    if (choice.toUpperCase() === "help".toUpperCase()) {
    Help(go);
    };

    if (choice.toUpperCase() === "stats".toUpperCase()) {
    CheckStats(go);

    };



    };


    function CheckStats(go) {
    $("header").append("<p>-= Stats =-");
    $("header").append("<p>Strength " + strength + "</p>");
    $("header").append("<p>Agility " + agility + "</p>");
    $("header").append("<p>Life Points " + lifepoints + "</p>");
    $("header").append("<p>Armor Rating " + armorrating + "</p>");
    $("header").append("<p>Weapon Rating " + weaponrating + "</p>");

    $("#button").click(function(){
    $("p").hide();
    go();
    });

    };

    function Help(go) {
    $("header").append("<p>-= Help =-<p>");
    $("header").append("<p>The TALK command can be used to talk to a quest npc if one is present. Quest NPCs appear in certain places depending on your level. Completing quests will earn you rewards.</p>");
    $("header").append("<p>The ATTACK command can be used to attack a Quest NPC if is part of a quest.</p>");
    $("header").append("<p>The STATS command can be used to check you stats such as armor rating and strength. As your level increases your stats will increase.</p>");
    $("header").append("<p>The EQUIP command can be used to equip different items.</p>");


    $("#button").click(function(){
    $("p").hide();
    go();
    });
    };

    function KingsLanding() {
    $("header").append("<p>-= King's Landing =-</p>");
    $("header").append("<p>1. Enter Weapon Smith</p>");
    $("header").append("<p>2. Enter Kings Landing Armory</p>");
    $("header").append("<p>3. Enter Kings Landing College of Proffesions</p>");
    $("header").append("<p>4. Enter Black Pony Bar</p>");
    $("header").append("<p>5. Enter Provision Store</p>");
    $("header").append("<p>6. Leave Kings Landing</p>");
    $("header").append("<p>" + name + ", Enter a number. Type help for more information.</p>");


    $("#button").click(function(){

    $("p").hide();
    var choice = $("#text").val();
    CheckForCommand(choice, KingsLanding);
    });


    };

    function choosename() {

    $("header").append("<p>Please enter your characters name.</p>");

    $("#button").click(function(){
    $("p").hide();
    name = $("#text").val();
    KingsLanding();
    });
    };




    choosename();

    });

    </script>

    </header>

    <body>

    <input type="text" id="text">
    <p></p>
    <input type="button" value="ok" id = "button">

    </body>

    </html>

  2. #2
    Join Date
    Oct 2007
    Location
    Western Massachusetts, USA
    Posts
    387
    You overlooked the fact that you have two separate if statements - combine them with an else statement:
    This:
    Code:
    function CheckForCommand(choice, go) {
      if (choice.toUpperCase() === "help".toUpperCase()) {
      Help(go);
      };
      if (choice.toUpperCase() === "stats".toUpperCase()) {
      CheckStats(go);
      };
    };
    Could be:
    Code:
    function CheckForCommand(choice, go) {
      if (choice.toUpperCase() === "help".toUpperCase()) {
      Help(go);
      }
      else if (choice.toUpperCase() === "stats".toUpperCase()) {
      CheckStats(go);
      }
    }
    Should be:
    Code:
    function CheckForCommand(choice, go) {
      switch (choice.toUpperCase()) {
      case "HELP": Help(go); break;
      case "STATS": CheckStats(go); break;
      }
    }
    Note that scopes don't need trailing semicolons unless they are part of statements. E.g. "var something = function(){};" should be done while "function(){};" should not.
    Last edited by savvykms; 07-03-2013 at 05:30 PM.
    Computer programmer / web developer.

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
HTML5 Development Center



Recent Articles