Aqui os dejo un programilla que hice anoche, se trata del tipico juego de hacer parejas, tu introduces por teclado un numero del 1 al 6, y te sale un nombre, que tienes que enlazar con otro igual, cuando te aburras de jugar, pulsa 0 y puedes ver el numero de aciertos obtenidos.
Este programa ha sido probado por mi con el micropic trainer y micropic trainer plus, con las librerias KBD.C y LCD.C modificadas, por lo que no se si para que os funcione debereis cambiar algo.
#include <16f84a.h>
#fuses NOWDT,NOPROTECT,Xt
#use delay (clock=4000000)
#include <KBD.C>
#include <LCD.C>
#include <string.h>
main()
{
char nombre[3][8];
char k;
int par[2]={8,9};
int last[2]={0,0};
int cont=0; //contador de aciertos
strcpy(nombre[0],"Neo");
strcpy(nombre[1],"Morpheo");
strcpy(nombre[2],"Trinity");
lcd_init();
lcd_gotoxy(0,1);
printf(lcd_putc,"--MATRIX LINKS--
");
printf(lcd_putc,"num(1-6):");
WHILE (1)
{
IF ((last[0]+last[1]>=2) && (par[0] != par[1])) //Condicion de derrota
{
par[0]=8;
par[1]=9;
last[0]=0;
last[1]=0;
}
IF (par[0]==par[1]) //Condicion de Victoria
{
cont+=1;
printf(lcd_putc,"GRATS");
delay_ms(1000);
par[0]=8;
par[1]=9;
last[0]=0;
last[1]=0;
lcd_putc("f");
lcd_gotoxy(0,1);
printf(lcd_putc,"--MATRIX LINKS--
");
printf(lcd_putc,"num(1-6):");
}
lcd_gotoxy(10,2);
k=kbd_getc();
IF (k)
{
switch (k)
{
case "0": lcd_putc("f"); printf(lcd_putc," Has obtenido
%d aciertos",cont);
delay_ms(2000);
sleep();
break;
case "1": printf(lcd_putc,"%s",nombre[0]); par[0]=1; last[0]+=1; delay_ms(1000); break;
case "2": printf(lcd_putc,"%s",nombre[1]); par[0]=2; last[0]+=1; delay_ms(1000); break;
case "3": printf(lcd_putc,"%s",nombre[2]); par[0]=3; last[0]+=1; delay_ms(1000); break;
case "4": printf(lcd_putc,"%s",nombre[0]); par[1]=1; last[1]+=1; delay_ms(1000); break;
case "5": printf(lcd_putc,"%s",nombre[1]); par[1]=2; last[1]+=1; delay_ms(1000); break;
case "6": printf(lcd_putc,"%s",nombre[2]); par[1]=3; last[1]+=1; delay_ms(1000); break;
}
lcd_putc("f");
lcd_gotoxy(0,1);
printf(lcd_putc,"--MATRIX LINKS--
");
printf(lcd_putc,"num(1-6):");
}
}
}