El programa principal guarda un número secreto y lo compara contra otro leído del teclado de la terminal serial. Tienes n intentos para adivinar // el numero secreto.

Dependencies:   mbed

main.cpp

Committer:
Antulius
Date:
2014-03-26
Revision:
4:e98b4109b114
Parent:
3:10e172076e10

File content as of revision 4:e98b4109b114:

/*******************************************************************************
*
* ARCHIVO:      Adivina.cpp
*
* DISPOSITIVO:  MKL46Z
*
* HERRAMIENTA:  mbed
*
* DESCRIPCION:  El programa principal guarda un número secreto y lo compara
*               contra otro leído del teclado. Tiene n intentos para adivinar
*               el numero secreto.
*               Este programa recibe un dato desde la terminal y lo compara
*               con datos subsecuentes enviados por la terminal para decidir
*               si el número es menor, igual o mayor al digitado.
*
* VERSION:      1.0
*
* AUTOR(ES):    Antulio Morgado Valle
*
* FECHA:        10/20/2014
*
*******************************************************************************/
#include "mbed.h"
#include "Serial.h"
DigitalOut verde (LED1);
DigitalOut rojo(LED2);
Serial pc_serial(USBTX, USBRX);
//Serial pc_serial(PTE22, PTE23);

#define  on 0
#define off 1

/*
#===============================================================================
|
|               P R O G R A M A     P R I N C I P A L
|
#================================================================================ 
*/
int main() {
   rojo  = off;
   verde = off;
   pc_serial.baud(9600);
   while(1) 
    {
Inicio:     pc_serial.printf(" DIGITE UN NUMERO SECRETO DE 0 A 9 \r\n");
            char secreto = pc_serial.getc();
            rojo = on;
            verde = on;          
 Intenta:   pc_serial.printf(" ADIVINA EL NUMERO, \r\n");
            char respuesta = pc_serial.getc();
            if( secreto < respuesta  ) 
            {
                pc_serial.printf(" Es mas Bajo  \r\n");
                rojo = on;
                verde = off;               
                goto Intenta;
            }
            if( secreto > respuesta  ) 
            {
                pc_serial.printf(" Es mas Alto  \r\n");
                rojo  = off;
                verde = on;
                goto Intenta;
            }
            if( secreto == respuesta ) 
            {
                pc_serial.printf(" CORRECTO!, Es igual a: %c \r\n",secreto);
                rojo  = off;
                verde = on;
                wait(1.0);
                rojo  = off;
                verde = off;
                wait(1.0);
                rojo  = off;
                verde = on;
                wait(1.0);
                pc_serial.printf(" Eres un Genio !!!  \r\n");
                wait(1.0);
                rojo  = on;
                verde = off;
                wait(1.0);
                rojo  = off;
                verde = on;
            }
        pc_serial.printf(" Quieres intentarlo de nuevo?  \r\n");
        pc_serial.printf(" 0 = No \r\n 1 = Si  \r\n");
            char opcion = pc_serial.getc();
            if( opcion == '1' ) goto Inicio;
            else if( opcion == '0' )
            {
                pc_serial.printf(" Eso es todo Amigos!  \r\n");
                break;
            }
    }
}

/*
+--------------------------------------------------------------------------------
|                               EJERCICIO
|
| 1.-   Este programa tambien acepta letras o caracteres?
| 2.-   Modificar este programa para: 
|       a) Que solo acepte números
|       b) Agregar un contador de Número de Intentos 
|       
+--------------------------------------------------------------------------------
|
|                               EXAMEN
|
| 1.-   Modificar el programa para que despliegue el número de intentos para adivinar
|       el número secreto.
| 2.-   Modificar el programa para haga eco con la respuesta que le introducimos.
|
| 3.-   Modificar el programa para que el número secreto sea generado aleatoriamente.
|       a) Generar un Número Pseudo Aleatorio Mediante el Ticker
|       b) Utilizando la función RANDOMIZE
| Suerte!
+--------------------------------------------------------------------------------
|
|                     T H E     A N T U L I U S   T E A M
|  Research, Development, Systems Equipment, Support & Spare Parts    I n c.
|                (C) Copyright 1989-2014, All rigths Reserved
|
| This program is licensed under rules of
| THE BEANERS TECHNOLOGIES PROYECT
+-------------------------------------------------------------------------------
*/