Skip to content

Expected custom challenge zip structure

Tomas Floxo edited this page Oct 27, 2021 · 4 revisions

Zip structure:

challenge/: root folder
challenge/challenge.json: challenge definition
challenge/assets/background.png: challenge background
challenge/assets/splashChallenge.png: splash challenge image
challenge/assets/prizes/*.png: prizes images 
challenge/assets/obstacles/*.png: obstacle images

It is important to notice that all images should be PNG.

Challenge.json structure example:

{
  "id":"LitaFrutas",  //Internal name, only shows up in the url.

  // Title, description and clue
  "titulo":"Lita y frutas", 
  "enunciado":"Lita tiene que agarrar todas las frutas",
  "consignaInicial":"Usa condicionales", //This is the clue of the challenge, regardless of the name.

  //Scene grid. This list represents the columns of the grid, from the top to the bottom.
  "grid": ["[-,-,-,-,-,-,-,-,-],[pcosodefrutas,-,otl,ou,ou,ou,otr,-,-],[aL,pcosodefrutas,ol,oa,oa,oa,or,-,-],[-,-,old,od,od,od,ord,-,-],[pcosodefrutas,-,-,-,-,-,-,-,-]","[pcosodefrutas,-,-,-,-,-,-,-,-],[pcosodefrutas,-,otl,ou,ou,ou,otr,-,-],[aL,-,ol,oa,oa,oa,or,-,-],[-,-,old,od,od,od,ord,-,-],[-,-,-,-,-,-,-,-,-]"],

  //Available blocks for the challenge
  "blocks": [ 
    { "name": "MoverACasillaAbajo" },
    { "name": "MoverACasillaArriba" },
    { "name": "MoverACasillaIzquierda" },
    { "name": "MoverACasillaDerecha" },
    { "name": "ContarManzana" },
    { "name": "ContarBanana" },
    { "name": "Si"},
    { "name" : "SiguienteColumna"},
    { "name" : "Hasta"},
    { "name": "EstoySobreElInicio"}, 
    { "name": "EstoySobreElFinal" },
    { //Custom block
      "type": "action", 
      "name": "Recoger por etiqueta",
      "description": "Contar fruta",
      "interactsWith": "Prize"
    },
    {
      "type": "sensor",
      "description": "Hay frutinha acá",
      "icono": "icono.manzana.png",
      "funcionSensor": "tocando('ManzanaAnimada') || pilas.escena_actual().automata.tocando('BananaAnimada')",
      "esBool": true
    }
  ]
}