gl gl en ca gl gl gl gl es gl en gl es en pt ceb gl pt gl gl gl gl gl gl gl gl gl gl ja gl gl gl gl gl gl gl gl gl gl gl gl gl gl gl gl gl gl gl gl gl gl gl gl gl gl gl es gl gl en ca it pt gl gl gl gl gl gl gl gl gl gl gl gl gl gl gl gl gl en gl gl it pt gl gl gl gl gl gl gl gl gl gl gl gl gl gl gl gl en gl gl gl gl gl gl lt gl it fr ast gl gl gl es gl pt pt it it es it gl gl gl gl en en en gl en en en en gl en en en en gl
Que número estás a pensar? – App Inventor
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 )
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.
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.
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.
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”.
Teremos que engadir un Botón co texto “Adiviña” para que o dispositivo saiba cal eliximos.
Creamos outra Etiqueta, que lle chamamos EtiquetaPista e cambiamos en propiedades o Texto para que apareza nela a palabra “Pista “.
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.
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.
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.
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.
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
Cun exemplo entenderase millor:
Entonces escribe “numero_x é maior que dous”
Imos comparar dous números, o pensado e o que dixo o xogador.
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 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
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.
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.
É 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:
Si se cumpre unha condición
Si no executa isto outro
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 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.
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.
Programación de bloques da app
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?
Que número estás a pensar?
Mellora o teu Xilófono
Un tour por París!
Onde está o meu coche?
App Inventor e Arduíno
Acender un led RGB
Control de un coche Arduino por Bluetooth
© 2022 App Inventor • Creado con GeneratePress
We use cookies on our website to give you the most relevant experience by remembering your preferences and repeat visits. By clicking “Accept All”, you consent to the use of ALL the cookies. However, you may visit "Cookie Settings" to provide a controlled consent.
This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience.
Necessary cookies are absolutely essential for the website to function properly. This category only includes cookies that ensures basic functionalities and security features of the website. These cookies do not store any personal information.
Any cookies that may not be particularly necessary for the website to function and is used specifically to collect user personal data via analytics, ads, other embedded contents are termed as non-necessary cookies. It is mandatory to procure user consent prior to running these cookies on your website.