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

Committer:
Antulius
Date:
Wed Mar 26 04:57:55 2014 +0000
Revision:
4:e98b4109b114
Parent:
3:10e172076e10
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.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Antulius 3:10e172076e10 1 /*******************************************************************************
Antulius 3:10e172076e10 2 *
Antulius 3:10e172076e10 3 * ARCHIVO: Adivina.cpp
Antulius 3:10e172076e10 4 *
Antulius 4:e98b4109b114 5 * DISPOSITIVO: MKL46Z
Antulius 3:10e172076e10 6 *
Antulius 3:10e172076e10 7 * HERRAMIENTA: mbed
Antulius 3:10e172076e10 8 *
Antulius 3:10e172076e10 9 * DESCRIPCION: El programa principal guarda un número secreto y lo compara
Antulius 3:10e172076e10 10 * contra otro leído del teclado. Tiene n intentos para adivinar
Antulius 3:10e172076e10 11 * el numero secreto.
Antulius 3:10e172076e10 12 * Este programa recibe un dato desde la terminal y lo compara
Antulius 3:10e172076e10 13 * con datos subsecuentes enviados por la terminal para decidir
Antulius 3:10e172076e10 14 * si el número es menor, igual o mayor al digitado.
Antulius 3:10e172076e10 15 *
Antulius 3:10e172076e10 16 * VERSION: 1.0
Antulius 3:10e172076e10 17 *
Antulius 3:10e172076e10 18 * AUTOR(ES): Antulio Morgado Valle
Antulius 3:10e172076e10 19 *
Antulius 3:10e172076e10 20 * FECHA: 10/20/2014
Antulius 3:10e172076e10 21 *
Antulius 3:10e172076e10 22 *******************************************************************************/
Antulius 0:4c9659cbe94c 23 #include "mbed.h"
Antulius 0:4c9659cbe94c 24 #include "Serial.h"
Antulius 0:4c9659cbe94c 25 DigitalOut verde (LED1);
Antulius 0:4c9659cbe94c 26 DigitalOut rojo(LED2);
Antulius 0:4c9659cbe94c 27 Serial pc_serial(USBTX, USBRX);
Antulius 0:4c9659cbe94c 28 //Serial pc_serial(PTE22, PTE23);
Antulius 0:4c9659cbe94c 29
Antulius 0:4c9659cbe94c 30 #define on 0
Antulius 0:4c9659cbe94c 31 #define off 1
Antulius 0:4c9659cbe94c 32
Antulius 3:10e172076e10 33 /*
Antulius 3:10e172076e10 34 #===============================================================================
Antulius 3:10e172076e10 35 |
Antulius 3:10e172076e10 36 | P R O G R A M A P R I N C I P A L
Antulius 3:10e172076e10 37 |
Antulius 3:10e172076e10 38 #================================================================================
Antulius 3:10e172076e10 39 */
Antulius 0:4c9659cbe94c 40 int main() {
Antulius 0:4c9659cbe94c 41 rojo = off;
Antulius 0:4c9659cbe94c 42 verde = off;
Antulius 0:4c9659cbe94c 43 pc_serial.baud(9600);
Antulius 0:4c9659cbe94c 44 while(1)
Antulius 0:4c9659cbe94c 45 {
Antulius 0:4c9659cbe94c 46 Inicio: pc_serial.printf(" DIGITE UN NUMERO SECRETO DE 0 A 9 \r\n");
Antulius 0:4c9659cbe94c 47 char secreto = pc_serial.getc();
Antulius 0:4c9659cbe94c 48 rojo = on;
Antulius 0:4c9659cbe94c 49 verde = on;
Antulius 0:4c9659cbe94c 50 Intenta: pc_serial.printf(" ADIVINA EL NUMERO, \r\n");
Antulius 0:4c9659cbe94c 51 char respuesta = pc_serial.getc();
Antulius 0:4c9659cbe94c 52 if( secreto < respuesta )
Antulius 0:4c9659cbe94c 53 {
Antulius 0:4c9659cbe94c 54 pc_serial.printf(" Es mas Bajo \r\n");
Antulius 0:4c9659cbe94c 55 rojo = on;
Antulius 0:4c9659cbe94c 56 verde = off;
Antulius 0:4c9659cbe94c 57 goto Intenta;
Antulius 0:4c9659cbe94c 58 }
Antulius 0:4c9659cbe94c 59 if( secreto > respuesta )
Antulius 0:4c9659cbe94c 60 {
Antulius 0:4c9659cbe94c 61 pc_serial.printf(" Es mas Alto \r\n");
Antulius 0:4c9659cbe94c 62 rojo = off;
Antulius 0:4c9659cbe94c 63 verde = on;
Antulius 0:4c9659cbe94c 64 goto Intenta;
Antulius 0:4c9659cbe94c 65 }
Antulius 0:4c9659cbe94c 66 if( secreto == respuesta )
Antulius 0:4c9659cbe94c 67 {
Antulius 0:4c9659cbe94c 68 pc_serial.printf(" CORRECTO!, Es igual a: %c \r\n",secreto);
Antulius 0:4c9659cbe94c 69 rojo = off;
Antulius 0:4c9659cbe94c 70 verde = on;
Antulius 0:4c9659cbe94c 71 wait(1.0);
Antulius 0:4c9659cbe94c 72 rojo = off;
Antulius 0:4c9659cbe94c 73 verde = off;
Antulius 0:4c9659cbe94c 74 wait(1.0);
Antulius 0:4c9659cbe94c 75 rojo = off;
Antulius 0:4c9659cbe94c 76 verde = on;
Antulius 0:4c9659cbe94c 77 wait(1.0);
Antulius 0:4c9659cbe94c 78 pc_serial.printf(" Eres un Genio !!! \r\n");
Antulius 0:4c9659cbe94c 79 wait(1.0);
Antulius 0:4c9659cbe94c 80 rojo = on;
Antulius 0:4c9659cbe94c 81 verde = off;
Antulius 0:4c9659cbe94c 82 wait(1.0);
Antulius 0:4c9659cbe94c 83 rojo = off;
Antulius 0:4c9659cbe94c 84 verde = on;
Antulius 0:4c9659cbe94c 85 }
Antulius 0:4c9659cbe94c 86 pc_serial.printf(" Quieres intentarlo de nuevo? \r\n");
Antulius 0:4c9659cbe94c 87 pc_serial.printf(" 0 = No \r\n 1 = Si \r\n");
Antulius 0:4c9659cbe94c 88 char opcion = pc_serial.getc();
Antulius 0:4c9659cbe94c 89 if( opcion == '1' ) goto Inicio;
Antulius 0:4c9659cbe94c 90 else if( opcion == '0' )
Antulius 0:4c9659cbe94c 91 {
Antulius 0:4c9659cbe94c 92 pc_serial.printf(" Eso es todo Amigos! \r\n");
Antulius 0:4c9659cbe94c 93 break;
Antulius 0:4c9659cbe94c 94 }
Antulius 0:4c9659cbe94c 95 }
Antulius 0:4c9659cbe94c 96 }
Antulius 0:4c9659cbe94c 97
Antulius 3:10e172076e10 98 /*
Antulius 3:10e172076e10 99 +--------------------------------------------------------------------------------
Antulius 3:10e172076e10 100 | EJERCICIO
Antulius 3:10e172076e10 101 |
Antulius 3:10e172076e10 102 | 1.- Este programa tambien acepta letras o caracteres?
Antulius 3:10e172076e10 103 | 2.- Modificar este programa para:
Antulius 3:10e172076e10 104 | a) Que solo acepte números
Antulius 3:10e172076e10 105 | b) Agregar un contador de Número de Intentos
Antulius 3:10e172076e10 106 |
Antulius 3:10e172076e10 107 +--------------------------------------------------------------------------------
Antulius 3:10e172076e10 108 |
Antulius 3:10e172076e10 109 | EXAMEN
Antulius 3:10e172076e10 110 |
Antulius 3:10e172076e10 111 | 1.- Modificar el programa para que despliegue el número de intentos para adivinar
Antulius 3:10e172076e10 112 | el número secreto.
Antulius 3:10e172076e10 113 | 2.- Modificar el programa para haga eco con la respuesta que le introducimos.
Antulius 3:10e172076e10 114 |
Antulius 3:10e172076e10 115 | 3.- Modificar el programa para que el número secreto sea generado aleatoriamente.
Antulius 3:10e172076e10 116 | a) Generar un Número Pseudo Aleatorio Mediante el Ticker
Antulius 3:10e172076e10 117 | b) Utilizando la función RANDOMIZE
Antulius 3:10e172076e10 118 | Suerte!
Antulius 3:10e172076e10 119 +--------------------------------------------------------------------------------
Antulius 3:10e172076e10 120 |
Antulius 3:10e172076e10 121 | T H E A N T U L I U S T E A M
Antulius 3:10e172076e10 122 | Research, Development, Systems Equipment, Support & Spare Parts I n c.
Antulius 3:10e172076e10 123 | (C) Copyright 1989-2014, All rigths Reserved
Antulius 3:10e172076e10 124 |
Antulius 3:10e172076e10 125 | This program is licensed under rules of
Antulius 3:10e172076e10 126 | THE BEANERS TECHNOLOGIES PROYECT
Antulius 3:10e172076e10 127 +-------------------------------------------------------------------------------
Antulius 3:10e172076e10 128 */