Запись оператора if для значения в словаре - PullRequest
0 голосов
/ 12 февраля 2020

Я учусь на уроках игрового дизайна и пишу текстовое приключение. Я установил словарь для игровой карты. Например:

"HALLWAY": {
    "name": "HALLWAY",
    "desc": "This is a hallway in a maze."
    "exits": [{
        "exit": "NORTH",
        "target": "DEADEND"
    }],
    "items": []

В начале игры у вас есть возможность «БРАТЬ» предмет. Если игрок взял предмет, я хочу, чтобы цель находилась в другом месте (не в тупике), В противном случае цель - в тупике. Как я могу записать оператор if / else в значение цели? Или есть более простой способ сделать это?

1 Ответ

0 голосов
/ 12 февраля 2020
<!DOCTYPE html>
<script>
'use strict';

let input_data = {
"HALLWAY": 
{ 
    "name": "HALLWAY"
   , "desc": "This is a hallway in a maze."
   , "exits": [{ "exit": "NORTH", "target": "DEADEND" }]
   , "items": []
}};

//input_data["HALLWAY"]["exits"][0]["exit"] = "SOUTH";
// ABOVE STATEMENT CAN BE USED TO UPDATE THE VALUE

alert("Value of exit: " + input_data["HALLWAY"]["exits"][0]["exit"]);

alert("Value of target: " + input_data["HALLWAY"]["exits"][0]["target"]);


# Now assume that somehow the value of items has changed
# I am doing it manually
input_data["HALLWAY"]["exits"][0]["items"] = { "item1": "value1" };

alert("Value of items: " + input_data["HALLWAY"]["exits"][0]["items"]["item1"]);

# --One way is to  ----- this is the condition that you check if the item has changed
if(input_data["HALLWAY"]["exits"][0]["items"] != null)
  input_data["HALLWAY"]["exits"][0]["target"] = "target changed";


# ---- the other way --- would be to check the count of items list whether it has changed.

alert("Value of target: " + input_data["HALLWAY"]["exits"][0]["target"]);
...