#include #include #include #include struct Carta { int num; bool vol; }; Carta Tablero[32]; void ResetTablero(){ int x; for(x=0;x<30;x++){ Tablero[x].num = 0; Tablero[x].vol = false; } } void LlenaTablero(){ int x,y; for(x=0;x<32;x++){ do{ y = random(32); } while(Tablero[y].num != 0); Tablero[y].num = x+1; Tablero[y].vol = true; } } void __debug_MuestraTablero(){ int x; for(x=0;x<32;x++) if(Tablero[x].num%2) printf("%i\n",(Tablero[x].num+1)/2); else printf("%i\n",Tablero[x].num/2); } void DibujaCarta(int x, int y, bool sel,int num = 0){ if(sel){ gotoxy(x,y); printf("ÉÍÍÍÍ»"); gotoxy(x,y+1); printf("º º"); gotoxy(x,y+2); if(num != 0) printf("º %2i º",num); else printf("º º"); gotoxy(x,y+3); printf("º º"); gotoxy(x,y+4); printf("º º"); gotoxy(x,y+5); printf("ÈÍÍÍͼ"); } else { gotoxy(x,y); printf("ÚÄÄÄÄ¿"); gotoxy(x,y+1); printf("³ ³"); gotoxy(x,y+2); if(num != 0) printf("³ %2i ³",num); else printf("³ ³"); gotoxy(x,y+3); printf("³ ³"); gotoxy(x,y+4); printf("³ ³"); gotoxy(x,y+5); printf("ÀÄÄÄÄÙ"); } } void DibujaTablero(){ int x,num; for(x=0;x<32;x++){ if(Tablero[x].num%2) num = (Tablero[x].num+1)/2; else num = Tablero[x].num/2; DibujaCarta(((x%8)*7)+3,((x/8)*6)+1,false,num); } } int main(int argc, char *argv[]){ int pos = 0,xpos = 0,tecla; srand(time(NULL)); ResetTablero(); LlenaTablero(); /*__debug_MuestraTablero();*/ clrscr(); DibujaTablero(); do{ tecla = getch(); switch(tecla){ case 0: tecla = getch(); switch(tecla){ case 77: xpos = pos++; if(pos > 31) pos = 0; break; case 75: xpos = pos--; if(pos < 0) pos = 31; break; case 80: xpos = pos; pos += 8; if(pos > 31) pos -= 32; break; case 72: xpos = pos; pos -= 8; if(pos < 0) pos += 32; break; } break; case 27: exit(0); } DibujaCarta(((xpos%8)*7)+3,((xpos/8)*6)+1,false); DibujaCarta(((pos%8)*7)+3,((pos/8)*6)+1,true); } while(1); }