Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Ejercicio 1
En este ejercicio implementaremos el juego del bingo simplificado. Habrá dos jugadores,
con sus respectivos cartones compuestos por 20 números aleatorios del 1 al 100 (todos
los números de un cartón han de ser forzosamente distintos). Por otro lado, se irá
generando una secuencia de números aleatorios comprendidos también entre 1 y 100, que
representan las bolas que van saliendo del bombo (esta secuencia tampoco podrá tener
números repetidos). La mecánica del programa será la siguiente: en cada iteración,
mostraremos los números que han ido saliendo del bombo hasta el momento, así como
los dos cartones, donde habremos tachado (en vez del número saldrá una X) los números
que ya hayan salido. Esperaremos entonces a que el usuario pulse una tecla y a
continuación sacaremos una nueva bola del bombo, actualizaremos los cartones con la
nueva bola y volverá a aparecer toda la información (lista con las bolas que han salido y
cartones actualizados). El programa terminará cuando alguno de los dos cartones se
complete, con lo que el jugador asociado a dicho cartón ganará. A continuación
mostramos un posible ejemplo de ejecución:
Ejercicio 2
Entrega
Los alumnos tendrán que entregar la práctica a través del Campus Virtual como máximo
el lunes 14 de enero de 2019 a las 23:59. La entrega constará de los códigos fuente de
los ejercicios (los archivos .cpp únicamente) y un informe como el solicitado en la
práctica 1 (en pdf).
Para recoger las pulsaciones de los cursores sin tener que pulsar intro utilizaremos la
función getch(). Para discriminar los cursores normales de los cursores del teclado
numérico (en teclados extendidos) se emiten dos caracteres seguidos por cada letra: el
primero es el juego de cursores del que proviene (-32 o 0 respectivamente) y el segundo
el código de tecla (72 arriba, 80 abajo, 75 izquierda, 77 derecha y 13 intro). Además, si
el blocknum está activado recibiremos un número en vez de dichos códigos (8 arriba, 2
abajo, 4 izquierda y 6 derecha). En Linux y Mac se producen casos similares con otros
códigos. Para contemplar cualquiera de estos casos os proporcionamos el siguiente
ejemplo:
La función getch() solo está disponible en la librería conio.h, por lo que solo se puede
usar en Windows. En Linux o Mac incluye el siguiente código al principio de tu programa
para simular dicha función:
#include <termios.h>
#include <unistd.h>
#include <fcntl.h>
int getch(void){
struct termios oldt, newt;
int ch;
tcgetattr( STDIN_FILENO, &oldt );
newt = oldt;
newt.c_lflag &= ~( ICANON | ECHO );
tcsetattr( STDIN_FILENO, TCSANOW, &newt );
ch = getchar();
tcsetattr( STDIN_FILENO, TCSANOW, &oldt );
return ch;
}