Exemple #1
0
void mostrarResultados(void){

	if(estado.modoAutomatico==1){
		output("\n \n \r¿Por qué no pruebas ahora el modo Competición?\n \n \r");
	}else{
		char teclaRetorno='0';
		calcularResultados();
		output("\n \n \r Resultados finales........\n \n \r");
		output("\n \n \r Número total de teclas pulsadas: ");
		outNum(10, resultados.totalPulsaciones, 10);
		output("\n \n \r Número de notas acertadas: ");
		outNum(10, resultados.pulsacionesCorrectas, 10);
		output(" de un total de: ");
		outNum(10, resultados.totalNotas, 10);
		output("\n \n \r Tasa de Aciertos = ");
		outNum(10, resultados.aciertos, 10);
		output("%\n \n \r Tasa de Pulsaciones Efectivas = ");
		outNum(10, resultados.eficiencia, 10);
		output("%\n \n \r Fin de la partida. Pulse la tecla A para volver a jugar \n \n \r");
		teclaRetorno=teclado();
		while(teclaRetorno!='A'){
			teclaRetorno=teclado();  //hasta que no se pulse la tecla "A" no salimos de la 
						 //pantalla de resultados
		}
	}
}
Exemple #2
0
//------------------------------------------------------
// void bucleMainTetris(void)
//
// Descripción:
//   Juega
//------------------------------------------------------
void bucleMainTetris(void){
	char tecla;
	
	if(estado.primeraPieza == PPIEZA){
		melodiasInic();
		borraTablero();
		if(estado.juegoBloques){
			pintaBloques();
			evaluarTablero();
		}
		resultadoInic();
		nuevaPieza();
		nuevaPieza();
		estado.primeraPieza = NO_PPIEZA;
	}
	
	tecla = teclado();
	//podemos usar una variable de estado para evitar pulsar una tecla
	
	if(tecla == CHAR_UNO) { mueveIzquierda(); }
	if(tecla == CHAR_CUATRO) { caePieza(); }
	if(tecla == CHAR_SIETE) { mueveDerecha(); }
	if(tecla == CHAR_A) { rotacion(); }
						
}
Exemple #3
0
//------------------------------------------------------
// int getCadTeclado(char* cadena)
//
// Descripción:
//   Lee una cadena del teclado matricial, caracter a
//   caracter y la devuelve para que la use el
//   programa principal.
//
// Parámetros:
//   char* cadena
//     puntero al búfer donde almacena la cadena leída.
//------------------------------------------------------
int getCadTeclado(char* cadena) {
	int i = 0;													// Lleva la cuenta de la posición en el array
	char w;														// Variable donde se almacena cada caracter leído del teclado
	int num = 0;													// Número que devuelve la función
	int cifras = 0;	
	output("			");												// Número de cifras del número
	do {														// Se ejecuta:
		w = teclado();												//	Lee el teclado matricial y almacena la tecla pulsada en w
		if (w <= '9' && w >= '0') {										//	Si la tecla pulsada es un número
			if (i == 0 && w == '0') {									//		Si para la primera cifra intentamos poner un 0
				i--;											//			Se ignora la tecla pulsada
			} else {											//		Si para la primera cifra no intentamos poner un 0
				cifras++;										//			Aumenta el número de cifras del número
				cadena[i] = w;										// 			Almacena el caracter leído en el array cadena
				outch(cadena[i]);									// 			Imprime en el terminal el caracter leído
			}
		} else if (w != 'D' && w != 'E') {									//	Si la tecla pulsada no es un número ni la tecla de borrar o de enter 
			i--;												//		Se ignora la tecla pulsada
		}
		if (w == 'D') { 											//	Si la tecla pulsada es la de borrar
			if (i > 0) {											//		Si no estamos en la primera posición del array
				cifras--;										//			Disminuye el número de cifras del número
				outch('\b');										//			Se borra el último número imprimido en el terminal
				i -= 2;											//			Retrocede una posición en el array
			} else {											// 		Si estamos en la primera posición
				i--;											//			Se ignora la tecla pulsada
			}
		}
	} while ((w != 'E') && (++i < 4));										// Mientras no se pulse la tecla de enter y el número tenga 4 cifras o menos

	output("\r\n");													// Se guardan e imprimen los caracteres de:
	cadena[i++] = '\r';												// - Retorno de carro
	cadena[i++] = '\n';												// - Cambio de línea
	cadena[i]   = '\0';												// - Fin de cadena
	
	if (cifras == 4) {												// Devuelve el número si tiene 4 cifras
		num = 1000*(cadena[0] - 48) + 100*(cadena[1] - 48) + 10*(cadena[2] - 48) + (cadena[3] - 48);
		return num;
	}
	else if (cifras == 3) {												// Devuelve el número si tiene 3 cifras
		num = 100*(cadena[0] - 48) + 10*(cadena[1] - 48) + (cadena[2] - 48);
		return num;
	}
	else if (cifras == 2) {												// Devuelve el número si tiene 2 cifras
		num = 10*(cadena[0] - 48) + (cadena[1] - 48);
		return num;
	}
	else if (cifras == 1) {												// Devuelve el número si tiene 1 cifra
		num = (cadena[0] - 48);
		return num;
	}
	else if (cifras == 0) {												// Devuelve un 1 si no introducimos nada
		return 1;
	}
	return 1;
}
void animate(int val){

	if(!paused){
		desenhar(val);
		val -= 3;
	}

	teclado();

	glutTimerFunc(animationTime,animate,val);

}
Exemple #5
0
 /* 
    Nombre: qtama
    Descripcion: establece el tamaño de la porcion de comida servida.
    Parametros: ninguno
    Retorna: entero sin signo
 */
unsigned short qtama () {
 unsigned short kp;
  qtama:

   do {
      kp = Keypad_Key_Click();             // Store key code in kp variable
      if (UART1_Data_Ready()){
         kp = UART1_Read();
         goto    bluetooth1;
         }
      }while (!kp);
    kp = teclado(kp);
    
    bluetooth1:

    if(kp == 'A' ||kp== 'B' ||kp== 'C'||kp== 'D'){
          Lcd_chr(2, 5, kp);

    do {
      kp = Keypad_Key_Click();             // Store key code in kp variable
      if (UART1_Data_Ready()){
         kp = UART1_Read();
         goto    bluetooth2;
         }
      }while (!kp);
      
    kp = teclado(kp);
    bluetooth2:
    
    if(kp == '#'){
    goto qtama;
    }
   }
  else {
  goto qtama;
  }
  return (kp);
 }
Exemple #6
0
unsigned short qtama () {
  unsigned short kp;
  qtama:
  
    do {
      kp = Keypad_Key_Click();
      if (UART1_Data_Ready()){
         kp = UART1_Read();
         goto    bluetooth1;
         }
    }while (!kp);
    kp = teclado(kp);
   
    bluetooth1:
    if(kp == 'A' ||kp== 'B' ||kp== 'C'||kp== 'D'){
      Lcd_chr(2, 4, kp);
      do {
        kp = Keypad_Key_Click();             // Store key code in kp variable
        if (UART1_Data_Ready()){
          kp = UART1_Read();
          goto    bluetooth2;
        }
      }while (!kp);
      kp = teclado(kp);
      
      bluetooth2:
      if(kp == '#'){
        goto qtama;
      }
      if(kp == '*'){
        Lcd_Chr (2,6,'G'); Lcd_Chr (2,7,'u'); Lcd_Chr (2,8,'a'); Lcd_Chr (2,9,'r');Lcd_Chr (2,10,'d');Lcd_Chr (2,11,'a'); Lcd_Chr (2,12,'d'); Lcd_Chr (2,13,'o');
      }
   }else {
     goto qtama;
   }
   return (kp);
 }
Exemple #7
0
void lanca_jogo(char **nomes, int *fd)
{
   _Bool side;

   espera=FALSE;

   lock(&actualiza);
   /**Verifica o lado em jogo e preenche o id do jogador*/
   if(debug)printf("A verificar lado\n");
   inicia_lado(nomes, &side);

   if(pthread_create(&reader, NULL, th_jogadas, (void *)&side)!=0)
   {
      printf("ERRO: Falha a lancar thread jogadas!\n");
      exit(EXIT_FAILURE);
   }

   nome_jogo=(char *)calloc(strlen(nomes[NGAME]),sizeof(char));

   strcpy(nome_jogo,nomes[NGAME]);

   if(debug) printf("A DAR INICIO AO JOGO@nome_jogo: %s\n",nome_jogo);

   inicia_mutex();

   memset((void*)cowboys[LEFT].name,(int)'\0',sizeof(cowboys[LEFT].name));
   memset((void*)cowboys[RIGHT].name,(int)'\0',sizeof(cowboys[RIGHT].name));

   if(side == LEFT)
      strncpy(cowboys[LEFT].name,nomes[NP1],strlen(nomes[NP1])%(NAMELEN-1));
   else
      strncpy(cowboys[RIGHT].name,nomes[NP1],strlen(nomes[NP1])%(NAMELEN-1));

   cowboys[side].sfd=*fd;

   unlock(&actualiza);

   while(!espera);


   teclado(nomes,side);

   pthread_join(reader,NULL);

}
Exemple #8
0
unsigned short obtenerNumero (unsigned short numMax) {
  unsigned short dig, numero, kp;
  volverObtenerNumero:
  dig = 0;
  numero=0;
  
  leerNum:
  do {
      kp = Keypad_Key_Click();
      if (UART1_Data_Ready()){
        kp = UART1_Read();
        goto    bluetoothRead;
      }
    }while (!kp);
    kp = teclado(kp);
    
    bluetoothRead:
    if(kp == 'A' || kp== 'B' || kp == 'C' ||kp == 'D'){
      goto leerNum;
    }else if (kp != '#' && kp != '*'){
      dig++;
      numero =  numero*10  +  kp -48;
      //Lcd_Chr(2, 7+dig, kp);
    }
  
  //}while (numero > numMax && kp != '*'  && kp != '#');
  
  if(kp == '#'){               //si presiona numeral se borra el numero
    goto volverObtenerNumero;
  }else if (kp == '*' && numero > 0){
    //Lcd_Chr(2, 7, (numero+48));
    Lcd_Out(2, 1, "Valor guardado");
    delay();
  }else if (numero > numMax){
    Lcd_Cmd(_LCD_CLEAR);
    Lcd_Out(2, 1, "Se paso de valor maximo");
    delay();
    goto volverObtenerNumero;
  } else{
    goto leerNum;
  }

  return (numero);
}
Exemple #9
0
unsigned short obtenerNumero (unsigned short numeroMax) {
  unsigned short dig,numero,kp;
  volverObtenerNumero:
  dig = 0;
  numero=0;
  Lcd_chr(2, 5, ' '); Lcd_chr(2, 4, ' '); Lcd_chr(2, 3, ' '); Lcd_chr(2, 2, ' '); Lcd_chr(2, 1, ' ');
  
  leerNumero:
  do {
    kp = Keypad_Key_Click();             // Store key code in kp variable
    if (UART1_Data_Ready()){
      kp = UART1_Read();
      goto    bluetooth4;
    }
  }while (!kp);
  kp = teclado(kp);
  
  bluetooth4:
  if(kp == 'A' || kp== 'B' || kp == 'C' ||kp == 'D'){
    goto leerNumero;
  }else if (kp>=48 && kp<=57) {
    dig++;
    Lcd_chr_Cp(kp);
    numero = (kp-48)+(10*numero);
  }
  
  if(kp == '#'){
    goto volverObtenerNumero;
  }else if (kp == '*' ){
    Lcd_Chr (2,6,'G'); Lcd_Chr (2,7,'u'); Lcd_Chr (2,8,'a'); Lcd_Chr (2,9,'r');Lcd_Chr (2,10,'d');Lcd_Chr (2,11,'a'); Lcd_Chr (2,12,'d'); Lcd_Chr (2,13,'o');
    delay();
  }else if (numero >= numeroMax){
    //Lcd_Cmd(_LCD_CLEAR);
    Lcd_chr(2, 1,'M'); Lcd_chr(2, 2,'a'); Lcd_chr(2, 3,'x'); Lcd_chr(2, 5,'t');
    delay();
    delay();
    goto volverObtenerNumero;
  }else{
      goto leerNumero;
   }

   return (numero);
}
// ************************************************
// Funcion Principal
void main()
{
   setup_adc_ports(AN0_AN1_AN3);
   setup_adc(adc_clock_div_32);
   lcd_init();

      while(TRUE)
         {
            m=teclado();
            if(m!=0)
            {
            lcd_putc("\f");
            if(m==49){
            lect_adc(0);}
            else if(m==50){
            lect_adc(1);}
            else {
            printf(lcd_putc,"Tecla invalida");
            }
            delay_ms(50);
            }
          }  
}