0% encontró este documento útil (0 votos)
807 vistas21 páginas

Guía para Sketchware

Guía para sketchware Guía para sketchware Guía para sketchware Guía para sketchware Guía para sketchware Guía para sketchware Guía para sketchware Guía para sketchware Guía para sketchware Guía para sketchware Guía para sketchware Guía para sketchware

Cargado por

Nico Dominguez
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
807 vistas21 páginas

Guía para Sketchware

Guía para sketchware Guía para sketchware Guía para sketchware Guía para sketchware Guía para sketchware Guía para sketchware Guía para sketchware Guía para sketchware Guía para sketchware Guía para sketchware Guía para sketchware Guía para sketchware

Cargado por

Nico Dominguez
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Guía para el equipo docente del TCE

PROYECTO: ¿Qué significan tus emojis?

OBJETIVOS
Al realizar este proyecto, se espera que los estudiantes:
○ puedan crear, programar y compilar un proyecto sencillo en Sketchware.
Este proyecto utiliza:
○ Elementos de programación: Eventos.
○ Elementos de la interfaz: Botones, etiquetas.

Este proyecto es para crear una primera aplicación muy sencilla. El objetivo no es que
aprendan conceptos de programación, sino que instalen Sketchware, comiencen a
familiarizarse con el entorno y conozcan algunas dinámicas básicas de uso. La propuesta
es que construyan un traductor de emojis, en el que, al presionar un botón con un emoji,
aparece en pantalla un texto que lo explique. Por ejemplo: “ ” ⟶ “Me parece bien”.

Al presionar distintos botones, la aplicación nos dice el


significado del emoji.

ETAPA 1: Instalación y primer proyecto

OBJETIVO Instalar la aplicación Sketchware y crear un nuevo proyecto vacío.

En esta primera etapa, los estudiantes instalan la aplicación y crean un primer proyecto. En
caso de que alguno de las o los estudiantes no cuente con un dispositivo Android ni pueda
conseguir uno para la realización del taller (los requerimientos de Sketchware son muy
generosos, tanto en versiones de Android como de capacidad del hardware), puede
sugerirse el uso de un emulador de Android en la computadora. En caso de ser necesario
utilizar esta herramienta, queda a cargo de cada equipo el armado de material sobre la
instalación (ficha, video, etc.).

1/26
ETAPA 2: Diseño

Colocar dos botones, cada uno con un emoji, y un texto en la interfaz de


OBJETIVO
la aplicación.

Los estudiantes construyen una primera versión de la interfaz, que


cuenta con dos botones (para dos emojis distintos) y un texto (para
que aparezca la traducción). El equipo docente les facilita material
de apoyo en el que se explican algunos puntos clave de la interfaz
y la dinámica básica de uso de la aplicación. También se
mencionan algunas propiedades relevantes (como el contenido del
texto de los botones) que son necesarias para alcanzar el objetivo,
y otras que los estudiantes pueden utilizar para comenzar a
personalizar su aplicación.

Los estudiantes diseñan su aplicación y antes de proceder con la


programación, la compilan e instalan (presionando el botón Run o
Correr). Podrán ver la interfaz pero no sucederá nada al presionar
los botones. Esta es la motivación para la siguiente etapa.

ETAPA 3: Programación
Al presionar cada botón, en el campo de texto se
OBJETIVO
lee el significado del emoji correspondiente.

Siguiendo las consignas propuestas en los materiales, las y los


estudiantes ingresan a los bloques correspondientes al evento
onClick de uno de los botones. En base al material provisto por el
equipo docente,
agregan el bloque TextView: setText con el
contenido deseado. Prosiguen con el próximo y ejecutan su aplicación.

ETAPA 4: Para continuar


Para los estudiantes que estén interesados en continuar trabajando sobre su proyecto y hayan
podido resolver las dos primeras etapas, en línea con la metodología de trabajo
propuesta para los proyectos siguientes, se ofrecen algunas continuaciones posibles: agregar
más botones, cambiar el tamaño del texto, el fondo de la aplicación, pensar otros usos para la
aplicación (los mensajes de cada emoji no necesariamente pueden ser su significado), etc.

2/26
PROYECTO: Tu botonera

OBJETIVOS
Al realizar este proyecto, se espera que las y los estudiantes:
● se familiaricen con el entorno de programación Sketchware.
● combinen componentes, eventos y vistas y construyan un programa en el que
interactúen.
● conozcan algunas herramientas para controlar el aspecto gráfico de una
aplicación. Este proyecto utiliza:
● Elementos de programación: Eventos.
● Elementos de la interfaz: Horizontal/Vertical Layout, Botones, propiedades gráficas
(opcional), importación de archivos (opcional).
● Componentes: Texto a Voz, MediaPlayer (opcional).

ETAPA 1: Un botón que diga


Hacer una aplicación con un botón que, al presionarlo, haga que el
DESAFÍO
teléfono “diga” una frase.

Para comenzar esta etapa, los estudiantes deben crear un nuevo proyecto y agregar un
botón como hicieron en el Proyecto anterior. Puede ser una oportunidad para repasar lo
trabajado en la etapa previa y resolver dudas que hayan quedado pendientes.

El equipo docente propone buscar un elemento que pueda ser utilizado para que el teléfono
“hable”. Asisten en lo necesario, preguntando por otras situaciones en las que el teléfono
genera voz (por ejemplo, en una aplicación de mapas, al dar indicaciones sobre un recorrido)
y brindando pistas sobre las traducciones.

Cuando los estudiantes se hayan encontrado con la pestaña de componentes, se realiza


una breve puesta en común sobre la noción de componente, algunos que hayan llamado su
atención, algunas palabras claves en inglés y en castellano y cómo agregarlos al proyecto.
Como conclusión, se señala el componente “TextToSpeech” (texto a voz) como el necesario
para el desafío.

El próximo paso, al igual que en el proyecto anterior, es proceder a la programación con los
bloques. Se puede aprovechar este momento para recuperar (y reforzar si hiciera falta)
la dinámica (se utilizan bloques, estos están asociados a eventos, etc.). Es importante hacer
esta presentación desde el lado de la dinámica o la metodología y no cómo una introducción
teórica a la noción de evento ni de instrucción. Invitan a los estudiantes a que ingresen a
estas secciones y exploren los bloques disponibles.

3/26
Para resolver el desafío basta con el bloque

TextTospeech: set speak .

que se encuentra dentro de la categoría Component. Después de que los estudiantes hayan
explorado la herramienta y ensayado alguna solución, en una breve puesta en común se
puede señalar que los componentes vienen con bloques asociados, que tienen que ver con
su funcionalidad específica dentro de la aplicación. Cuando prueben su aplicación por
primera vez, verán que no funciona si no completaron el primer campo del bloque. En este
momento no son importantes las razones técnicas por las que hay que completarlo,
simplemente recordarles que deben elegir el componente de texto a voz que agregaron del
menú desplegable para ese campo:

TextTospeech: textoAVoz set speak Hola .

El equipo docente sigue el trabajo de los grupos y cuando hayan resuelto el desafío se
realiza a modo de cierre una breve puesta en común, en la que se resalta la posibilidad de
incorporar componentes para funciones específicas, destacando que las aplicaciones están
compuestas por diferentes elementos independientes que interactúan entre sí (como, por
ejemplo, los botones y otros vistos en el Proyecto anterior). Puede aprovecharse para
sistematizar algunas de las traducciones importantes (nombres de componentes, bloques o
herramientas del entorno).

ETAPA 2: Muchos botones


DESAFÍO Agregar más botones con nuevas frases.

El equipo docente propone que comiencen por agregar los componentes a la interfaz y
luego se dediquen por su cuenta a la programación, en base a lo trabajado en la etapa
anterior.
A continuación se listan posibles inconvenientes que pueden surgir al incorporar muchos
botones en la interfaz, con posibles soluciones o consejos para resolverlos:
● Ancho de los botones: se puede configurar el ancho de cada botón para que se
adapte a la pantalla cambiando la propiedad width con el valor match_parent.
● Alineación del texto: se puede alinear el texto de un componente ingresando a la
propiedad gravity y seleccionando las diferentes ubicaciones. Por ejemplo, si se
quiere centrar horizontalmente el contenido, se debe seleccionar la opción
center_horizontal.
● Alineación del elemento: de la misma forma que con el texto, podemos alinear un
elemento configurando la propiedad gravity_layout.

4/26
● Tamaño del texto: para modificar el tamaño del texto de un componente se accede
a la propiedad text_size y se selecciona alguno de los tamaños posibles.
● Componentes de disposición (Linear(V/H) Layout): son elementos que se pueden
agregar a la interfaz para contener (y ordenar) otros elementos.

Cuando el diseño de la interfaz esté más o menos resuelto, los estudiantes pueden avanzar
a la programación. Si hay estudiantes que se concentran demasiado en el aspecto visual
(colores, imágenes, tipografías, etc.) se adelanta que habrá una instancia para eso en la
próxima etapa.
En esta instancia, el equipo docente interviene únicamente para resolver dudas o brindar
asistencia, y lo hacen siempre recordando la experiencia de la etapa 1. También es
importante, dentro de lo posible, que estén atentos al avance de todos los estudiantes para
detectar dificultades y brindar ayuda para evitar frustraciones.

ETAPA 3: Continuaciones posibles


Las actividades están orientadas a la personalización y algunas mejoras para la botonera.

Botones “de verdad”


Hacer que los botones se vean como los botones de un tablero o
DESAFÍO
un videojuego antiguo.

El desafío para esta actividad es que los botones se vean como botones de una botonera o
tablero en vez de como botones de una aplicación.
Para esto, es necesario:
➔ Conseguir una imagen de botón (se puede buscar en internet
fácilmente si es para uso interno y los derechos no son un
problema).
➔ Importarla al proyecto.
➔ Ponerla como fondo del botón (background resource)
➔ Asegurarse de que el tamaño de la imagen esté forzado por el
tamaño que tiene el botón en la disposición de la interfaz (match parent, o establecer
el tamaño a mano con las propiedades width y height).

Sonidos “de verdad”


El desafío para esta actividad es utilizar sonidos grabados además de la lectura del
sintetizador de voz. Para esto, es necesario:
➔ Conseguir los sonidos (de un banco de sonidos en internet, por ejemplo, pero
también grabados con alguna aplicación). Se sugiere que el equipo pueda compartir
un conjunto de sonidos preseleccionados.
➔ Importarlos al proyecto.
➔ Incorporar un componente MediaPlayer
➔ Utilizar los bloques adecuados de este componente.
Invitar a las y los estudiantes a que revisen los bloques asociados al MediaPlayer y
ayudarlos con las traducciones de los nombres.
➔ Si ponen sonidos largos, puede tener sentido un botón de STOP.
5/26
Si van a hacer esto, es importante crear el reproductor en el evento onCreate para
que no se genere una null pointer exception si lo presionan antes de reproducir un
sonido.

Texto a la carta
El desafío para esta actividad es agregar un campo de texto en el que el usuario pueda
escribir un texto para que diga el sintetizador de voz. Para esto, es necesario:
➔ Agregar (y presentar) un componente EditText
➔ Utilizar los bloques de View para acceder al contenido del campo de texto y
combinarlos con los conocidos del sintetizador.

PROYECTO: Competencia de clics

OBJETIVOS
Al realizar este proyecto, se espera que las y los estudiantes:
● Construyan un proyecto que integre las herramientas trabajadas hasta el momento.
● Incorporen nuevos componentes que permitan resolver nuevos
desafíos. Este proyecto utiliza:
● Elementos de programación: Eventos, Variables y Alternativa Condicional.
● Elementos de la interfaz: Horizontal/Vertical Layout, Botones, propiedades gráficas
(opcional), importación de archivos (opcional).
● Componentes: Timer (opcional), Texto a Voz (opcional), MediaPlayer (opcional).

INTRODUCCIÓN
El equipo docente realiza una presentación del proyecto que se va a desarrollar,
mostrando su interfaz y funcionamiento.
Proponen construir la interfaz gráfica de la aplicación ubicando de forma sencilla los
componentes principales: 2 botones y 2 textos (para mostrar la cantidad de veces que se
presiona un botón).

ETAPA 1: Mostrar cantidad de clics en la pantalla

Parte A: Variables y un botón


Esta primera parte está pensada para desarrollarse de manera sincrónica, presentar las
variables y asistir a las y los estudiantes en una primera solución.

📌 Contar y mostrar en la pantalla la cantidad de veces que una o un


OBJETIVO jugador presionó un botón

6/26
Una vez construida la primera parte de la interfaz gráfica vamos a programar cada botón para
que muestre la cantidad de clics que va realizando cada jugador cuando presiona el botón.
En esta etapa aparece un primer problema a resolver: ¿Cómo lograr que la aplicación
vaya almacenando los clics de cada jugador? Para esto se introduce el concepto de
variable como una forma de que la aplicación almacene información.

Se les propone a los estudiantes analizar algunas capturas de


videojuegos e identificar qué tipo de información se está almacenando, por
ejemplo: puntaje, vidas, nombre del personaje, puntaje más alto, tiempo,
💬 etc.
ACTIVIDAD
Conclusión: las computadoras tienen la capacidad de almacenar
información y es frecuente que los programas lo hagan. Para hacerlo, se
suelen usar variables.

Retomando el problema planteado y la conclusión de la actividad, el equipo docente invita a


los estudiantes a explorar brevemente Sketchware para identificar dónde están y cómo se
usan las variables. En una breve puesta en común, se señala:
● para crear una nueva variable en nuestra aplicación:
○ Debemos ingresar a alguno de los eventos (por ejemplo, el evento onClick
de un botón) y luego ir a la sección de bloques → Variable → Add
variable.
○ En Sketchware es necesario establecer qué tipo de información contendrá la
variable. Como necesitamos recordar una cantidad, es decir un número,
seleccionaremos Number.
○ También es necesario ponerle un nombre que describa lo que almacenará,
como “clics”.
● algunas operaciones que se pueden hacer con las variables, en base a los bloques
disponibles:
○ guardar un valor en una variable (asignar) o establecer su valor:
set Number: to .
○ incrementar o decrementar su valor en 1:
Number: increase 1
Number: decrease 1

Contar la cantidad de veces que se presiona un botón


DESAFÍO

Lo que nuestra aplicación debe hacer cada vez que hacemos clic en uno de los botones es
incrementar en 1 el valor de la variable. Por lo tanto, el evento quedará:

When boton_a clicked

Number: clics_a increase 1

Mostrar en la pantalla la cantidad de veces que se presionó un botón


DESAFÍO
7/26
Explorá los bloques de la categoría View para encontrar un bloque que
🔎 te permita modificar el contenido de un texto de la pantalla. Tené en
PISTA cuenta qué componente usaste para mostrar el texto en la interfaz.

🔎 Explorá los bloques de la categoría Operator para encontrar un bloque


PISTA que te permita convertir en texto (“string”) una variable.

Dado que el contenido de la variable no está visible cuando ejecutamos la aplicación, hace
falta actualizar el texto que muestra la cantidad de clics. Precisamente, el texto
txt_clics_a debe mostrar el valor que está almacenado en la variable. Para esto, hay que
modificar el contenido del texto txt_clics_a utilizando la operación setText:

TextView: txt_clics_a setText toString clics_a without decimal

Por cuestiones técnicas, el bloque setText espera un argumento de tipo texto (o string), y la
variable que cuenta los clics fue creada como de tipo número. Para salvar esta restricción,
hace falta “convertirlo” utilizando el bloque toString.

Finalmente el programa del botón será:

When boton_a clicked

Number: clics_a increase 1

TextView: txt_clics_a setText toString clics_a without decimal

Parte B: el otro botón


En esta segunda parte, los estudiantes trabajan y el equipo docente está disponible para
resolver inquietudes o dificultades.

Contar y mostrar en la pantalla la cantidad de veces que la o el otro


DESAFÍO jugador presionó su botón

Para resolver este desafío, el equipo docente apela a la experiencia previa e invitan a los
estudiantes a identificar aspectos en común y recuperar soluciones. Puede ser una
oportunidad para repasar algunos de los conceptos trabajados hasta el momento.

8/26
ETAPA 2: ¿Quién va ganando?

Parte A: Un botón
Esta primera parte está pensada para presentar la alternativa condicional y asistir a los
estudiantes en una primera solución.

Cambiar el color de un botón según si la o el jugador va ganando (verde)


DESAFÍO o perdiendo (rojo).

El equipo docente plantea las preguntas para identificar la necesidad de utilizar una
alternativa condicional. El objetivo es concluir que es necesario comparar la cantidad de
clics de cada jugador y según el caso hacer diferentes cosas.

¿Los colores de los botones son siempre los mismos? ¿De qué dependen?
💭 ¿Cómo sabemos quién va ganando? ¿Qué hacemos en cada situación?
PREGUNTAS ¿Cómo podríamos expresarlo?

A partir de estas preguntas, el equipo docente invita a los estudiantes a que expresen cómo
debe cambiar la interfaz utilizando una expresión “Si …, entonces …”. Por ejemplo “Si
está ganando la o el jugador de abajo, el botón de abajo tiene que estar verde”. Invitan a que
los estudiantes exploren los bloques disponibles, recordando que “si” en inglés se dice “if”.

🔎 Explorá que bloque podríamos utilizar para realizar acciones “si pasa algo”
PISTA en nuestro programa.

En este punto, el equipo docente presenta la alternativa condicional como herramienta de


programación para resolver el problema planteado de actualizar el color del ganador y el del
perdedor. Se presenta el bloque if, que le indica a nuestra aplicación que realice un
conjunto de instrucciones si se cumple una condición:

El próximo paso, entonces, es completar el campo de la condición. El equipo docente puede


presentarla como una pregunta que se responde por sí o por no y que determina cuál de las
dos alternativas se ejecutará.

9/26
¿Cómo decimos en nuestro programa “Está ganando la o el jugador A”?
💭 ¿Qué información tenemos de cada uno? ¿Cómo podemos usarla
PREGUNTAS para saber quién gana?

El equipo docente plantea estas preguntas para que identifiquen que cuentan con la
cantidad de clics de cada jugador (pueden referirse a la etapa anterior en la que crearon
variables para almacenar este dato). Luego, plantean en términos numéricos la expresión “A
le gana a B” para motivar el uso del operador ‘>’. ¿Cómo utilizamos esta comparación en
nuestro programa? Se les propone a que exploren la herramienta e intenten construir esa
expresión utilizando bloques disponibles.

¿Cómo representamos con bloques la expresión “la o el jugador A hizo


🔎 más clics que la o el jugador B”? ¿Qué bloques son necesarios? ¿Cómo lo
PISTA incorporamos a la alternativa condicional? Explorá en la sección
Operator (Operador) qué bloque te permite representar esa expresión.

Parte B: El otro botón


En esta segunda parte, las y los estudiantes trabajan y el equipo docente está disponible
para resolver inquietudes o dificultades.

💡 Cambiar el color del otro botón según si la o el jugador va ganando


DESAFÍO (verde) o perdiendo (rojo).

ETAPA 3: Finalización del juego


Hasta el momento los estudiantes lograron que la aplicación vaya contando y mostrando en
la pantalla la cantidad de veces que un jugador presiona un botón. A continuación, se los
acompaña en la construcción de dos formas posibles de finalizar el juego: cuando se llega a
una cantidad de clics o bien, cuando pasan 10 segundos. En ambos casos, el equipo
docente deberá proveer a los estudiantes de los recursos necesarios para que puedan
resolver los desafíos (por ejemplo, fichas o videos de resolución).

Finalización por cantidad de clics

💡 DESAFÍO Terminar el juego cuando alguien alcanza los 50 clics.

10/26
Las pistas para este desafío apuntan a que los estudiantes identifiquen que tienen que
agregar una alternativa condicional luego de la actualización de cada uno de los clics:
cuando un jugador alcance los 50 clics, se deberá realizar alguna acción que dé cuenta de
la finalización, por ejemplo, mostrar un texto o poner de algún color el botón de la o el
ganador.

¿Cómo sabemos si debe terminar el juego? ¿Qué debemos preguntar? ¿En


🔎 qué momento? ¿Cuál es la nueva condición? ¿Qué debe suceder
PISTA después de que se cumpla?

¿Qué otras condiciones de finalización se te ocurren? ¿Cómo


OPCIONES las implementarías?

Cuando termina el juego podes, por ejemplo, cambiar el color del


👀 botón del ganador o ganadora, o agregar un elemento TextView a la
SUGERENCIA
pantalla para mostrar quién ganó.

Finalización por tiempo (Opcional)


Este desafío se propone como opcional ya que implica la incorporación de un nuevo
componente a la aplicación. El objetivo es agregar un botón para iniciar la cuenta del tiempo
y finalizar el juego a los 10 segundos. Para lograr esto deberán incorporar el componente
Timer para tener control del tiempo del juego.

A continuación, se presentan una serie de objetivos y desafíos que deberán estar


acompañados por insumos que desarrollará el equipo docente para que las y los
estudiantes los puedan resolver de forma asincrónica.

📌 Finalizar el juego a los 10 segundos


OBJETIVO

📋 Agregar a la pantalla un botón de inicio y un texto para mostrar el


PREPARACIÓN tiempo. Incorporar un componente Timer y activarlo cuando se presiona
el botón.

El equipo docente prepara un video con la explicación paso a paso,


🎥 debido a que involucran muchos detalles técnicos que no se espera
VIDEO que los estudiantes puedan explorar exitosamente por sí mismos
y no hacen al núcleo del taller.

11/26
El primer paso consiste en agregar a la pantalla dos componentes nuevos: un botón que
dará inicio a la cuenta regresiva del tiempo y un texto que visualice el tiempo restante.
Luego, se incorpora un componente para hacer acciones cada cierto tiempo definido (en
este caso, 10 segundos): el Timer (“temporizador”).

Se presenta y explica cómo usar el componente Timer. Dentro de los bloques asociados
nos interesa utilizar el siguiente:

Se les comenta a los estudiantes que este bloque ejecuta los bloques encastrados en su
interior cada cierto tiempo (en milisegundos) que debemos indicarle en el espacio en blanco
en “for every ms”, que quiere decir “cada ‘tantos’ milisegundos”. Por lo tanto, agregaremos
este nuevo bloque al evento OnClick del botón de inicio, especificando que la cantidad de
milisegundos será 1000 (es decir, 1 segundo), para “activar” la cuenta. Se pueden proponer
otros ejemplos de programas o aplicaciones donde sea evidente que existe un temporizador.

💡 Contar la cantidad de segundos transcurridos.


DESAFÍO

Para resolver este paso, los estudiantes deben incorporar una variable que almacene la
cantidad de segundos transcurridos y se vaya actualizando cada 1 segundo. Las pistas
apuntan a asociar cómo lograron contar la cantidad de veces que se presionó un botón con
contar segundos. Se puede recuperar, además, la idea de almacenar información en los
programas, en este caso, el tiempo. Para esto, es necesario:
● Crear la variable numérica “tiempo”.
● Incrementar el valor de la variable tiempo y actualizar el valor del texto que se
muestra en pantalla. Estos bloques deben colocarse dentro del bloque del
temporizador.

¿Qué herramienta de programación usaron para contar los clics? ¿Qué


🔎 tenemos que contar ahora? ¿En qué lugar del programa se tiene que
PISTA actualizar la cuenta? ¿Cómo se ve en la interfaz que va pasando el
tiempo?

El programa resultante es el siguiente:

When boton_comenzar clicked

View: boton_comenzar setEnable false

12/26
Timer: temporizador after 0 ms for every 1000 ms

Number: tiempo increase 1

TextView: txt_tiempo setText toString tiempo without decimal

Opcionalmente se puede comentar, como observación, que se puede deshabilitar el botón


de inicio al presionarlo para que no vuelva a ser presionado una vez que comenzó a correr
el tiempo (lo que además provoca un mal funcionamiento de la aplicación). Por otro lado, el
bloque Timer se sigue ejecutando aun cuando salgamos de la aplicación. Por lo tanto, es
posible “desactivar” su funcionamiento cuando lo deseemos, en este caso, cuando
cerramos la aplicación. Esto se realizar con el bloque Cancel (“cancelar”) del Timer en el
evento onDestroy, que se ejecuta en el momento que salimos de la aplicación:

On activity destroyed

Timer: temporizador cancel

💡 Finalizar el juego a los 10 segundos


DESAFÍO

Hasta ahora, la aplicación “cuenta” los segundos que van transcurriendo desde que
iniciamos la aplicación. El siguiente desafío es lograr que el juego termine a los 10
segundos: ¿Qué tiene que suceder para que finalice el juego?

¿Cómo identificamos que se alcanzó el tiempo límite del juego? ¿Qué


🔎 bloque conocido podríamos utilizar? ¿Cómo hiciste para identificar si
PISTA había que cambiar de color los botones?

A través de los insumos, el equipo docente orienta a que los estudiantes identifiquen que la
acción de finalización del juego deberá suceder cuando se alcancen los 10 segundos. Dicho
de otra forma, que la finalización del juego está condicionada por el tiempo. En este punto
entra en juego nuevamente la alternativa condicional y se recupera lo trabajado hasta el
momento sobre este bloque.

A continuación, se busca identificar la condición que determina la finalización del juego y


expresarla en términos de los bloques disponibles: “se alcanzaron los 10 segundos” o dicho
de otra forma, cuando el valor de la variable tiempo sea igual a 10. Para expresar esta
condición se recurre a los bloques de la categoría Operator (“operadores”), de la misma
forma que en la etapa anterior, para comparar cuando el valor de la variable tiempo sea
igual a 10. En el insumo se muestra además cómo construir esta expresión.

13/26
¿Cómo representamos con bloques la expresión “se alcanzaron los 10
🔎 segundos de juego”? ¿Qué bloques son necesarios? ¿Cómo lo
PISTA incorporamos a la alternativa condicional?

if tiempo = 10 then

💭 ¿Qué más tiene que realizar la aplicación cuando se cumplan los


PREGUNTA 10 segundos?

🔎 Cuando termina el juego no te olvides de detener el reloj ¿Existe un


PISTA bloque para esto? Explorá los bloques asociados al componente Timer.

Estas nuevas pistas apuntan a que los estudiantes complejicen la acción de la alternativa
para la finalización del juego. Se propone que el programa detenga el reloj cuando se
cumplan los 10 segundos utilizando la acción Cancel del Timer, como se hizo
anteriormente en el evento OnDestroy de la aplicación.

if tiempo = 10 then

Timer: temporizador cancel

Para finalizar este desafío se muestra un ejemplo de la aplicación en funcionamiento,


dejando en evidencia que el juego finaliza cuando se alcanzan los 10 segundos.

ETAPA 4: Nuevas ideas


A continuación, se listan una serie de desafíos que pueden ser propuestos a los estudiantes
para incorporar a sus proyectos. La mayoría requiere de herramientas que ya utilizaron en
etapas anteriores al desarrollo de este proyecto.

💡
Informar por voz quién ganó el juego
DESAFÍO

Este desafío consiste en que la aplicación diga quién ganó el juego. El objetivo es que
hagan uso de una alternativa condicional para identificar quién ganó y del componente
texttospeech para informar al ganador. El uso de estas herramientas se puede recuperar de
otros proyectos y etapas previas:

➔ El componente texttospeech (Referencia al Proyecto Tu botonera)


➔ Identificar al ganador (Referencia a la Etapa 2 de este proyecto)

14/26
➔ Informar un/a ganador/a diferente según una condición (Referencia a la Etapa 2 y 3
de este proyecto).

Pensá en lo que hiciste en etapas anteriores:


● ¿Cómo sabías quién iba ganando para cambiar el color de
los botones? ¿Qué comparabas?
🔎 ● ¿Qué componente y bloques usaste para que la aplicación
PISTA “diga” cosas?

¿En qué parte del programa vas a tener que poner estos bloques ahora?

💡
Deshabilitar los botones al finalizar el juego
DESAFÍO

Este desafío propone deshabilitar los botones de cada jugador una vez que finalizó el juego.
Para resolverlo deberán utilizar el bloque de la categoría View, setEnable, que permite
deshabilitar (bloquear) en la pantalla alguno de los elementos de la pantalla. En este caso
nos interesa deshabilitar los botones de cada jugador.

Explorá los bloques de la categoría View (Vista), ¿Hay alguno


que te permita deshabilitar un componente de la pantalla? ¿Cómo lo
🔎 utilizamos?
PISTA ¿En qué parte del programa deberías utilizarlo?

🧐 En inglés, “habilitado” se dice “enabled”.

💡
Agregar un botón para reiniciar el juego
DESAFÍO

Para este desafío, los estudiantes agregan un nuevo botón, basándose en lo trabajado
previamente. Las pistas apuntan a que identifiquen que deben reiniciar la cuenta de clics (y,
por ende, el valor de las variables), actualizar las etiquetas que lo muestran en la interfaz y
habilitar el botón de inicio. En caso de que hayan utilizado el componente Timer, pueden
agregar que se apague este componente, en caso de haberlo presionado antes de los 10
segundos.

¿Qué debe suceder con la cuenta de clics al reiniciar? ¿Qué elemento


🔎 usamos en el programa para llevar esa cuenta? ¿Qué valor debe tener
PISTA al reiniciar? ¿Qué sucede con el botón de inicio?

15/26
💡
Lookeá tu aplicación
DESAFÍO

Este desafío les propone a los estudiantes modificar el aspecto visual de la aplicación a
partir de propiedades que ya hayan sido utilizadas en el resto de los proyectos o bien dar el
espacio para que puedan explorar otras propiedades.

¿Qué elementos de la pantalla lookeaste en los proyectos anteriores?


👀 ¿Qué cosas agregaste? Además de las que ya conoces explorá
SUGERENCIA
otras propiedades que no hayas utilizado.

16/26
ANEXO DEL PROYECTO

Creación de la interfaz gráfica


1. Agregamos 5 secciones horizontales (Linear H):

CONFIGURACIÓN DE TODAS LAS SECCIONES


PROPIEDAD VALOR

Width match_parent

Height match_parent

Weight 1

CONFIGURACIÓN EXTRA DE LAS SECCIONES 2 Y 4


PROPIEDAD VALOR

Gravity center_horizontal, center_vertical

CONFIGURACIÓN EXTRA DE LA SECCIÓN 3


PROPIEDAD VALOR

Gravity center_vertical

2. Incorporamos dos botones, uno en la sección superior y otro en la inferior:

17/26
CONFIGURACIÓN DEL BOTÓN A
PROPIEDAD VALOR

Width match_parent

Height match_parent

Text

Text size 40sp

ID boton_a

CONFIGURACIÓN DEL BOTÓN B


PROPIEDAD VALOR

Width match_parent

Height match_parent

Text

Text size 40sp

Rotate 180

ID boton_b

3. Agregamos 2 textos para visualizar la cantidad de clics de cada jugador:

18/26
CONFIGURACIÓN DEL TEXTO “CLICS A”
PROPIEDAD VALOR

Text CLICS A

Text size 50sp

ID txt_clics_a

CONFIGURACIÓN DEL TEXTO “PUNTOS B”


PROPIEDAD VALOR

Text CLICS B

Text size 50sp

Rotate 180

ID txt_clics_b

4. Agregamos a la interfaz un nuevo texto que mostrará los segundos transcurridos:

19/26
CONFIGURACIÓN DEL TEXTO “TIEMPO”
PROPIEDAD VALOR

Text TIEMPO

Text size 50sp

Rotate 270

ID txt_tiempo

20/26
ANEXO
REQUISITOS DE LA APLICACIÓN
● Android 4.4 (o más)

OBSERVACIONES SOBRE EL FUNCIONAMIENTO


● Cuando se vuelve a compilar un proyecto, se actualiza la aplicación actual.
● Si se cambia el nombre de un proyecto ya creado se instala como una nueva
aplicación.

PROBLEMAS COMUNES
● Error al descargar la traducción
○ Al iniciar la aplicación por primera vez no se puede cambiar el idioma. Sin
embargo, después de iniciar se puede cambiar la traducción.
○ Tener en cuenta que la traducción no abarca los bloques. Solo algunas
etiquetas de la interfaz.
● Error al instalar un proyecto (“No se pudo instalar la aplicación”)
○ Al compilar un proyecto, se instala en el dispositivo como una nueva
aplicación. Si Android indica que hay poco espacio de almacenamiento no se
podrá instalar el proyecto (por más que pese unos pocos Kb).

IMPORTACIÓN DE UN PROYECTO
● Es necesario registrarse (se mira un video de unos segundos)
● Se genera un link para compartir. Tuvimos que acceder desde Chrome porque
Firefox no abre Sketchware para importar el proyecto.

21/26

También podría gustarte