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