|     Inicio    |   |         |  |   FOROS      |  |      |      
   Elastix - VoIP B4A (Basic4Android) App inventor 2 PHP - MySQL
  Estación meteorológica B4J (Basic4Java) ADB Shell - Android Arduino
   AutoIt (Programación) Visual Basic Script (VBS) FireBase (BD autoactualizable) NodeMCU como Arduino
  Teleco - Emisora de A.M. Visual Basic Cosas de Windows Webs interesantes
Translate:
Búsqueda en este sitio:


.

Autoit en español
Aplicaciones con Autoit - Juan Antonio Villalpando

-- Tutorial de iniciación a Autoit --

Volver al índice del tutorial

____________________________

11.- Koda. Adivinar el número.

adivina.exe

- El ordenador creará un número del 1 al 100. El usuario deberá adivinarlo, para ello escribirá un número y la aplicación mostrará un mensaje indicando si el número que has introducido es mayor o menor que el del ordenador.

- Este código es similar al que vimos en App Inventor: Adivina el número .

__________________________
- Ejecutamos Koda para crear el formulario.


- Creamos el siguiente Formulario. Tenemos Label (etiquetas), InputBox y Botones.

- He puesto Fuentes de tamaño: 20 y Style: Blod (negrita)

- Si pulsas Tools / Run Form, verás cómo va quedando.

- Si pulsas en Objetc Inspector la flecha que indica la siguiente imagen, verás el nombre de los componentes creados.

- Pulsamos en Tools / Generate Form Code... y obtenemos el código de situación de los componentes del Formulario.

- Ese código lo copiamos en el Editor SciTE. Borramos las últimas líneas como indico en la imagen.

- Creo el código de Adivina.

- NOTA: El número que se ha de adivinar aparecerá inicialmente en el Label3, solo para hacer comprobaciones de funcionamiento, cuando ya queramos jugar, eliminamos o comentamos mediante punto y coma; la línea del Label3 para que no se vea el número que debemos adivinar.

Código
Adivina

While 1
$msg = GuiGetMsg()
Select
Case $msg = $GUI_EVENT_CLOSE
ExitLoop


; Cuando presiona el Botón1 crea un número aleatorio del 1 al 100
Case $msg = $Button1             ; Indicamos que el cálculo se realizará cuando pulsemos el Botón1
$ordenador = Random(0,100,1)
GUICtrlSetData($Label3,$ordenador)    ; El $ordenador  lo escribirá en la Label3. Para comprobaciones.

; Cuando presiona el Botón2 realizará las comparaciones.
Case $msg = $Button2            ; Indicamos que el cálculo se realizará cuando pulsemos el Botón1
$mio = GUICtrlRead($Input1)     ; Toma el valor que escribamos en el Input1 y lo asigna a la $mio

if $ordenador > $mio Then
GUICtrlSetData($Label2,"Mi número es mayor.")    ; Escribe en Label2 = Mi número es mayor.
EndIf

if $ordenador < $mio Then
GUICtrlSetData($Label2,"Mi número es menor.")    ; Escribe en Label2 = Mi número es menor.
EndIf

if $ordenador = $mio Then
GUICtrlSetData($Label2,"HAS ACERTADO.")    ; Escribe en Label2 = HAS ACERTADO.
EndIf

EndSelect
Wend
Exit

- La parte azul de arriba y abajo la insertaremos también.

Formulario + codigo
adivina.au3

#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form2 = GUICreate("Adivina el número - Juan A. Villalpando", 586, 337, 189, 129)
$Button1 = GUICtrlCreateButton("Pulsa para nueva partida", 24, 8, 545, 49)
GUICtrlSetFont(-1, 20, 800, 0, "MS Sans Serif")
$Label1 = GUICtrlCreateLabel("Introduce un número", 16, 80, 319, 41)
GUICtrlSetFont(-1, 20, 800, 0, "MS Sans Serif")
$Input1 = GUICtrlCreateInput("Input1", 16, 128, 121, 45)
GUICtrlSetFont(-1, 20, 800, 0, "MS Sans Serif")
$Button2 = GUICtrlCreateButton("¿Es este?", 16, 184, 153, 41)
GUICtrlSetFont(-1, 20, 800, 0, "MS Sans Serif")
$Label2 = GUICtrlCreateLabel("Label2", 176, 184, 387, 33)
GUICtrlSetFont(-1, 15, 800, 0, "MS Sans Serif")
$Label3 = GUICtrlCreateLabel("Label3", 24, 256, 122, 41)
GUICtrlSetFont(-1, 20, 800, 0, "MS Sans Serif")
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

While 1
$msg = GuiGetMsg()
Select
Case $msg = $GUI_EVENT_CLOSE
ExitLoop

   ; Cuando presiona el Botón1 crea un número aleatorio del 1 al 100
   Case $msg = $Button1             ; Indicamos que el cálculo se realizará cuando pulsemos el Botón1
    $ordenador = Random(0,100,1)
    GUICtrlSetData($Label3,$ordenador)    ; El $ordenador  lo escribirá en la Label4

   ; Cuando presiona el Botón2 realizará las comparaciones.
   Case $msg = $Button2            ; Indicamos que el cálculo se realizará cuando pulsemos el Botón2
    $mio = GUICtrlRead($Input1)     ; Toma el valor que escribamos en el Input1 y lo asigna a la $mio

      if $ordenador > $mio Then
       GUICtrlSetData($Label2,"Mi número es mayor.")    ; Escribe en Label2 = Mi número es mayor.
      EndIf

      if $ordenador < $mio Then
       GUICtrlSetData($Label2,"Mi número es menor.")    ; Escribe en Label2 = Mi número es menor.
      EndIf

      if $ordenador = $mio Then
       GUICtrlSetData($Label2,"HAS ACERTADO.")          ; Escribe en Label2 = HAS ACERTADO.
      EndIf

EndSelect
Wend
Exit

- Lo ejecutamos: Tools / Go. [En caso de que ya estuviera funcionando pulsamos "Tools / Stop Executing"]

- NOTA: La Etiqueta3 es solo para comprobar el funcionamiento de la aplicación. Cuando comprobemos su buen funcionamiento, borraremos o inhabilitaremos esta Etiqueta3 para no ver el número que debemos acertar.

- La convertimos en autoejecutable mediante Aut2Exe, aqui está: adivina.exe
_________________
- Propuesta.

- Crea un contador que cuente el número de intentos realizados para acertar.

intentos = intentos + 1

__________________________
- Botón que cambia su Caption.

- Mediante GUICtrlSetData podemos cambiar las propiedades de un control que esté creado previamente.

adivina.au3

#include <GUIConstantsEx.au3>

#Region ### START Koda GUI section ### Form=
GUICreate("GUICtrlSetData", 200,100)
$button = GUICtrlCreateButton("Iniciar",60, 30, 80, 20)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

$count = 0

While 1
$msg = GuiGetMsg()
Select
Case $msg = $GUI_EVENT_CLOSE
ExitLoop 

        Case $msg = $button
        If $count = 1 Then
            GUICtrlSetData($button, "Iniciar")
            $count = 0
        ElseIf $count = 0 Then
            GUICtrlSetData($button, "Parar")
            $count = 1
        EndIf

EndSelect
Wend
Exit

__________________________
- Otra manera de realizar el bucle.

- En otros tutoriales verás otra manera de realizar el bucle para la obtención del botón pulsado, mediante Switch.

- En estos tutoriales seguiremos utilizando el primer método.

adivina.au3
				   
#include <GUIConstantsEx.au3>

#Region ### START Koda GUI section ### Form=
GUICreate("GUICtrlSetData", 200,100)
$button = GUICtrlCreateButton("Iniciar",60, 30, 80, 20)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

$count = 0

While 1
Switch GuiGetMsg()

        Case $button
        If $count = 1 Then
            GUICtrlSetData($button, "Iniciar")
            $count = 0
        ElseIf $count = 0 Then
            GUICtrlSetData($button, "Parar")
            $count = 1
        EndIf

Case $GUI_EVENT_CLOSE
Exit
EndSwitch
Wend

 

- Mi correo:
juana1991@yahoo.com
- KIO4.COM - Política de cookies. Textos e imágenes propiedad del autor:
© Juan A. Villalpando
No se permite la copia de información ni imágenes.
Usamos cookies propias y de terceros que entre otras cosas recogen datos sobre sus hábitos de navegación y realizan análisis de uso de nuestro sitio.
Si continúa navegando consideramos que acepta su uso. Acepto    Más información