Que Numero Appinventor

December 6, 2017 | Author: Sabela Rivera | Category: Information Science, Computer Engineering, Software, Areas Of Computer Science, Computing
Share Embed Donate


Short Description

Descripción: prácticas appinventor...

Description

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.

1

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. 2

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:

Dentro do caixón Variables atópase o bloque tomar que arrastramos ata o primeiro oco do bloque 3

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.

Crearemos os bloques para completar a instrución Si — entonces

4

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 cumpra a condición do Si — entonces anterior: 5

• 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 6

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.

7

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

8

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF