{
  "name": "Laberinto: camino mas corto con BFS",
  "savedAt": "2026-07-16T12:00:00.000000",
  "blocks": [
    { "def": {"template": "{0} = {1}", "category": "variables", "slots": [{"options": []}, {"options": []}], "isContainer": false, "isReporter": false}, "values": ["mapa", "[\"###########\", \"#S........#\", \"#########.#\", \"#.........#\", \"#.#########\", \"#.........#\", \"#########.#\", \"#........G#\", \"###########\"]"], "children": [] },
    { "def": {"template": "{0} = {1}", "category": "variables", "slots": [{"options": []}, {"options": []}], "isContainer": false, "isReporter": false}, "values": ["filas", "len(mapa)"], "children": [] },
    { "def": {"template": "{0} = {1}", "category": "variables", "slots": [{"options": []}, {"options": []}], "isContainer": false, "isReporter": false}, "values": ["columnas", "len(mapa[0])"], "children": [] },
    { "def": {"template": "{0} = {1}", "category": "variables", "slots": [{"options": []}, {"options": []}], "isContainer": false, "isReporter": false}, "values": ["mundo", "Patches(filas, columnas)"], "children": [] },
    { "def": {"template": "{0} = {1}", "category": "variables", "slots": [{"options": []}, {"options": []}], "isContainer": false, "isReporter": false}, "values": ["inicio", "(0, 0)"], "children": [] },
    { "def": {"template": "{0} = {1}", "category": "variables", "slots": [{"options": []}, {"options": []}], "isContainer": false, "isReporter": false}, "values": ["meta", "(0, 0)"], "children": [] },

    { "def": {"template": "for {0} in range({1}):", "category": "control", "slots": [{"options": []}, {"options": []}], "isContainer": true, "isReporter": false}, "values": ["fila", "filas"], "children": [
      { "def": {"template": "for {0} in range({1}):", "category": "control", "slots": [{"options": []}, {"options": []}], "isContainer": true, "isReporter": false}, "values": ["columna", "columnas"], "children": [
        { "def": {"template": "{0} = {1}", "category": "variables", "slots": [{"options": []}, {"options": []}], "isContainer": false, "isReporter": false}, "values": ["celda", "mapa[fila][columna]"], "children": [] },
        { "def": {"template": "if {0}:", "category": "control", "slots": [{"options": []}], "isContainer": true, "isReporter": false}, "values": ["celda == \"#\""], "children": [
          { "def": {"template": "{0}[{1}][{2}] = {3}", "category": "variables", "slots": [{"options": []}, {"options": []}, {"options": []}, {"options": []}], "isContainer": false, "isReporter": false}, "values": ["mundo", "fila", "columna", "(30, 30, 40)"], "children": [] }
        ]},
        { "def": {"template": "else:", "category": "control", "slots": [], "isContainer": true, "isReporter": false}, "values": [], "children": [
          { "def": {"template": "{0}[{1}][{2}] = {3}", "category": "variables", "slots": [{"options": []}, {"options": []}, {"options": []}, {"options": []}], "isContainer": false, "isReporter": false}, "values": ["mundo", "fila", "columna", "(235, 235, 235)"], "children": [] }
        ]},
        { "def": {"template": "if {0}:", "category": "control", "slots": [{"options": []}], "isContainer": true, "isReporter": false}, "values": ["celda == \"S\""], "children": [
          { "def": {"template": "{0} = {1}", "category": "variables", "slots": [{"options": []}, {"options": []}], "isContainer": false, "isReporter": false}, "values": ["inicio", "(fila, columna)"], "children": [] },
          { "def": {"template": "{0}[{1}][{2}] = {3}", "category": "variables", "slots": [{"options": []}, {"options": []}, {"options": []}, {"options": []}], "isContainer": false, "isReporter": false}, "values": ["mundo", "fila", "columna", "\"green\""], "children": [] }
        ]},
        { "def": {"template": "if {0}:", "category": "control", "slots": [{"options": []}], "isContainer": true, "isReporter": false}, "values": ["celda == \"G\""], "children": [
          { "def": {"template": "{0} = {1}", "category": "variables", "slots": [{"options": []}, {"options": []}], "isContainer": false, "isReporter": false}, "values": ["meta", "(fila, columna)"], "children": [] },
          { "def": {"template": "{0}[{1}][{2}] = {3}", "category": "variables", "slots": [{"options": []}, {"options": []}, {"options": []}, {"options": []}], "isContainer": false, "isReporter": false}, "values": ["mundo", "fila", "columna", "\"red\""], "children": [] }
        ]}
      ]}
    ]},

    { "def": {"template": "{0} = {1}", "category": "variables", "slots": [{"options": []}, {"options": []}], "isContainer": false, "isReporter": false}, "values": ["cola", "[inicio]"], "children": [] },
    { "def": {"template": "{0} = {1}", "category": "variables", "slots": [{"options": []}, {"options": []}], "isContainer": false, "isReporter": false}, "values": ["visitado", "{}"], "children": [] },
    { "def": {"template": "{0}[{1}] = {2}", "category": "variables", "slots": [{"options": []}, {"options": []}, {"options": []}], "isContainer": false, "isReporter": false}, "values": ["visitado", "inicio", "True"], "children": [] },
    { "def": {"template": "{0} = {1}", "category": "variables", "slots": [{"options": []}, {"options": []}], "isContainer": false, "isReporter": false}, "values": ["padre", "{}"], "children": [] },
    { "def": {"template": "{0} = {1}", "category": "variables", "slots": [{"options": []}, {"options": []}], "isContainer": false, "isReporter": false}, "values": ["encontrado", "False"], "children": [] },

    { "def": {"template": "while {0}:", "category": "control", "slots": [{"options": []}], "isContainer": true, "isReporter": false}, "values": ["len(cola) > 0 and not encontrado"], "children": [
      { "def": {"template": "{0} = {1}", "category": "variables", "slots": [{"options": []}, {"options": []}], "isContainer": false, "isReporter": false}, "values": ["actual", "cola.pop(0)"], "children": [] },
      { "def": {"template": "if {0}:", "category": "control", "slots": [{"options": []}], "isContainer": true, "isReporter": false}, "values": ["actual == meta"], "children": [
        { "def": {"template": "{0} = {1}", "category": "variables", "slots": [{"options": []}, {"options": []}], "isContainer": false, "isReporter": false}, "values": ["encontrado", "True"], "children": [] }
      ]},
      { "def": {"template": "else:", "category": "control", "slots": [], "isContainer": true, "isReporter": false}, "values": [], "children": [
        { "def": {"template": "{0} = {1}", "category": "variables", "slots": [{"options": []}, {"options": []}], "isContainer": false, "isReporter": false}, "values": ["f", "actual[0]"], "children": [] },
        { "def": {"template": "{0} = {1}", "category": "variables", "slots": [{"options": []}, {"options": []}], "isContainer": false, "isReporter": false}, "values": ["c", "actual[1]"], "children": [] },
        { "def": {"template": "{0} = {1}", "category": "variables", "slots": [{"options": []}, {"options": []}], "isContainer": false, "isReporter": false}, "values": ["vecinos", "[(f - 1, c), (f + 1, c), (f, c - 1), (f, c + 1)]"], "children": [] },
        { "def": {"template": "for {0} in {1}:", "category": "control", "slots": [{"options": []}, {"options": []}], "isContainer": true, "isReporter": false}, "values": ["vecino", "vecinos"], "children": [
          { "def": {"template": "{0} = {1}", "category": "variables", "slots": [{"options": []}, {"options": []}], "isContainer": false, "isReporter": false}, "values": ["vf", "vecino[0]"], "children": [] },
          { "def": {"template": "{0} = {1}", "category": "variables", "slots": [{"options": []}, {"options": []}], "isContainer": false, "isReporter": false}, "values": ["vc", "vecino[1]"], "children": [] },
          { "def": {"template": "if {0}:", "category": "control", "slots": [{"options": []}], "isContainer": true, "isReporter": false}, "values": ["vf >= 0 and vf < filas and vc >= 0 and vc < columnas"], "children": [
            { "def": {"template": "if {0}:", "category": "control", "slots": [{"options": []}], "isContainer": true, "isReporter": false}, "values": ["mapa[vf][vc] != \"#\" and vecino not in visitado"], "children": [
              { "def": {"template": "{0}[{1}] = {2}", "category": "variables", "slots": [{"options": []}, {"options": []}, {"options": []}], "isContainer": false, "isReporter": false}, "values": ["visitado", "vecino", "True"], "children": [] },
              { "def": {"template": "{0}[{1}] = {2}", "category": "variables", "slots": [{"options": []}, {"options": []}, {"options": []}], "isContainer": false, "isReporter": false}, "values": ["padre", "vecino", "actual"], "children": [] },
              { "def": {"template": "{0}.append({1})", "category": "variables", "slots": [{"options": []}, {"options": []}], "isContainer": false, "isReporter": false}, "values": ["cola", "vecino"], "children": [] },
              { "def": {"template": "if {0}:", "category": "control", "slots": [{"options": []}], "isContainer": true, "isReporter": false}, "values": ["mapa[vf][vc] == \".\""], "children": [
                { "def": {"template": "{0}[{1}][{2}] = {3}", "category": "variables", "slots": [{"options": []}, {"options": []}, {"options": []}, {"options": []}], "isContainer": false, "isReporter": false}, "values": ["mundo", "vf", "vc", "(150, 190, 255)"], "children": [] }
              ]}
            ]}
          ]}
        ]}
      ]}
    ]},

    { "def": {"template": "print({0})", "category": "salida", "slots": [{"options": []}], "isContainer": false, "isReporter": false}, "values": ["\"¿Se encontró un camino?\""], "children": [] },
    { "def": {"template": "print({0})", "category": "salida", "slots": [{"options": []}], "isContainer": false, "isReporter": false}, "values": ["encontrado"], "children": [] },

    { "def": {"template": "if {0}:", "category": "control", "slots": [{"options": []}], "isContainer": true, "isReporter": false}, "values": ["encontrado"], "children": [
      { "def": {"template": "{0} = {1}", "category": "variables", "slots": [{"options": []}, {"options": []}], "isContainer": false, "isReporter": false}, "values": ["camino", "[]"], "children": [] },
      { "def": {"template": "{0} = {1}", "category": "variables", "slots": [{"options": []}, {"options": []}], "isContainer": false, "isReporter": false}, "values": ["actual", "meta"], "children": [] },
      { "def": {"template": "while {0}:", "category": "control", "slots": [{"options": []}], "isContainer": true, "isReporter": false}, "values": ["actual != inicio"], "children": [
        { "def": {"template": "{0}.append({1})", "category": "variables", "slots": [{"options": []}, {"options": []}], "isContainer": false, "isReporter": false}, "values": ["camino", "actual"], "children": [] },
        { "def": {"template": "{0} = {1}", "category": "variables", "slots": [{"options": []}, {"options": []}], "isContainer": false, "isReporter": false}, "values": ["actual", "padre[actual]"], "children": [] }
      ]},
      { "def": {"template": "{0}.append({1})", "category": "variables", "slots": [{"options": []}, {"options": []}], "isContainer": false, "isReporter": false}, "values": ["camino", "inicio"], "children": [] },
      { "def": {"template": "{0}.reverse()", "category": "variables", "slots": [{"options": []}], "isContainer": false, "isReporter": false}, "values": ["camino"], "children": [] },
      { "def": {"template": "print({0})", "category": "salida", "slots": [{"options": []}], "isContainer": false, "isReporter": false}, "values": ["\"Pasos del camino más corto:\""], "children": [] },
      { "def": {"template": "print({0})", "category": "salida", "slots": [{"options": []}], "isContainer": false, "isReporter": false}, "values": ["len(camino)"], "children": [] },

      { "def": {"template": "for {0} in {1}:", "category": "control", "slots": [{"options": []}, {"options": []}], "isContainer": true, "isReporter": false}, "values": ["paso", "camino"], "children": [
        { "def": {"template": "if {0}:", "category": "control", "slots": [{"options": []}], "isContainer": true, "isReporter": false}, "values": ["paso != inicio and paso != meta"], "children": [
          { "def": {"template": "{0} = {1}", "category": "variables", "slots": [{"options": []}, {"options": []}], "isContainer": false, "isReporter": false}, "values": ["f", "paso[0]"], "children": [] },
          { "def": {"template": "{0} = {1}", "category": "variables", "slots": [{"options": []}, {"options": []}], "isContainer": false, "isReporter": false}, "values": ["c", "paso[1]"], "children": [] },
          { "def": {"template": "{0}[{1}][{2}] = {3}", "category": "variables", "slots": [{"options": []}, {"options": []}, {"options": []}, {"options": []}], "isContainer": false, "isReporter": false}, "values": ["mundo", "f", "c", "(255, 210, 60)"], "children": [] }
        ]}
      ]},

      { "def": {"template": "{0} = {1}", "category": "variables", "slots": [{"options": []}, {"options": []}], "isContainer": false, "isReporter": false}, "values": ["t", "Turtle()"], "children": [] },
      { "def": {"template": "{0}.shape({1})", "category": "tortuga", "slots": [{"options": []}, {"options": []}], "isContainer": false, "isReporter": false}, "values": ["t", "\"point\""], "children": [] },
      { "def": {"template": "{0}.penup()", "category": "tortuga", "slots": [{"options": []}], "isContainer": false, "isReporter": false}, "values": ["t"], "children": [] },
      { "def": {"template": "for {0} in {1}:", "category": "control", "slots": [{"options": []}, {"options": []}], "isContainer": true, "isReporter": false}, "values": ["paso", "camino"], "children": [
        { "def": {"template": "{0} = {1}", "category": "variables", "slots": [{"options": []}, {"options": []}], "isContainer": false, "isReporter": false}, "values": ["f", "paso[0]"], "children": [] },
        { "def": {"template": "{0} = {1}", "category": "variables", "slots": [{"options": []}, {"options": []}], "isContainer": false, "isReporter": false}, "values": ["c", "paso[1]"], "children": [] },
        { "def": {"template": "{0} = {1}", "category": "variables", "slots": [{"options": []}, {"options": []}], "isContainer": false, "isReporter": false}, "values": ["x", "-160 + (c + 0.5) * (320 / columnas)"], "children": [] },
        { "def": {"template": "{0} = {1}", "category": "variables", "slots": [{"options": []}, {"options": []}], "isContainer": false, "isReporter": false}, "values": ["y", "-160 + (f + 0.5) * (320 / filas)"], "children": [] },
        { "def": {"template": "{0}.goto({1}, {2})", "category": "tortuga", "slots": [{"options": []}, {"options": []}, {"options": []}], "isContainer": false, "isReporter": false}, "values": ["t", "x", "y"], "children": [] }
      ]}
    ]},
    { "def": {"template": "else:", "category": "control", "slots": [], "isContainer": true, "isReporter": false}, "values": [], "children": [
      { "def": {"template": "print({0})", "category": "salida", "slots": [{"options": []}], "isContainer": false, "isReporter": false}, "values": ["\"No hay camino entre inicio y meta.\""], "children": [] }
    ]}
  ]
}
