#include #include #include #include #include char tabla[4][4]; void bienvenida() // Funcion que da la bienvenida al juego y muestra las instrucciones: { gotoxy(10,4); cout<<"Bienvenido al juego 'Fichas Electronicas'"<=0) { if ((tabla[a-1][b]=='@') && (tabla[a-2][b]==' ') && (tabla[a][b]=='@')) { tabla[a][b]=' '; tabla[a-1][b]=' '; tabla[a-2][b]='@'; return 1; } } break; case 's': if ((a+2)<=3) { if ((tabla[a+1][b]=='@') && (tabla[a+2][b]==' ') && (tabla[a][b]=='@')) { tabla[a][b]=' '; tabla[a+1][b]=' '; tabla[a+2][b]='@'; return 1; } } break; case 'a': if ((b-2)>=0) { if ((tabla[a][b-1]=='@') && (tabla[a][b-2]==' ') && (tabla[a][b]=='@')) { tabla[a][b]=' '; tabla[a][b-1]=' '; tabla[a][b-2]='@'; return 1; } } break; case 'd': if ((b+2)<=3) { if ((tabla[a][b+1]=='@') && (tabla[a][b+2]==' ') && (tabla[a][b]=='@')) { tabla[a][b]=' '; tabla[a][b+1]=' '; tabla[a][b+2]='@'; return 1; } } break; default: return 0; break; } } int ganador() // Funcion que verifica cuando se ha ganado el juego { int yagano=0; int i, j; for (i=0; i<4; i++) { for (j=0; j<4; j++) { if (tabla[i][j]=='@') yagano++; } } return yagano; } void main() // Funcion principal de Juego { int i, j, m, n, a=0, b=0, ficha, clave, yagano, valid, val, temp; char resp, dir, respu, dire; for (i=0; i<4; i++) // Se inicializan los valores de la matriz a ' ' { for (j=0; j<4; j++) tabla[i][j] = ' '; } randomize(); // Se asignan las fichas al azar for (i=1; i<=15;) { m=random(4); n=random(4); if (tabla[m][n] == ' ') { tabla[m][n] = '@'; i++; } } bienvenida(); do // Empieza la repeticion del juego { clave=0; clrscr(); dibuja(); fichas(); do { do { val=0; gotoxy(30, 10); cout<<"Casilla: "; cin>>ficha; if (ficha==0) { gotoxy(43,10); cout<<"Casilla invalida, ingrese otra"; getche(); gotoxy(43,10); cout<<" "; val=1; } else if ((ficha<1)||(ficha>16)) val=1; } while (val==1); asigna(ficha, a, b); if (tabla[a][b]==' ') { gotoxy(43,10); cout<<"Casilla vacia, ingrese otra"; getche(); gotoxy(43,10); cout<<" "; } } while (tabla[a][b]==' '); do { do { gotoxy(30, 11); cout<<"Direccion: "; cin>>dire; dir = tolower (dire); if ((dir!='a')&&(dir!='s')&&(dir!='d')&&(dir!='w')&&(dir!='x')) { gotoxy(43, 11); cout<<"Parametro invalido, ingrese otro"; getche(); gotoxy(43,11); cout<<" "; } } while ((dir!='a')&&(dir!='s')&&(dir!='d')&&(dir!='w')&&(dir!='x')); if (dir!='x') valid = movvalid(a, b, dir); else valid=1; if (valid!=1) { gotoxy(43, 11); cout<<"Movimiento imposible, trate de nuevo"; getche(); gotoxy(43,11); cout<<" "; } } while (valid!=1); clrscr(); dibuja(); fichas(); yagano=ganador(); if (yagano!=1) { do { gotoxy(30, 12); cout<<"Desea hacer otro movimiento? (s/n): "; cin>>respu; resp = tolower (respu); if ((resp!='s') && (resp!='n')) { gotoxy(43,13); cout<<"Parametro invalido, trate de nuevo"; getche(); gotoxy(43,13); cout<<" "; } } while ((resp!='s') && (resp!='n')); } else { gotoxy(30, 13); cout<<"HA GANADO EL JUEGO"<