我正在研究由4個房間組成的文本遊戲。房間佈置成一個箱子,分爲4個部分(NW,NE,SE,SW)。您將在NW房間開始旅行房間,順時針方向在SW房間結束。使用swtich添加附加條件
無論如何,我有包含在交換機的基本走勢:
switch (input) {
case "help":
$("#messageHelp").properDisplay();
break;
case "take sword":
if (currentRoom == "nwRoom") {
$("<p>You picked up a sword.</p>").properDisplay();
} else {
$("<p>The sword is not here.</p>").properDisplay();
}
break;
case "go east":
if (currentRoom == "nwRoom") {
currentRoom = "neRoom";
$("<p>You are now in the North East Room.</p>").properDisplay();
} else {
$("<p>You can't go that way.</p>").properDisplay();
}
break;
case "go west":
if (currentRoom == "neRoom") {
currentRoom = "nwRoom";
$("<p>You are now in the North West Room.</p>").properDisplay();
} else {
$("<p>You can't go that way.</p>").properDisplay();
}
break;
case "go south":
if (currentRoom == "neRoom") {
currentRoom = "seRoom";
$("<p>You are now in the South East Room.</p>").properDisplay();
} else {
$("<p>You can't go that way.</p>").properDisplay();
}
break;
case "go north":
if (currentRoom == "seRoom") {
currentRoom = "neRoom";
$("<p>You are now in the North East Room.</p>").properDisplay();
} else {
$("<p>You can't go that way.</p>").properDisplay();
}
break;
這裏是我的問題 - 需要複製西方的方向,因爲你應該能夠在樓上的房間前往東/西爲以及較低的房間。我怎麼做?我本來以爲一個或布爾的:
if (currentRoom == "swRoom" || "nwRoom")
但隨後剩餘的代碼將毫無意義。由於第一次使用中斷,我無法複製整個陳述。如果可能的話,我想堅持使用SWITCH作爲大部分代碼,因爲它比大量if語句清晰得多。最終,我想繼續使用它將它變成一個更大的遊戲,但是我正在使用這4個房間來教會我自己的基本知識。
謝謝!
標識提出一個完全不同的方法,使物體來代表您的每一個房間,然後每個房間可以知道什麼其他房間連接到 –
這將包括能夠做下來,櫥櫃納尼亞,傳送器等 –
@KeithNicholas - 我有一個對象的基本瞭解,並在我搬到開關之前就朝着這個方向前進。你能告訴我一個如何創建對象的例子,以便你可以在多個方向上移動? 我猜是這樣的: VAR seRoom = { 門1: 「nwRoom」 門2: 「swRoom」 }; 或者沿着這些線?我的問題是我可以在其他對象中複製相同的命令(door1,door2),但結果不同? (即seRoom.door1 vs nwRoom.door1) – megler