Javascript 在类似Zork的游戏中遇到JS问题-继续使用未定义文本而不是预期文本

Javascript 在类似Zork的游戏中遇到JS问题-继续使用未定义文本而不是预期文本,javascript,function,Javascript,Function,我正在看一个关于如何用JavaScript和jQuery制作类似Zork的游戏的教程。到目前为止,它一直在工作,但当我试图用方向命令更改运行游戏的位置时,我得到的是未定义的位置,而不是新房间 var currentRoom = "start" ; function changeRoom(dir) { if(rooms[currentRoom].directions[dir] !== undefined) { currentRoom = rooms[currentRoom].dire

我正在看一个关于如何用JavaScript和jQuery制作类似Zork的游戏的教程。到目前为止,它一直在工作,但当我试图用方向命令更改运行游戏的位置时,我得到的是未定义的位置,而不是新房间

var currentRoom = "start" ;

function changeRoom(dir) {
  if(rooms[currentRoom].directions[dir] !== undefined) {
    currentRoom = rooms[currentRoom].directions[dir];
    $('#game-text').append("<p>" + rooms[currentRoom].description + "</p>");
  } else {
      $('#game-text').append("<p> You cannot go that way </p>");
  }
}
var currentRoom=“开始”;
功能更衣室(dir){
if(房间[currentRoom]。方向[dir]!==未定义){
currentRoom=房间[currentRoom]。方向[dir];
$(“#游戏文本”)。追加(“”+房间[currentRoom]。说明+”

”; }否则{ $(“#游戏文本”).append(你不能走那条路

”; } }
编辑:此代码位于上述代码之后

$(document).ready(function(){
    $('#game-text').append("<p>" + rooms.start.description + "</p>");

    $(document).keypress(function(key){
      if(key.which === 13 && $('#user-input').is(':focus')){
          var value = $('#user-input').val().toLowerCase();
          switch(value) {
            case "north":
              changeRoom("north");
              break;
            case "south":
              changeRoom("south");
              break;
              case "east":
              changeRoom("east");
              break;
              case "west":
              changeRoom("west");
              break;
            default:
              alert("Invalid move!")
          }
      }
    })

})
$(文档).ready(函数(){
$(“#游戏文本”)。追加(“”+rooms.start.description+”

”; $(文档)。按键(功能(键){ if(key.which===13&&$(“#用户输入”)是(“:焦点”){ var value=$(“#用户输入”).val().toLowerCase(); 开关(值){ “北”案: 更衣室(“北”); 打破 “南方”案: 更衣室(“南”); 打破 “东”案: 更衣室(“东”); 打破 “西部”案: 更衣室(“西”); 打破 违约: 警报(“无效移动!”) } } }) })
我认为这与这部分代码有关。“你不能走那条路”的信息在应该走的时候出现;但是我没有得到我进入的房间的描述——只有一条未定义的信息。抱歉,如果我不清楚,这是我第一次尝试制作一个游戏,我对JavaScript知之甚少

编辑:这是两个“房间”

var房间={
“开始”:{
“描述”:“这是一个阳光明媚的日子,非常适合散步\
走路时,你会遇到一个十字路口\
你可以去北、南、东或北\
韦斯特,你选择哪条路,
“指示”:{
“北”:“死角”,
“西方”:“捷径”,
“东方”:“花园”,
“南”:“家”
}
“花园”:{
“描述”:“啊,正确的道路,我看到你选择了漫长的道路\
穿过洛夫利花园的路“,
“指示”:{
“西部”:“开始”,
“东”:“死角”
}
},

我们需要查看更多代码以提供帮助。您可以包括
房间设置为什么,以及
目录设置为什么?是类型条件不等于!==?您尝试过传统的不等于!=?调试器对
房间[currentRoom]的值说了什么.description
是吗?可能它真的没有定义。请阅读。@JasperBirkeneder让我们非常清楚。
调试器说没有错误
这不是调试器所说的。您是否在有问题的行上设置了断点以检查该行上的变量?哪些变量没有预期的值?
var rooms = {
  "start": {
    "description": "It is a sunny day, perfect for a walk!\
    While walking, you come across an intersection;\
    you can go <b>North</b>, <b>South</b>, <b>East</b> or\
    <b>West</b>, which way do you choose?",
  "directions": {
    "north": "deadend",
    "west": "shortcut",
    "east": "garden",
    "south": "home"
    }
  "garden": { 
    "discription": "Ahh the right path, I see you choose the long\
  way around which leads through a lovley garden",
    "directions": {
      "west": "start",
      "east": "deadend"
    }
  },