Crea tu propio Wherigo (10) EXPRESSIONS

Esta entrada forma parte del curso “Crea tu propio Wherigo”: Pincha en los siguientes enlaces para ver las entregas anteriores del mismo:

1: EL RETO

2: COMENZANDO NUESTRO CARTUCHO

3: GRÁFICOS Y AUDIO: LOS MEDIA

4: DE ZONA EN ZONA y tiro porque me toca

5: PERSONAJES Y OBJETOS… dialogando con unos y cogiendo a los otros

6: TASK Y VARIABLES… Vamos avanzando

7: INPUTS… ¡Comienza la diversión con la Action If/Else!

8: TIMERS… Carreras contrarreloj!!!

9: FUNCTIONS Y ACTIONS

……………………..

Wherigo es una marca registrada.

Antes de nada recomiendo encarecidamente leer las guidelines oficiales, así como la sección de preguntas frecuentes para tener claro que podemos y que no podemos hacer a la hora de crear y publicar un caché Wherigo.

………………………

EXPRESSIONS

Como sabrá de sobra cualquiera que haya seguido el tutorial hasta aquí, las distintas Expressions que podemos utilizar en Urwigo son elementos que nos sirven para poner en relación las Actions que vimos en la anterior entrega y las propiedades de los distintos Objects que hayamos creado (Zones, Items, Characters…). Aunque muchos de ellos ya los hemos utilizado y explicado a la hora de plantear ejemplos a los largo del tutorial, vamos a hacer una enumeración de todos ellos junto a nuevos ejemplos a fin de tener un listado lo más completo posible.

La Expressions se encuentran en la columna izquierda de la ventana de Urwigo, bajo las Actions, y son las siguientes:

1: COMPARE: Utilizamos COMPARE para, obviamente,  comparar dos valores. Generalmente va asociado a la Action If/Else, a fin de establecer una condición para el caso de que un elemento sea igual, diferente, mayor que, menor que, mayor o igual que y menor o igual que.

Para utilizala, la arrastraremos al lugar donde queramos que se realice la comparación (siempre antes de establecer las consecuencias para cuando se de el caso establecido en la comparación) y colocaremos en el lado izquierdo el elemento que queremos comparar (por ejemplo, una variable). A continuación, si no vamos a utilizar “igual que“, haremos click sobre el signo “=” para seleccionar otro en el recuadro que aparecerá en la parte superior derecha de la pantalla. Por último escribiremos en el lado derecho de COMPARE el valor de texto o numérico que corresponda según lo que queramos realizar. 3825744_640pxAplicado a variables numéricas, la Expression COMPARE podría utilizarse, por ejemplo, para que durante una partida de parchís, al sacar 3 seises consecutivos hubiera que volver a casa:

3825744_640pxEn primer lugar le decimos al programa cuando debe ejecutar este evento, es decir: si el número sacado por el dado es un 6. A continuación incrementamos en 1 la variable “número de seises consecutivos” y establecemos que si esta variable a llegado al número 3, se vuelva a poner a 0 y mueva la ficha roja a su casa.

AND

La expresión AND representa la conjunción “Y“, que sirve para establecer una condición en la que se de más de un condicionante. Por ejemplo, si la aventura debe acabar cuando el jugador encuentre una llave y consiga 100 monedas de oro, podríamos establecer la condición: Si el jugador tiene la llave en su inventario Y la variable monedas es igual a 100, hacer que el cartucho haya sido completado”.

Para utilizarla la arrastraremos al lugar donde nos interese y a continuación arrastraremos dentro tantas Expressions como condicionantes queramos establecer. El ejemplo dado anteriormente estaría representado por la siguiente imagen:

3825744_640pxOR

La expresión OR representa la conjunción “O“, que sirve para establecer una consecuencia para el caso en el que se den situaciones alternativas. Por ejemplo, si la aventura debe acabar cuando el jugador encuentre una llave, o bien cuando consiga 100 monedas de oro, podríamos establecer la condición: Si el jugador tiene la llave en su inventario O la variable monedas es igual a 100, hacer que el cartucho haya sido completado”. Así el cartucho finalizaría cuando se diera cualquiera de esas dos circunstancias.

Para utilizarla la arrastraremos al lugar donde nos interese y a continuación arrastraremos dentro tantas Expressions como alternativas queramos establecer. El ejemplo dado anteriormente estaría representado por la siguiente imagen:3825744_640px

NUMERIC OPERATION

A través de la Expression NUMERIC OPERATION podemos hacer que el cartucho realice una operación matemática con unos valores determinados. Las operaciones que permite realizar son suma, resta, multiplicación, división, porcentaje y potenciación. Además, permite establecer si se permite o no redondeo (y en su caso hacia arriba o hacia abajo) y el número de decimales que tendrá el resultado final de la operación. Todo ello se seleccionará en el cuadro que aparecerá en la parte superior derecha de la pantalla al seleccionar la Expression.

Operar con esta Expression es algo más complicado que con las que hemos visto hasta ahora. ¿Cuándo podríamos necesitar que el cartucho realice una operación matemática? Pues, por ejemplo se me ocurre que para que, independientemente de cuantas monedas tenga en su poder el jugador, al llegar a una determinada zona se dupliquen, por poner un ejemplo. Lo que debemos hacer es emplear la Action SET para hacer que la variable monedas sea igual a la variable monedas multiplicada por 2. Para ello arrastraremos la Expression NUMERIC OPERATION al lado derecho del SET (en el izquierdo colocaremos la variable monedas), seleccionaremos la operación “multiplicar” en el cuadro que aparece en la parte superior derecha de la pantalla y a continuación colocaremos una Expression VALUE (más adelante veremos para que sirve) a la que le daremos el valor 2. Así, el evento debería quedar como en la siguiente imagen:

3825744_640pxCONCATENATE

La Expression CONCATENATE sirve para concatenar dos o más cadenas de texto y mostrarlas al jugador como si de una sola se tratara. Cada una de estas cadenas de texto puede tener un origen distinto, pudiendo ser variables, VALUES de tipo string (que veremos más adelante) o cualquier otro texto del cartucho como por ejemplo el nombre del jugador o la respuesta dada por este a un INPUT, por ejemplo.

Se debe de emplear dentro de Dialogs o Messages, por lo que para utilizarla, en primer lugar arrastraremos un Dialog al lugar donde queramos mostrar la concatenación, a continuación arrastrar dentro de ese dialog la Expression CONCATENATE y, finalmente, ordenar dentro de esta Expresion todas las cadenas de texto que queramos enlazar.

Por ejemplo se podrían concatenar las siguientes 3 cadenas de texto obteniendo un resultado muy llamativo:

  1. VALUE de tipo STRING con el texto: “TIENES “
  2. VARIABLE MONEDAS
  3. VALUE de tipo STRING con el texto: ” MONEDAS “
  4. Player.Name

De esta forma, el texto resultante se adaptaría a cada jugador. Por ejemplo en mi caso diría “Tienes 3 monedas manupor3”, por ejemplo. El evento debería quedar como en la siguiente imagen:

3825744_640px

CONTAINS

La Expression CONTAINS sirve para establecer consecuencias en el caso de que uno de los Objects del cartucho contenga en su interior a otro. Por ejemplo, “Si la Zona 1 contiene el Item 1, entonces…” o “Si el inventario del jugador contiene el Item 2, entonces…”.

Su utilización es sencilla y va ligada a un evento del tipo If/Else. Tras arrastrarla al lugar que corresponda debemos colocar a la izquierda el Object contenedor (Zona 1 o Player en los ejemplos anteriores) y a la derecha el Object contenido (Item 1 e Item 2 en los ejemplos anteriores). El primero de los ejemplos debería quedar como en la siguiente imagen, estableciendo a continuación la consecuencia que queramos:

3825744_640px

VALUE

La Expression VALUE nos permite definir un valor de tipo texto, numérico o verdadero/falso para que lo podamos utilizar como necesitemos. Su utilización, como hemos visto al ver las Expressions CONCATENATE y NUMERIC OPERATION consiste en arrastrarla al lugar donde necesitemos definir un valor manualmente y establecer el tipo de valor y su contenido en sus propiedades, en la parte superior derecha de la pantalla:

3825744_640px

ANSWER

Como vimos en su momento al analizar los INPUTS, la Expression ANSWER representa la respuesta dada por el jugador a un INPUT. Así, podremos crear eventos del tipo If/Else para establecer una consecuencia distinta dependiendo de cada posible respuesta o establecer que el valor de una variable sea igual a dicha respuesta, por poner sólo dos ejemplos.

De esta manera, para activar la zona 1 en el caso de que la respuesta del jugador a un INPUT llamado “SI o NO” sea SI, el evento debería quedar como en la siguiente imagen:

3825744_640pxOtro ejemplo. Para hacer que la variable numérica MONEDAS adquiera el valor de la respuesta del jugador a un INPUT de tipo numérico llamado “¿Cuantas monedas quieres coger?, el evento debería quedar como en la siguiente imagen:

3825744_640pxMESSAGE BUTTON

Como vimos al explicar la Action Message, MESSAGE BUTTON sirve para establecer las consecuencias de pulsar cada uno de los botones que ofrece dicho Message. Su utilización es muy sencilla, debiendo incluirse dentro del On clicked de un Message a través de un evento If/Else, seleccionar el botón al que va a hacer referencia en el cuadro que aparecerá en la parte superior derecha de la pantalla y establecer a continuación su consecuencia. El evento tipo debería quedar como la siguiente imagen:

3825744_640pxDISTANCE TO A ZONE

A través de esta Expression estableceremos unas consecuencias para el caso de que el jugador se encuentre dentro de una zona (Inside) o en el valor que hayamos establecido como In proximity, In distance. También se puede utilizar para el caso de que dicha zona no esté In range. Podemos recordar estos conceptos en la entrega dedicada a las Zones.

Su utilización es sencilla. Basta con crear un evento If/else y arrastrar DISTANCE TO A ZONE a su interior, seleccionando en el cuadro que aparece en la parte superior derecha de la pantalla el concepto que queramos utilizar, la unidad métrica que queramos utilizar y establecer a continuación la consecuencia si se da la circunstancia programada. Por ejemplo, para el caso en que queramos activar una zona si el jugador se encuentra In proximity de la Zona 1, deberíamos crear un evento como el de la imagen siguiente:

3825744_640pxRANDOM NUMBER

La Expression random number sirve para que el cartucho elija un número aleatorio entre dos valores que debemos establecer (elige un número entre el 1 y el 10, por ejemplo).

La forma de utilizarlo es simple. Debemos arrastrar la Expression al lugar donde nos convenga y establecer la horquilla de números dentro de la cual se debe realizar la elección en los cuadros que aparecerán en la parte superior derecha de la pantalla.

Esto nos puede servir para crear un elemento de incertidumbre y hacer que cada partida sea distinta, haciendo empezar al jugador con un número de monedas diferente cada vez, por ejemplo. Para elló deberíamos utilizar un SET para hacer que la variable MONEDAS tenga un valor aleatorio entre 1 y 90, por ejemplo, debiendo quedar el evento como en la siguiente imagen:

3825744_640pxIN EMULATOR

La Expression IN EMULATOR sirve para establecer una determinada consecuencia diferenciando si el jugador está jugando el cartucho a través de un emulador o no. Existen algunos cartuchos como “¿Y AHORA?” en que el jugador no tiene porque desplazarse a ninguna ubicación concreta para resolverlo. De esta forma, no habría ningún inconveniente en permitirle ejecutar el cartucho de forma tradicional en su dispositivo móvil o bien en el propio emulador de cartuchos de Urwigo. Si queremos que se produzca alguna diferencia en función de si se ejecuta de una forma u otra, debemos utilizar la Expression IN EMULATOR en un evento If/Else:

3825744_640pxDATE/TIME

La Expression Date/Time nos permite emplear como un valor más del cartucho Wherigo cualquier elemento de la fecha y hora proporcionada por el dispositivo en el que se está ejecutando. Así, podremos utilizar el día, día de la semana, día del año, mes, año, hora, hora de la semana, hora del mes, hora del año, minuto, minuto del día, minuto de la semana, minuto del mes, minuto del año, segundo, segundo de la hora, segundo del día, segundo de la semana, segundo del mes y segundo del año… casi nada…

Las posibilidades son muchas. Desde hacer que un cartucho solo se pueda jugar en un rango determinado de horas (wherigo nocturno), a provocar una mayor inmersión al jugador haciendo que un personaje le de la hora y le pida que vuelva a otra concreta, un Wherigo que sólo se pueda realizar durante un perido del año (navidad?) y todo lo que la imaginación permita.

Su utilización es simple, debiendo arrastrarla al lugar que corresponda, elegir el periodo temporal que vamos a manejar, hacer click en el signo “=” para cambiarlo de la manera habitual y establecer el valor que queramos. Así por ejemplo para hacer que un wherigo sólo se pueda realizar entre las 00:00 y las 6:00, deberíamos crear un evento If/Else en el que, utilizando la Expression AND, establezcamos que “Si la hora es mayor de las 00:00 Y menor que las 06:00, comience el cartucho”. Debería quedar como en la siguiente imagen:

3825744_640pxY con esto finaliza enta entrega del tutorial. En la próxima, que será la última, haremos unos últimos ajustes a nuestro cartucho antes de compilarlo para probarlo en nuestro móvil y, finalmente, subirlo a Wherigo.com para poder publicar por fin nuestro caché. Hasta entonces feliz geocaching a todos!!!

El Geocaching llega a la Universidad de Alicante

No. No estoy hablando de que vayamos a llenar la universidad de cachés (lo cual no estaría nada mal), sino que tras varias semanas de reuniones y trabajo, tengo el placer de anunciar el primer curso universitario de créditos de libre elección curricular con el geocaching como materia principal. ¡SI! ¡El geocaching ya es una disciplina universitaria! y esto es sólo el comienzo…

El curso se desarrollará en la Universidad de Alicante entre el 22 y 24 de octubre de 2015, durante 20 horas y se denominará “ESTRATEGIAS PARA LA ANIMACIÓN TURÍSTICA DEL PATRIMONIO NATURAL Y CULTURAL: INTRODUCCION AL GEOCACHING”. Estará dirigido por la Dra. Rosario Navalón e impartido por mi mismo.

El curso, como su propio nombre indica, irá dirigido principalmente a los alumnos del Grado en Turismo, si bien estará abierto al resto de la comunidad universitaria y al público en general, y tratará de hacer una aproximación al geocaching como recurso para dinamizar el turismo del patrimonio natural y rural de los municipios colaboradores, en este caso Banyeres de Mariola, haciendo especial incapié en las ventajas que una plataforma como Wherigo puede desempeñar en este aspecto.

El curso estará estructurado de la siguiente forma, si bien sujeto a posibles variaciones:

22 de Octubre 2015:

9:30 – 10:30 (Introducción a cargo de la Directora del curso): Animación del Patrimonio: estrategias para atender a las nuevas tendencias de la demanda turística en la ruta de los castillos del Vinalopó.

11:00 – 14:00 Introducción al Geocaching: Conceptos

23 de Octubre 2015:

9:30 – 14:00 Introducción a Wherigo como estrategia de animación del patrimonio

16:00 – 18:00 Aplicación práctica de búsqueda de caches (UA)

18:00 – 20:30 Taller de propuestas y diseño genérico de wherigos

24 de Octubre de 2015

Salida de campo para la puesta en práctica de algunas acciones diseñadas.

Preparación de un evento oficial de geocaching en Banyeres de Mariola

(Desplazamiento en bus pagado por la organización)

Si todo sale como espero, este curso podría convertirse en anual, pues hay distintos municipios interesados en adoptar el papel que en esta primera edición adoptará Banyeres de Mariola.

¡¡¡FELIZ GEOCACHING!!!

De charla con McRover

Una de las figuras imprescindibles para que el geocaching haya alcanzado las grandísimas dimensiones de las hoy hace gala es, sin duda, la del revisor. Se trata de voluntarios que dedican una importantísima parte de su tiempo libre en cerciorarse que cada uno de los caches que se mandan a publicar, se ajusten a la normativa establecida por Groundspeak en sus guidelines. Un trabajo no retribuido, que realizan únicamente por su amor al geocaching y que, en ningún caso debemos pensar que termina ahí, sino que también deben atender los avisos de “needs maintenance ” y “needs archive” en aquellos cachés inadecuadamente mantenidos por sus propietarios, asesorar y dar consejo a aquellos geocachers que lo soliciten y ser, en definitiva, la “cabeza visible” de la empresa norteamericana para todos los geocachers que se encuentren en su “zona de influencia”.

Debido a mi residencia en la Comunidad Valenciana, el revisor que me corresponde es McRover. Alguien que, en un primer momento, parecía una entidad intangible y que pronto se convirtió para mí, y me consta que para la práctica totalidad de sus “revisados”, en una persona real, amable y absolutamente accesible en todo momento para cualquiera de nosotros. Alguien siempre dispuesto a ayudarnos a sacar adelante todos nuestros proyectos geocacheros y que, sin duda, se ha ganado el cariño y respeto de su comunidad.

Cuando le propuse a McRover publicar esta pequeña conversación, su primera reacción fue poner en duda el interés que podrían tener para la comunidad sus experiencias y opiniones sobre el estado actual del geocaching. Sin embargo, yo estoy convencido de que ese interés existe, por lo que le estoy muy agradecido por haber accedido a charlar con Geocacheando el Mundo.

– Geocacheandoelmundo: ¡Hola McRover! Muchas gracias por acceder a esta conversación. En primer lugar me gustaría que todos los lectores supieran que, antes de convertirte en revisor, ya eras geocacher bajo el nick de J_Rover,  en activo desde abril de 2004 y hasta la actualidad. ¿Cómo conociste el geocaching? ¿Qué fue lo que te apasionó de la actividad, si es que algo lo hizo?

– Mcrover: Unos colegas americanos, que conocían mi “rara” afición por perderme por las montañas con un coche equipado con un PC portátil que reflejaba en pantalla un mapa con la posición donde me encontraba, al conocer el Geocaching pensaron: “Esto tenemos que contárselo a John”. Durante algún tiempo fui muggle hasta que en 2004 creé mi propio usuario.

Cuando tuve, por fin, en mis manos el primer GPSr pequeño y portátil, supe que moriría con un cacharro de esos cerca de mi.

– GeM: ¿Ha cambiado mucho la actividad desde entonces? Y si es así ¿Cómo valoras esa evolución?

– McR: El mundo entero ha cambiado desde el año 2000 en casi todos los aspectos. ¿Diríais que para mejor? Pues depende, unas cosas a mejor y otras a peor. Y el Geocaching no ha sido ajeno a la evolución. Ahora, con los smartphones, las redes 3G y 4G, WiFi, etc. existe mayor facilidad para la práctica; existen 100 geocachers por cada uno de entonces y hay 1.000 caches por cada uno de los que existían antes. En todo caso creo que sois vosotros, las nuevas generaciones, los que debéis marcar el camino a seguir.

– GeM: Como McRover, comienzas a trabajar como revisor voluntario en 2010. ¿Cuánto tiempo dedicabas entonces y cuánto tiempo dedicas, cinco años después, a esta labor?

– McR: Pues empecé dedicando un ratito al día y ahora, generalmente, me lleva al menos un par de horas a diario, siete días por semana.

– GeM: ¿Cómo es ese trabajo de revisor? ¿Te damos muchos problemas y disgustos?

– McR: No, en general. Tengo que reconocer que el geocacher es casi siempre disciplinado y colaborador. Los problemas, habitualmente, me vienen por estar siempre en el “filo de la navaja” tratando de adecuar unas reglas simples e inamovibles a una realidad compleja y cambiante. En más de una ocasión he estado tentado de “entregar la cuchara” …

– GeM: ¿Qué consejo le darías a todo aquel que quiera publicar un caché para facilitar tu labor?

– McR: Sentido común y un poco de paciencia. Evitar eMails, mensajes, whatsapps, (demasiadas fuentes que atender)… Si te pongo una Nota de Revisión en tu ficha, contesta (cuando sea) con otra Nota al Revisor en la misma ficha. Si te pido alguna acción, avísame, del mismo modo, que ya la has ejecutado. No contestes al robot que te envía un eMail notificándote algo (ese robot no admite respuestas y éstas se pierden). Si me envías un eMail cerciórate de que incorporas tu dirección de respuesta. No des por supuesto que eres “el único mortal vivo”… No me envíes un eMail diciéndome: “¿Qué pasa con el cache que mandé a revisar hace dos días?” Dame el Código GCxxxx o, mejor todavía, el enlace al mismo… Sentido común: piensa que tu cache estará en una cola de otros cien y tu eMail me llegará a una cola de otros trescientos.

– GeM: Si los cálculos no me fallan, tu zona de revisión es toda la geografía española al sur de Madrid. Un territorio considerable en el que además se incluyen dos de las Comunidades Autónomas con mayor número de cachés, como son la andaluza y la valenciana. ¿Crees que en el futuro podrías necesitar repartir tu trabajo con más revisores como ocurre en la zona norte de España?

– McR: Sí, sin duda. Y más bien pronto que tarde. Aprovecho tu tribuna para preguntaros: ¿Cómo deberíamos hacerlo? ¿Dividir en dos la zona actual, o mantener unida la zona y compartir el trabajo entre dos Revisores? Y además ¿tenéis alguna idea de cómo hacer que sea toda la comunidad la que participe en la elección del próximo Revisor (yo estoy abierto a ello)? Por último ¿deberíamos formar a dos Revisores, en lugar de uno más, y solicitar mi jubilación (que ya me estoy poniendo muy visto)?

– GeM: Un tema que me preocupa es el de la progresiva reducción de las posibilidades que tenemos los geocachers. Te doy algunos ejemplos:

1) Eliminación de la posibilidad de crear cachés virtuales o webcam cache, así como la actual moratoria en los challenges.
2) Restricción a la celebración de eventos por fecha y municipio, además de imponer una duración mínima.
3) Imposibilidad de celebrar un cito como parte de un evento de mayores dimensiones. 
4) Dificultades para otorgar el status de MEGA a eventos que reúnan los requisitos para serlo en su primer intento de conseguirlo…

Me consta que muchos geocachers, entre los que me incluyo, no terminan de entender los motivos que llevan a Groundspeak a restringir posibilidades a sus clientes y, lo que es más importante, potenciales clientes premium, que además no suponen un gasto económico para ellos salvo quizá en el caso de los MEGA.
¿Conoces tú los motivos que llevan a tomar este tipo de decisiones? ¿Cuál es tu opinión al respecto?

– McR: Lo de los webcam y virtuales hace muchos años que los retiraron para incluirlos en los WayMarks (un sitio web paralelo a Geocaching). Como muchos de ellos eran “reliquias históricas” decidieron mantener los que existían hasta entonces. De no haberlo hecho así, ni siquiera sabríais, la mayoría, que ese de tipo de caches existió alguna vez.

Lo de los eventos, han tratado de racionalizarlos “a la americana” y creo que lo han complicado todavía más. Y lo que ya es de traca es que para asegurarse que duran al menos media hora, ahora exigen que se ponga una hora de terminación. En todo caso, con mejor o peor fortuna, lo que han intentado es racionalizar el tema eventos que estaba empezando a caer en el “desmadre total” (aquello de: “nos reunimos un rato y publicamos cinco eventos…”). El caso MEGA también dio lugar a maratones de “will attend” falsos (para conseguir el título MEGA) que luego no se materializaba en una asistencia real, de ahí que ahora quieran primero probar la asistencia real un año y luego ya veremos…

De forma general, la dinámica es la siguiente: 1) Nace un tipo (o subtipo) de cache con un espíritu concreto. 2) Se describen unas reglas básicas de dicho tipo. 3) Poco a poco, se les van buscando “vericuetos” a dichas reglas para saltarse el espíritu inicial. 4) Se crea una “jurisprudencia” entre los Revisores para tratar dichos “vericuetos”. 5) Se publican unas reglas más detalladas, exactas y restrictivas para evitar los “vericuetos” … y se vuelve al punto 3)

-GeM: ¿Cómo crees que terminará, por ejemplo, la actual moratoria en los challenges?

-McR: Pues en unas reglas más claras y específicas y, posiblemente, restrictivas. E imagino que se estarán pensando si deben respetar los que ahora hay o, en caso de restricción, si deben obligar a cambiar los que no cumplan los nuevos requerimientos.

-GeM: Desde Groundspeak, y de forma periódica, nos ofrecen novedades en el juego como han podido ser en los últimos meses los lab cachés o los souvenirs de verano. ¿Conoces el proceso por el que se decide introducir estas novedades?  ¿Vosotros como revisores las conocéis previamente? (y si es que sí) ¿Conoces alguna futura sorpresa que puedas contarnos?

– McR: Básicamente se decide en el Headquarter. Lo que si tenemos es un “Código de Silencio”. Si conociéramos alguna novedad debemos guardar silencio hasta que se haga oficial.

– GeM: ¿Cuál es vuestra relación con Groundspeak? ¿Hasta qué punto se os pide vuestra opinión y se tiene esta en cuenta a la hora de tomar decisiones?

– McR: Sí; se nos pregunta a menudo sobre muchos temas, aunque a veces tengo la impresión de que es más bien un formalismo y las ideas ya vienen, más o menos, precocinadas en “petit comité”. Nuestros “jefes” de Groundspeak son muy… “americanos”: informales y cercanos en el trato, pero estrictos en hacer cumplir sus directrices (aunque ni siquiera parezcan órdenes). Cualquiera que haya tenido un jefe americano sabe de lo que estoy hablando.

Hey, John. ¿Qué tal por Lanzarote? Espero que hayas pasado unas lindas y merecidas vacaciones. Cuando tengas algo de tiempo deberías echar un vistazo a… Traducción: ¡Ponte a ello ya, que tienes la cola “petada”!

– GeM: Seguro que en todos estos años como revisor has reunido anécdotas como para escribir un libro ¿Alguna que se pueda contar?

– McR: Cientos de ellas, pero os cuento la última. Un neófito me envía un cache a publicar y escribe en una nota al Revisor: “Estimado Revisor: Cuando vengas a revisar mi cache, me avisas al teléfono xxxxxx. Yo trabajo enfrente y, entre las 10 y las 11, puedo acompañarte porque es mi hora del desayuno”.

– GeM: Y por último, ¿qué propondrías tú para mejorar el geocaching?

– McR: Mejorar las personas. El Geocaching es una actividad de personas. Respetémonos unos a otros, valoremos el tiempo y el trabajo de otros, pongámonos en su lugar… Alguien que pone un cache con trabajo e ilusión no merece un comentario despectivo. Alguien que honradamente cree que tu cache no está no merece un seco “¡Busca mejor!”. Si tu cache se ha perdido, desactívalo cuanto antes; no dejes que otros pierdan su tiempo buscando algo inexistente… y así, podría poner un millón de ejemplos. Mejoremos como personas, y para todo lo demás … ¡Mastercard!

– GeM: ¿Algo que quisieras añadir?

– McR: Pues agradecerte el foco de interés que pones sobre mi. Hago lo mejor que puedo, pero muchas otras personas hacen tanto o más por el Geocaching que yo: Los moderadores de foros, los blogueros, los que planifican y llevan a cabo eventos, los que esconden impresionantes series, los que escriben manuales y nos enseñan a los demás … ¿Reconoces de lo que estoy hablando? ¡Pues eso!

– GeM: Pues eso es todo. Muchas gracias por tu tiempo y por tu trabajo.

La ignorancia es el padre del miedo

Durante el día de ayer estuve siguiendo de cerca la evolución de unos acontecimientos vía Facebook que me han impulsado a escribir esta entrada, encabezada con una cita de “Moby Dick”, “la ignorancia es el padre del miedo”, que pienso se ajusta como un guante a los mismos.

El objeto de esta polémica es el caché “Baleo Claudia. Conociendo Andalucia” (GC57CXK), perteneciente al Al-Andalus Team. Un caché que forma parte de una serie que, de forma general, pretende transmitir que en Andalucia “no sólo tenemos playas sino también sierras, campiñas, marismas y desiertos; no solo bailamos sevillanas, sino también verdiales y fandangos, no solo somos camareros o señoritos cortijeros sino también esforzados mineros, aceituneros altivos e incluso actores de espaghetti western; no somos vagos o perezosos sino que nos conformamos con poco para poder deleitarnos con un suave amanecer, un glorioso atardecer o un paisaje prodigioso”; es decir, trata de difundir y promocionar la cultura e importantísimo patrimonio andaluz. De forma particular el caché en cuestión pretende dar a conocer a la comunidad geocacher el Conjunto Arqueológico de Baleo Caludia, en Cádiz, a través de una detallada explicación de sus carácteristicas que cualquiera que visite la página de su listing puede leer detenidamente. Un caché que desde su publicación había sido visitado por 59 equipos de geocaching, en cuyos logs podemos leer apreciaciones como:

Despues de tres maravillosos dias en Tarifa, disfrutamos de las increibles playas, aprendimos de su historia con sus diferentes culturas y comimos dpm!!!:D

salimos encantados con la visita a Baelo Claudia. Lugar mágico para vivir escogieron buena ubicación.gracias por el caché

Encontrado en una visita a estas fabulosas ruinas tan bien conservadas“…

Entonces ayer (21/09/15), la Administración de complejo arqueológico escribió la siguiente entrada en su muro de Facebook.

0000000000000000000Una entrada que, desde su titular hasta su amenazadora conclusión, resulta a todas luces sensacionalista, desinformada y provocadora y que, muy posiblemente, sea el resultado de una opinión adquirida tras la visualización del video de youtube al que hace referencia y que, en mi opinión, únicamente muestra a unos jóvenes divirtiéndose en un lugar solitario y alterar en ningún momento la estructura de las ruinas en las que se encuentran.

Pero si triste es la precipitada acción de esta Administración Pública, mucho más lo es la repercusión que ha tenido entre aquellas personas que han leído la entrada y, sin buscar otra fuente de información para contrastar, inmediatamente han hecho suya la opinión expuesta, encontrándonos lindeces como las siguientes:

00000000000000000000000000000000000000000000000000

0000000000000000000000000

Este tipo de opiniones entre gente ajena al geocaching es más de lo que otros compañeros y yo mismo pudimos soportar, por lo que intervenimos en el hilo exponiendo nuestra opinión. La mía, en concreto, se centró en que si bien es cierto que un owner debería esconder con sentido común para evitar el deterioro de cualquier estructura, y mucho más si se trata de un patrimonio histórico/cultural protegido, es cierto que muchas veces la equivocada intención de querer que el contenedor se esconda en el mismo lugar que queremos enseñar, nos hace tomar decisiones equivocadas que deben ser corregidas cuando, como en este caso, se nos llama la atención sobre el hecho. Además también quise dar a entender con cierta ironía lo estupido que es formarse una opinión negativa de una actividad simplemente siguiendo el primer argumento, video, opinión (o lo que sea) que recibimos de la misma.

0000000000000000000000000Desde este punto, profundicé un poco más en el asunto y fue cuando todo comenzó a caer por su propio peso. El caché en cuestión en absoluto se encontraba en el espacio de las ruínas como yo había supuesto en un principio, sino en un pequeño murete EN LA ZONA DE APARCAMIENTO. Entonces interpreté que todo lo expuesto por la administración del centro no eran más que escusas, y además malas. El patrimonio historico-cultural que administran en ningún momento corría peligro alguno por la búsqueda del caché y muchísimo menos la integridad de los visitantes al centro. Lo único que ha ocurrido es que han detectado algo extraño a través de las cámaras de seguridad, han investigado y han descubierto que una actividad ajena y desconocida para ellos se desarrollaba en las proximidades de sus instalaciones. La ignorancia es el padre del miedo, miedo a que el geocaching pueda afectar de forma negativa a sus intereses y han actuado en consecuencia exigiendo la retirada de ese elemento extraño.

Esto, aunque pueda resultar triste y absurdo para los que no somos ignorantes sobre lo que es el geocaching, sin embargo se ajusta plenamente tanto a Derecho, como a las normas que nos da el propio geocaching. Es lamentable, pero los dueños, tal y como hicieron de forma instantanea, deben retirar el contenedor denunciado.

Fue entonces cuando intervino en el hilo McRover, el revisor de esta zona, con la clase y corrección a la que nos tiene de sobra acostumbrados. Se presentó y expuso la realidad de lo que es el geocaching y este caché en concreto a la administración del complejo, solicitándoles colaboración para convertir el objeto de la polémica en algo aceptable para ellos.

0000000000000000000000000A partir de este momento la administración, lejos de hacer como otras muchas Administraciones Públicas han hecho antes (Ayuntamiento de Pilar de la Horadada, Universidad de Alicante, Ayuntamiento de Cañamero…) y aceptar de buen grado la oferta de colaboración planteada para que ambas partes se vieran beneficiadas, decidió cambiar su argumentación. Lo importante ahora no era el posible perjuicio del patrimonio gestionado. Sino que se trató de convencer a los interesados de algo que NUNCA nadie había puesto en duda en el hilo, como es que para esconder un caché se precisa de autorización. Además, a partir de ese momento lo que trataban de proteger era la diversidad biológica que alberga el muro donde se oculta el caché. El ridículo comenzaba a ser bochornoso.

00000000000000000000000000000000000000000000Para cerrar el tema, al menos de forma oficial. McRover no dudó en utilizar la ironía para poner de manifiesto el comportamiento absurdo de la admnistración:

0000000000000000000

El caché se archivó tal y como dicen las normas y el asunto se cerró.

0000000000000000000Dejando al margen la estrechez de miras de la administración del recinto, su falta de capacidad para el diálogo y su nefasta gestión y argumentación en esta situación… Sin entrar a valorar esa costumbre tan española de hacernos ideas preconcebidas sobre algo en base a una primera fuente de información y publicarlas en internet sin tomar en consideración como puede afectar eso a otras personas… Creo que es interesante que la experiencia nos sirva a los geocachers para reflexionar sobre los lugares que seleccionamos para esconder nuestros cachés y la manera en que realizamos nuestras búsquedas. Debemos evitar colocar nuestro contenedor cerca de cualquier estructura que pueda ser destruída o desmontada por los geocachers que van a por él. Debemos buscar con criterio y sentido común para evitar que quien nos pueda ver piense de nosotros algo totalmente contrario a lo que realmente hacemos. No permitamos que una situación como la vivida ayer se repita por nuestra torpeza.

Todo mi apoyo al Al-Andalus Team. Seguid con el mismo espíritu de mostrar a la comunidad geocacher, sin duda la más respetuosa y amante del patrimonio natural y cultural de nuestro planeta que yo he conocido nunca, las maravillas que esconde Andalucía y no permitais que la situación generada por el miedo nacido de la ignorancia os afecte.

Crónica de la Inauguración Oficial del GeoSulayr

Durante el fin de semana del 18 al 20 de septiembre las montañas de Sierra Nevada, y más concretamente el municipio granadino de Laroles, ha sido testigo de un importante evento para el geocaching andaluz y, por extensión, para el español: la inauguración oficial del inmenso proyecto que es el Geo Sulayr por parte de sus artífices, los GeoSenderistas Andaluces.

No estamos hablando de una serie más de geocaching, sino de LA SERIE. Con más de 1.000 cachés, repartidos a lo largo de 300 kilómetros de pistas y senderos forestales el Geo Sulayr sigue el trazado del sendero circular de mayor longitud y altitud de Europa: el Sulayr. Con este nombre, que se traduce al español como “Montaña del Sol”, se referían los musulmanes al macizo de Sierra Nevada y fue el elegido para denominar al camino que rodea al mismo. El resultado en el mapa de geocaching no podía ser más espectacular, pues a la ya de por si impresionante ruta, se le ha añadido un Geo Art de más de 100 misterys con el nombre del sendero en su interior.

0000000000000000000Esta mastodóntica serie nace de la iniciativa del equipo de geocaching denominado GeoSenderistas Andaluces, una asociación de algunos de los equipos más activos del este de Andalucía como son Germancho, omortsoN, MistickFamily, Zamarula, Postalmeria e Indalitos que ya nos habían sorprendido a principios de 2014 con otro proyecto de similares características: el GeoCamino Mozárabe, una inmensa serie de cachés que une Almeria y Córdoba siguiendo el trazado del Camino de Santiago del Sur.

Tal y como ellos mismos nos contaron durante la celebración del evento de inauguración, todo surgió con una simple salida de senderismo en la que se cuestionó si poseerían los “huevos” necesarios para “marcar” el Camino Mozárabe con cachés… Para saber si los poseen o no, únicamente hay que echar un vistazo al mapa de geocaching entre Almería y Córdoba y lanzarse a recorrer el Camino y disfrutar de sus cachés. Al parecer no tuvieron bastante con este primer proyecto y, durante más de un año han ido cocinando lo que a día de hoy es el Geo Sulayr. Preparar contenedores, logbooks, fotos spoiler, buscar los escondites, preparar más de 1000 listings, diseñar el GeoArt… Un trabajo titánico y no al alcance de cualquiera que ha dado como resultado un proyecto inmejorable.

0000000000000000000000000El evento de inauguración comenzó temprano, a las 9 de la mañana, en un área recreativa de las laderas de Sierra Nevada próxima a Laroles y junto a un pequeño arroyo de agua helada que puso la banda sonora a la primera reunión de todos los asistentes con sus anfitriones. Pocos minutos después ya estábamos en marcha, recorriendo un segmento del noveno tramo del GeoSulayr, que discurre entre la Fuente del Espino y el Barranco Riachuelo. Con una temperatura óptima para la práctica del senderismo y un cielo despejado recorrimos poco más de 8 kilómetros a través de un estrecho sendero con importantes subidas y bajadas encontrando los 30 cachés que nos salieron al paso y llevándonos alguna que otra sorpresa en forma de FTF.

Ajustándonos al horario previsto al llegar la hora de comer regresábamos al área recreativa, donde disfrutamos de un picnic y de las muchas anécdotas geocacheras de los asistentes en un buen ambiente como sólo es posible entre geocachers. Tras la sobremesa, poco a poco nos fuimos dispersando para pasear o hacer geocaching por nuestra cuenta hasta las 17:30, hora a la que los GeoSenderistas Andaluces nos convocaron a todos en el centro de Laroles para participar en una divertidísima gymkana geocachera por todo el pueblo. Dieciocho difíciles cachés no oficiales debían ser encontrados en un plazo máximo de 2 horas, lo que derivó en un pequeño pueblo lleno de gente con GPS en la mano corriendo de un sitio a otro, metiéndose en las fuentes, despistando a los vecinos que nos miraban como si estuviéramos locos, trepando unas escaleras al cielo y bajando otras al infierno… Una auténtica locura que hizo las delicias de los 15 equipos participantes y nos dejó a todos con fuertes agujetas para lo que restaba de fin de semana.

Tras la obligada ducha llegó el momento de ponernos guapos para la cena, uno de los momentos más esperados por todos los geocachers en cualquier evento de estas características que se precie. Antes de comenzar a comer, nuestros anfitriones proyectaron un video que explicaba en clave de humor la formación de su equipo y la génesis del GeoCamino Mozárabe y el GeoSulayr y repartieron los premios de la Gymkana.

Tras la cena, el Indalito acusó con firmeza a nuestro revisor Mcrover (presente en el evento durante todo el fin de semana) de ser un “vago” al no haberles publicado el caché nocturno que con tanta ilusión habían preparado. Obviamente se trataba de un pequeño teatro. Siguiendo sus instrucciones encontramos las piezas de un pequeño puzzle bajo nuestras sillas y, a partir de ese momento, comenzamos un espectacular recorrido nocturno por un pueblo cubierto por mil estrellas. Haciendo uso de linternas y luz UV, además de una misteriosa llave que protagonizó la anécdota del día al abrir por equivocación el candado de una puerta que nada tenía que ver con el caché, conseguimos encontrar el caché que nos habían preparado los GeoSenderistas Andaluces. Firmamos su logbook bajo el incomparable cielo nocturno de Sierra Nevada y nos despedimos hasta el día siguiente.

El amanecer nos reunió en el bar del pueblo para desayunar. Con caras agotadas pero llenos de energía para dirigirnos al cercano municipio de Bayárcal, donde dedicamos toda la mañana a recorrer la preciosa serie “S. Molinos” de Postalmeria, que discurre junto al río que sirve de frontera natural entre Almería y Granada y que nos ofreció algunos rincones de ensueño además de sus 16 cachés. Tras concluir la agotadora subida hasta el pueblo que puso fin a la serie, nos dirijimos de nuevo al bar a recuperar fuerzas con unas buenas caña/tapa granadinas que nos sirvieron como despedida de todos los asistentes, al menos hasta que nos veamos en la próxima aventura.

Crea tu propio Wherigo (9) FUNCTIONS y ACTIONS

Esta entrada forma parte del curso “Crea tu propio Wherigo”: Pincha en los siguientes enlaces para ver las entregas anteriores del mismo:

1: EL RETO

2: COMENZANDO NUESTRO CARTUCHO

3: GRÁFICOS Y AUDIO: LOS MEDIA

4: DE ZONA EN ZONA y tiro porque me toca

5: PERSONAJES Y OBJETOS… dialogando con unos y cogiendo a los otros

6: TASK Y VARIABLES… Vamos avanzando

7: INPUTS… ¡Comienza la diversión con la Action If/Else!

8: TIMERS… Carreras contrarreloj!!!

……………………..

Wherigo es una marca registrada.

Antes de nada recomiendo encarecidamente leer las guidelines oficiales, así como la sección de preguntas frecuentes para tener claro que podemos y que no podemos hacer a la hora de crear y publicar un caché Wherigo.

………………………

Tras el paréntesis de agosto volvemos al tutorial “Crea tu propio Wherigo“, que entra ya en su recta final. En esta entrega se explicará brevemente uno de los Objects del Wherigo que, en un principio, no tenía pensado introducir aquí, pero al que durante las últimas semanas le he encontrado una utilidad cada vez mayor: las FUNCTIONS.

FUNCTIONS

Una function consiste en un “bloque de programación” que puede llamarse a ser ejecutado tantas veces como se necesite en el cartucho. Aunque pueda parecer algo confuso, en realidad es muy sencillo de entender y lo vamos a ver con un ejemplo. Imaginemos que hemos programado un cartucho Wherigo en el que el jugador tenga que disputar una partida de piedra, papel o tijera con la máquina y que, al superarla se debieran activar numerosas zonas. El jugador podría ganar la partida sacando cualquiera de las tres figuras del juego, por lo que en cada una de ellas habría que contemplar la posibilidad de que fuera la definitiva y proceder a la activación de ese elevado número de zonas, lo que sería muy engorroso. Sería mucho más sencillo programar una function llamada “Ganador de piedra, papel o tijera” que activara todas esas zonas y simplemente “llamarla” cuando procediera.

Para crear esta function seguiríamos los siguientes pasos:

  1. En la barra de menús de Urwigo, seleccionamos View, Functions.

cartridge2) Como siempre, tendremos una pantalla con una columna central en la que se irán listando las distintas functions que hayamos creado y una columna derecha con las propiedades de cada una de ellas. Pulsaremos el botón “New Item” para crear la primera function y rellenaremos los siguientes campos de la columna de propiedades:

a) Name: Le daremos un nombre lo suficientemente descriptivo para poder trabajar con ella de forma sencilla.

b) Description: Una pequeña descripción de la function. Por ejemplo cuando debemos ejecutarla o los efectos que produce.

c) On call: Aquí programaremos de la forma habitual todo lo que queramos que ocurra al ganar la partida ya sea con piedra, papel o tijera. Por ejemplo, un Dialog de “ENHORABUENA”, y activar y hacer visibles las zonas 1, 2 y 3, como en el siguiente ejemplo. La clave está en que sólo tendremos que programar esta estructura una vez y no tres como deberíamos hacer si no utilizaramos las functions.

cartridgeAsí, sólo habría que utilizar la ActionFunction call” y arrastrar la function recién creada a su interior cada vez que queramos que se produzcan los efectos de la misma, es decir: cuando el jugador elija piedra y la máquina escoja tijera, cuando el jugador elija papel y la máquina escoja piedra y cuando el jugador elija tijera y la máquina escoja papel. Las elecciones de la máquina se realizarán utilizando la ActionRandom decision” a un 33,33% cada una, como veremos en su momento en esta misma entrega del tutorial.

cartridge

ACTIONS

Finalizada ya la exposición de todos los Objects que podemos crear en nuestro cartucho Wherigo, vamos a analizar ahora las distintas Actions que podemos utilizar para darle forma. Muchas de estas Actions ya las hemos utilizado como ejemplos a lo largo del tutorial, pero nos detendremos de nuevo en cada una de ellas para obtener un listado lo más completo posible. Como sabemos, podemos encontrar las Actions en la columna izquierda de la ventana de Urwigo y la manera de utilizarlas es arrastrarlas al lugar que corresponda en el evento que estemos preparando.

If/Else

La Action If/Else, es la única que hasta ahora ha contado con un tema propio del tutorial, en concreto la séptima entrega. Con ella podremos establecer condiciones para que, en funcion de un determinado supuesto, se produzca una consecuencia u otra.

La fórmula que utiliza esta action es fácilmente comprensible, aunque difícil de explicar de palabra: “Si es A, entonces B”, “Si es C, entonces D”, “Si es cualquier otra cosa distinta a A o B, entonces E”; o lo que es lo mismo: “If A: B”, “If C: D”, “Else: E”. Aunque pueda parecer algo complejo en los siguientes ejemplos gráficos lo comprenderemos rápidamente.

Vamos a crear una partida de “Piedra, papel o tijera” contra la máquina. Para ello, debemos crear un Input de tipo “choice” en el que se pregunte al jugador “Piedra? Papel? Tijera?” y se le ofrezcan estas tres posibilidades como respuestas alternativas tal y como podemos observar en el siguiente ejemplo:

cartridgeA continuación en el On get input debemos programar lo que debe ocurrir en el caso de elegir cada una de las tres opciones, para lo que utilizaremos la Action If/Else para establecer: “Si la respuesta es piedra, entonces…”, “Si la respuesta es papel, entonces…” y “Si la respuesta es tijera, entonces…”. Lo que ocurra tras “entonces” lo programaremos más adelante utilizando otras Actions. Por ahora, únicamente arrastraremos If/Else dentro del On get Input y utilizaremos el signo “+” para crear tres condicionales distintos como en la siguiente imagen:

cartridgeLo que queremos que haga el cartucho en cada uno de esos tres condicionales es comparar la respuesta dada por el jugador con cada una de las posibles alternativas para, más adelante, establecer unas consecuencias para cada caso. Para conseguir este efecto arrastraremos dentro de cada uno de ellos la Expression “Compare” (obviamente es una instrucción para comparar dos elementos) y, a continuación, haremos lo mismo con la Expresion “Answer” (expresión que hace referencia a la respuesta dada por el jugador) al lado izquierdo de cada una de las tres igualdades generadas. Por último, escribiremos las palabras “piedra”, “papel” y “tijera” en el lado derecho de estas igualdades. Así obtenemos la instrución tipo “Si comparas la respuesta del jugador con la palabra “piedra” (o “papel”, o “tijera) y resulta ser igual, entonces…”. El resultado gráfico es el de la siguiente imagen:

cartridgeRealizar una enumeración de todas las posibilidades que nos ofrece esta o cualquier otra Action convertiría en eterno este tutorial, pues la cantidad de combinaciones es inabarcable. Por este motivo, lo importante es comprender el funcionamiento de cada una de ellas, para así deducir como se deben combinar para obtener el efecto que hemos ideado (si es que Urwigo nos permite conseguirlo dentro de sus limitaciones, claro).

RANDOM DECISION

La Action Random Decision sirve para que el cartucho tome una decisión aleatoria entre las distintas alternativas que le demos basándose en un porcentaje de probabilidades que nosotros establezcamos. Podríamos utilizarlo, por ejemplo para lanzar una moneda al aire y que hubiera un 50% de probabilidades de que saliera cara y un 50% de que saliera cruz. a traves del siguiente sencillo evento:

cartridgeAl hacer click sobre el porcentaje, aparece en la columna de la derecha un cuadro llamado Weight con el que podemos modificarlos para que existan las posibilidades que nosotros queramos de obtener cada una de las opciones. Así podríamos obtener una moneda “trucada” en la que saliera cruz la gran mayoría de las veces:

cartridgeLas posibilidades no se limitan a dos alternativas. Utilizando el signo “+” del Random decision podemos establecer todas las que nos hagan falta, cada una con su porcentaje de probabilidades particular:

cartridgeSiguiendo con nuestro ejemplo de la partida de “Piedra, papel o tijera”, lo que necesitamos es que para cada una de las tres posibles respuestas del jugador, exista un 33,33% de probabilidades de que la máquina responda asimismo con cada una de las tres posibles jugadas. Por lo tanto bajo el “If compare answer” que hemos programado anteriormente, debemos colocar una Random decision de 3 alternativas a un 33,33% de probabilidades cada una, como muestra la siguiente imagen:

cartridge

INCREMENT/DECREMENT

A través de esta Action sumaremos o restaremos determinada cantidad que queramos a un número dado en una variable de tipo numérico. El formato es el siguiente, pudiendo incrementar o reducir el número utilizando el cuadro “Value” que aparece en la parte superior derecha de la pantalla al hacer click sobre el número tal y como se puede apreciar en el siguiente ejemplo.

cartridge

En la partida de “Piedra, papel, o tijera” que estamos creando, vamos a imaginar que se deben ganar 3 partidas para avanzar en el juego. Tras cada mano, debemos indicarle al cartucho que el jugador o la máquina han ganado dicha roda y que, en consecuencia, le queda una menos para llegar a su tercera victoria. Para conseguirlo crearemos dos Variables numéricas de valor 0 a las que llamaremos “Victorias del jugador” y “Victorias de la máquina”. Así incrementaremos cada una de esas variables donde corresponda dentro del evento que estamos creando. Cuando en el siguiente paso establezcamos cual es la jugada de la máquina se entenderá mucho mejor este concepto.

De esta manera, en una de las tres alternativas al 33,33% que hemos creado en cada respuesta introduciremos un Increment/Decrement +1, colocando la variable que corresponda en el lado izquierdo de la Actión. ¿Qué ocurre con la tercera opción? Pues que la máquina habrá elegido la misma jugada que el jugador, por lo que será un empate (piedra y piedra). El evento debería quedar como en la siguiente imagen.

cartridge

DIALOG

La Action Dialog la hemos utilizado en muchas ocasiones a lo largo de este tutorial, por lo que no vamos a profundizar excesivamente en ella. Sirve para lanzar al jugador un mensaje de texto acompañado de una imagen. Escribiremos el texto entre las comillas y haremos click en “Dialog Entry” para seleccionar una imagen en el cuadro que aparecerá en la parte superior derecha de la pantalla:

cartridge

Haciendo click en el signo “+” continuaremos añadiendo dialogs sucesivos en el que cada uno podremos vincular una imagen distinta para crear el efecto de un diálogo entre dos o más personajes:

cartridge

Seguiremos completando nuestra partida de “Piedra, papel o tijera” introduciendo un Dialog con la jugada que sacará la máquina en cada opción, acompañándola de una imagen que represente dicha jugada. Debemos colocar cada jugada donde corresponda según hayamos predicho que ganará la máquina o el jugador con los “Increment/Decrement” anteriores. De esta manera, deberíamos obtener algo así:

cartridgeSi el jugador elige “piedra” en un 33,33% de las ocasiones, la máquina elegirá “papel” y ganará; en un 33,33% elegirá “tijera” y ganará el jugador; y en un 33,33% elegirá piedra y habrá un empate.

cartridgeSi el jugador elige “papel”, en un 33,33% de las ocasiones la máquina elegirá “tijera” y ganará; en un 33,33% de las ocasiones elegirá “piedra” y ganará el jugador; y en un 33,33% de las ocasiones elegirá “papel” y habrá un empate.

cartridgeY por último, si el jugador escoge “tijeras”, en un 33,33% de las ocasiones la máquina escogerá “piedra” y ganará; en un 33,33% de las ocasiones escogerá “papel” y ganará el jugador; y en un 33,33% de las ocasiones elegirá “tijera” y habrá empate.

MESSAGE

La action Message ofrece un mensaje de texto al jugador con la posibilidad de acompañarlo de una imagen y, en su caso, hasta dos botones para que, dependiendo de cual seleccione el jugador, se de una circunstancia y otra. Vamos a ver como lanzar un mensaje que de la opción al jugador de comenzar una partida de “Piedra, papel o tijera” o no hacerlo.

En primer lugar lanzaríamos la Action Message y, entre las comillas, escribiríamos “QUIERES JUGAR A PIEDRA, PAPEL O TIJERA?”. A continuación en el texto de los botones, escribiríamos SI y NO respectivamente y seleccionaríamos la imagen que corresponda:

cartridgeA continuación, en el interior del “On clicked” arrastraríamos un If/Else y, dentro del If, la ExpressionMessage button” que, como puede imaginarse, sirve para establecer las consecuencias de seleccionar el primero de los botones del Message. Esta consecuencia no es otra que lanzar el Input del juego “Piedra, papel o tijera” que estamos creando. En el Else estableceríamos lo que queremos que ocurra en el caso de que el jugador presione el botón 2:

cartridgeTengo que decir que hasta hoy no conocía las posibilidades de la Action Message y me parecen muy interesantes. Para conseguir el mismo efecto yo lo complicaba bastante más, lo que prueba que yo también estoy aprendiendo con este tutorial [:D].

SHOW SCREEN

Esta es otra Action que nunca he utilizado, pero que me ha resultado muy interesante comprobar sus posibilidades. Sirve para mostrar al jugador algo en la pantalla en el momento que nos interese. En algunos de mis Wherigos, al utilizar un item, por ejemplo, se produce una consecuencia y, tras esto, el jugador sigue viendo la pantalla de su inventario en lugar de, por ejemplo las nuevas zonas a las que puede ir desde ese momento, lo cual hace el cartucho poco intuitivo para gente poco acostumbrada a jugar Wherigos. Lanzando la action “Show screen“, podemos mostrar al jugador la pantalla principal (Main Screen), las zonas disponibles (Location), su inventario (Inventary), el menú de tareas (Task). Por último existe la opción de mostrar Item, pero yo no he sabido utilizarla, ya que no consigo mostrar un determinado Item en pantalla utilizándola, por lo que agradecería que cualquiera que sepa su utilidad lo explicara en un comentario a esta entrada (ejem Mitesoro!! ejem Kenobi!!!).

La manera de utilizar esta acción es simple. Sólo hay que arrastrarla al momento en el que se quiera mostrar algo en pantalla y seleccionarla dentro del menú Screen que aparece en la parte superior derecha de la pantalla:

cartridge

SHOW OBJECT DETAILS

Esta es la Action que ofrece el resultado que yo esperaba y no conseguí a través de Show Screen Item, es decir, mostrar en pantalla un determinado Item del juego junto a su descripción. Su utilización es muy sencilla, bastando con arrastrarla al momento en el que se quiera mostrar el Item y, a continuación, arrastrar a su interior el Item en cuestión, quedando el evento de la siguiente manera:

cartridgeINPUT

Esta es otra Action que hemos utilizado en varias ocasiones a lo largo de este tutorial, pues sirve para ejecutar un Input que hayamos creado previamente. Su uso es tan simple como arrastrarlo al momento en que queramos que se ejecute el Input y a continuación, arrastrar dentro dicho Input, quedando el evento de la siguiente forma:

cartridge

START TIMER / STOP TIMER

Estas dos Actions las describimos detalladamente en la anterior entrega del tutorial. Sirven respectivamente para poner en marcha y detener un Timer que hayamos creado previamente. Su uso es sencillo y funcionan de la misma forma. Arrastrando al lugar donde queramos iniciar o detener el temporizador y arrastrando respectivamente dicho temporizador a su interior. La siguiente imagen no tendría sentido práctico, pues se pondría en marcha el cronómetro para, a continuación detenerlo, si bien sirve para observar la estructura que deben adoptar ambas Actions en el lugar correcto que les corresponda. Para más información, consultar la referida entrega anterior.

cartridgeFUNCTION CALL

El funcionamiento de esta Action lo hemos descrito al comienzo de esta misma entrada. Sirve para “llamar” a la ejecución de una Function que hayamos creado previamente. Me remito a lo dicho al comienzo de la entrada:

cartridgePLAY SOUND /STOP SOUND

Estás dos actions nos servirán respectivamente para iniciar y detener la reproducción de un sonido que hayamos agregado previamente al Menú de los Media, tal y como vimos en la tercera entrega de este tutorial. Como viene siendo habitual sólo deberemos arrastrar la acción que corresponda al lugar del evento en que convenga. Mientras que Play Sound requiere que arrastremos a su interior el audio que pretendamos reproducir, no ocurre lo mismo con Stop Sound, que detiene la reproducción de cualquier audio que se esté escuchando en ese momento que, de otra manera sonaría hasta su finalización. Al igual que ocurría en el ejemplo de START TIMER/STOP TIMER, el siguiente ejemplo carecería de efecto práctico, pues comenzaria a sonar el audio para detenerse en ese mismo momento. La imagen solo pretende exponer la estructura de ambas actions que deben adoptar en el lugar que corresponda:

cartridge

SAVE GAME / SAVE AND CLOSE GAME

Estas Actions permiten al programador del cartucho que, en determinado momento del mismo, la partida se salve de forma automática en el dispositivo del jugador sin que este realice ninguna acción específica. Esto puede servir para que, en el caso de jugadores con poca experiencia que olviden salvar su avance periódicamente, evitar que tras un avance importante en la aventura, se pudiera perder la misma por no salvar manualmente. Personalmente, soy partidario de que quien realice un wherigo sea responsable de sus acciones y juegue concentrado, por lo que no me gusta decirle cuando debe o no salvar su partida. Si bien también puede servir para evitar que un jugador “travieso” salve manualmente la partida y, tras tomar una decisión erronea que le debería obligar a volver a empezar la partida, retome la partida salvada previamente y vuelva a intentarlo. Todo depende del grado de exigencia del programador.

La diferencia entre ambas actions únicamente radica en que SAVE GAME salva la partida, mientras que SAVE AND CLOSE GAME tras salvar los avences, expulsa al jugador del cartucho sin darle opción a hacer nada más.

La forma de introducir estas actions en un evento es la más simple posible, pues únicamente hay que arrastrarlas al lugar en el que se quiera que produzcan efectos sin tener que añadir nada más.

cartridgeLUA USER CODE

Urwigo es un entorno gráfico que permite la programación de cartuchos Wherigo de una manera intuitiva y al alcance de casi cualquiera. Pero estos cartuchos funcionan en realidad bajo un lenguaje de programación denominado LUA. A través de la Action LUA USER CODE y la expression Lua user expression podremos introducir fragmentos de código LUA en nuestro cartucho, obteniendo resultados espectaculares que no están al alcance del limitado entorno gráfico que es Urwigo. Por supuesto, para utilizar con garantías este código es necesario tener unas mínimas nociones del mismo, cosa que supera con mucho mi limitada capacidad. Sin embargo tengo al Maestro Kenobi-LJN trabajando en un tutorial para quien quiera profundizar en este aspecto de Wherigo e invito a todos a leer con detenimiento el tutorial que Mitesoro publicó en Geocachingspain.com para poder introducir acentos y caracteres como la “ñ” en nuestros cartuchos utilizando LUA. Muchas gracias por este magnífico tutorial que tantas veces he utilizado en mis cartuchos Mitesoro!!!

COMMENT

Aunque no la he utilizado nunca, creo que esta action sirve únicamente para introducir comentarios en el cartucho, que son notas del programador que no tienen otra utilidad que ser leidas por el para aclararse dentro de la estructura de su cartucho. Aunque yo no le veo mucha utilidad, todos los programadores de verdad que conozco utilizan comentarios en sus obras, de manera que queda a vuestra disposición utilizar la Action o no.

Su estructura es sencilla. Únicamente hay que arrastrar la Action al lugar donde queramos insertar el comment y escribir en él lo que consideremos necesario.

cartridge…………………………….

Y con esto hemos analizado todas las Actions que nos ofrece Urwigo y damos por concluida la entrega de hoy del tutorial. Para aquellos pocos de vosotros que estais siguiendo EL RETO, ya no es necesario que me sigais enviando vuestros avances utilizando todo lo explicado hoy, pues no se puede exigir que un cartucho haga uso de todas las Actions posibles. Seguid dando forma a vuestro cartucho, pues sólo quedan una o dos entregas del tutorial y será en ese momento cuando me lo tengais que enviar concluido para decidir quien es el ganador.

¡¡¡FELIZ GEOCACHING Y FELICES WHERIGOS A TODOS!!!