• No se han encontrado resultados

Que Numero Appinventor

N/A
N/A
Protected

Academic year: 2021

Share "Que Numero Appinventor"

Copied!
8
0
0

Texto completo

(1)

Que número estás a pensar?

Obxectivo

Imos facer unha aplicación para adiviñar que número estás a pensar. Para iso aprenderemos: • Que é unha variable e como manexala ( tomar e poñer )

Comprenderemos como se xera un número ao chou ( random ) Coñeceremos que é unha instrución condicional (bucle se-entón ) Usaremos operacións de comparación

Que número estás a pensar?

Imos facer un programa sinxelo pero eficiente. O programa pensará un número e nós temos que adiviñalo. Parecerá que o móbil pensa!

Para que o dispositivo Android poida facer isto correctamente temos que ensinarlle como facelo, paso a paso, engadindo bloques de código.

Deseño da interface

Temos que crear unha interface para que a aplicación che pregunte un número e che vaia dando pistas dicindo se é demasiado alto, demasiado baixo, ou se finalmente acertaches o número secreto.

Compoñentes no Diseñador:

1. Creamos unha Etiqueta, que chamamos EtiquetaNumero e cambiamos en propiedades o

Texto para que apareza nela a palabra “Número: “. Ademais o dispositivo vai ter que

“escoitar” cada número que lle digamos, para indicarnos se acertamos ou non.

2. Engadiremos un Campo de Texto. Servirá para que o xogador indique que número cree que pensou o programa. Nas súas propiedades en Pista escribe “Indica o teu número”.

3. Teremos que engadir un Botón co texto “Adiviña” para que o dispositivo saiba cal eliximos. 4. Creamos outra Etiqueta, que lle chamamos EtiquetaPista e cambiamos en propiedades o

Texto para que apareza nela a palabra “Pista “.

5. Engadimos un compoñente Reloj1, que se atopa dentro de Sensores. Como o reloxo é un compoñente non visible, aparecerá fóra da zona visible do Visor. Chamarémolo Temporizador.

O reloxo

Unha das propiedades máis importantes do reloxo é IntervaloDelTemporizador, que controla cada canto tempo se “dispara” o reloxo. Exprésase en milisegundos, e o seu valor inicial é 1000, ou o que é o mesmo, un segundo. Isto significa que cada segundo o reloxo dirá “Pasou unha unidade de tempo”. Se cambiamos o seu valor por 500, por exemplo, o reloxo avisará cada medio segundo. Para esta aplicación definiremos o IntervaloDelTemporizador cun valor de 30000, e así lle daremos ao xogador a posibilidade de tentar adiviñar o número durante 30 segundos.

(2)

Programación

Xerar un número aleatorio

Cando xogamos a este xogo, que é o primeiro que facemos cando lle dicimos a un amigo que adiviñe que número estamos a pensar? Pensamos un número ao azar.

Imos ao editor de Bloques:

O primeiro que o programa ten que facer é pensar nun número. Neste caso imos indicar como debe pensar nun número entre 1 e 10.

Abriremos o caixón Matemáticas, e usaremos o bloque entero aleatorio entre. Teremos que especificarlle entre que dous números debe pensar o seu número, entre 1 e 10.

A continuación imos facer que o programa garde este número na súa memoria.

Gardamos o número nunha variable

Unha variable é un espazo da memoria do dispositivo reservado para gardar datos que os nosos programas teñen que manexar durante o seu funcionamento. Para poder utilizar as variables de memoria é necesario en primeiro lugar darlles un nome.

Para iso abrimos o caixón Variables, inicializar global nombre como, podemos darlle á variable o nome número_pensado (fai clic enriba de nombre). É importante dar ás variables un nome descritivo, porque en programas máis complexos, con máis variables, facilitaranos saber para que serve cada unha.

(3)

Os bloques deben quedar así:

Con estes dous bloques dixémoslle ao o xogo que ten que pensar un número entre 1 e 10, e gardalo nunha variable da súa memoria, sen mostrarllo ao xogador.

Pedimos un número ao xogador

Para comezar a xogar deberiamos pedirlle ao xogador que nos diga un número. Isto conseguirémolo por medio do Campo de Texto que creamos no Visor. O xogador irá escribindo números neste campo e o programa irá indicando se o número aleatorio xerado secretamente é maior ou menor ao que o xogador escribiu.

Polo tanto, cada vez que o xogador escriba o seu número e pulse o botón Adiviñar o programa vaino comparar co número secreto.

Facer comparacións

Agora que xa temos o número pensado e o número que elixiu o xogador, a aplicación ten que comparar ambos números, para saber se acertou, ou se é maior ou menor.

En Control, sacamos o bloque Si — entonces

Dependendo do resultado da comparación a aplicación deberá facer unha cousa ou outra: • Si se cumpre unha condición

Entonces executa isto Cun exemplo entenderase millor:

Si numero_x>2

Entonces escribe “numero_x é maior que dous”

Imos comparar dous números, o pensado e o que dixo o xogador.

Comparamos os números

No caixón Matemáticas arrastramos o bloque comparador ata encaixalo co primeiro dos ocos do bloque Si — entonces:

(4)

azul de comparación, unha vez colocado eliximos que variable é a que queremos usar, despregando a lista de variables situada dentro do bloque tomar.

Agora que xa sabemos como consultar cal é o contido da variable numero_pensado, podemos modificar a comparación facendo clic no centro do bloque azul. Empezaremos avaliando se o número pensado é maior que o número do xogador.

No caso de que se cumpra a condición deberemos darlle ao xogador unha pista, dicíndolle que o número que nos dixo é demasiado baixo.

Co bloque poner imos asignar o valor “Demasiado baixo” ao texto da EtiquetaPista, para que o xogador o vexa na pantalla de xogo.

(5)

Cando debemos facer a comparación? Cada vez que o usuario faga clic no Boton1, que ten o texto Adiviñar. Polo tanto, incluiremos todo o bloque anterior dentro do bloque cuando.Boton1.Clic

Haberá que facer tres bloques Si — entonces, un para cando o número sexa menor, outro para cando sexa maior, e o último para cando sexa igual, nese caso o xogador acertaría o número.

Observemos que en cada bloque azul o signo de comparación será diferente. Podemos duplicar os bloques Si — entonces completos (botón dereito enriba do bloque Si — entonces) e logo modificar os bloques azuis e fucsia para que se adapten a cada comparación.

Bucles aniñados

Cada vez que o xogador pulsa o botón Adiviña o programa fai tres comparacións seguidas (é menor, é maior, e é igual). Con todo, só una delas será certa, así que non é necesario facer as tres preguntas. É dicir, se se cumpre a primeira condición non é necesario avaliar a segunda condición, nin a terceira. En realidade, non soamente non é necesario facer as tres preguntas, senón que non é tampouco conveniente, porque a aplicación fará sempre traballo inutilmente, facendo a aplicación máis lenta, menos eficiente.

Nota:

É importante que como programadores tentemos escribir un código tan eficiente e limpo como poidamos. Para iso hai que pensar un pouco cal é a mellor maneira de levar a cabo un proceso concreto, evitando liñas innecesarias ou redundantes, que afean o código.

No noso programa, para evitar as execucións de código innecesarias, imos utilizar sentenzas Si —

entonces aniñadas, ou Si — entonces –si no. Só se executarán os bloques do si no cando NON se

(6)

Si se cumpre unha condición Entonces executa isto

Si no executa isto outro Cun exemplo sería:

Si numero_x>2

Entonces escribe “numero_x é maior que dous” Si no escribe “numero_x é menor ou igual que dous”

De tal maneira que o bloque cuando.Boton1_Clic executarase moito máis rápido, ao evitar pasar por bloques sen necesidade.

Uso dun reloxo para calcular o tempo

Un compoñente moi útil para controlar e xestionar a execución dos programas é o temporizador, ou reloxo. Grazas a este compoñente podemos definir cando suceden cousas, independentemente do que faga o usuario da aplicación. Tamén podemos controlar o tempo que duran os procesos que se están executando.

Neste caso utilizarémolo para limitar o tempo do que dispón o usuario para adiviñar o número pensado. Cando remate o tempo establecido o usuario non poderá seguir tentando adiviñar o

(7)

número.

Para saber cando se cumpren os 30 segundos usaremos o bloque

cuandoTemporizador.Temporizador ejecutar, que se atopa dentro do caixón do reloxo. Todo o

que queiramos que suceda cando se cumpran os 30 segundos haberá que poñelo dentro deste bloque.

Poñeremos os bloques para que o xogo nos informe de que transcorreron os 30 segundos a través dunha mensaxe de texto. Como chegados a este punto xa non imos utilizar máis a EtiquetaPista, podemos reutilizala para mostrar ao xogador o texto de tempo esgotado nela.

Proposta de mellora

Podemos facer que o xogador só dispoña de 3 intentos para adiviñar o número. Para facer isto temos que crear outra variable, Intentos, na que gardaremos o número de intentos que o usuario consumiu.

Inicialmente esta variable terá o valor cero, para indicar que non consumimos aínda ningún intento.

Despois, cun gran Si — entonces, indicaremos que facer cando aínda queden intentos, e que outra cousa facer cando xa se consumiron todos.

É importante que ao final do proceso de preguntas se sume 1 ao número de intentos, para que se reduzan os intentos restantes para a seguinte volta.

(8)

Programación de bloques da app

Reto:

Mellorar a programación para que só saia a mensaxe de “Esgotouse o tempo” cando non se acerte o número.

Outra mellora sería poñer un botón para empezar de novo o xogo, é dicir, para que o móbil pense un novo número. Noutro caso, o xogador tería que saír da aplicación e volver entrar para que a aplicación pensase un novo número para xogar, e seguro que o xogador non estaría disposto a facer isto moitas veces.

Serías quen de facelo?

Mellora tamén a apariencia da app: icona, cores, imaxes, disposición dos elementos,...

Elaborado por Alicia Pérez tecnoloxía.org

Referencias

Documento similar