Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /********************************************************************************
- * El paseo del Caballo Agosto 2013 *
- * Autor: Maor Levy *
- * Programacion UNLa, primer a�o *
- * Profesor: Hector Carballo *
- * *
- * *
- ********************************************************************************/
- #include <iostream>
- #include <cstdlib>
- #include <time.h>
- #define MAX 8
- using namespace std;
- /*
- Terminar:
- Reglas
- Salida
- Usuario: mostrar tablero en comando
- Fin
- */
- void inicio();
- void execute(int i, int j);
- int mostrar();
- void move(int j);
- int usuario();
- int reglas();
- int cpu();
- int fin(int k);
- int usr=1;
- int tablero[MAX][MAX];
- int n = 0;
- int m = 0;
- int main(int argc, char *argv[])
- {
- int t,juego=0;
- while (juego<=0 || juego>4)
- {
- cout<<"\n\n\n"<<endl;
- cout<<"*********************************"<<endl; //Ingresar reglas y opciones
- cout<<"Bienvenido al paseo del Caballo!"<<endl;
- cout<<"1.Prueba tu suerte (Automatico)"<<endl;
- cout<<"2.Prueba tu ingenuo (Manual)"<<endl;
- cout<<"3.Reglas"<<endl;
- cout<<"4.Salir"<<endl;
- cout<<"*********************************"<<endl;
- cout<<"Elija una opcion:";
- cin>>juego;
- switch (juego)
- {
- case 1:
- t=cpu();
- break;
- case 2:
- t=usuario();
- break;
- case 3:
- t=reglas();
- break;
- case 4:
- return 0;
- break;
- /* default:
- cout<<"Elija una opcion:";
- cin>>juego;*/
- }
- juego = t;
- }
- return 0;
- }
- void inicio () //limpia y inicia la posicion del caballo
- {
- n=0;
- m=0;
- int i,j;
- for(i=0; i<MAX; i++)
- {
- for(j=0; j<MAX; j++)
- {
- tablero[i][j]=0;
- }
- }
- tablero[0][0]=1;
- }
- void execute(int i, int j) /* Aplica el movimiento */
- {
- if (i>=0 && i<=MAX-1)
- {
- if (j>=0 && j<=MAX-1)
- {
- tablero[i][j]=tablero[i][j]+1;
- }
- else
- {
- cout<<"Error de Movimiento"<<endl;
- move(usr>4 ? (usr-4):(usr+4));
- }
- }
- else
- {
- cout<<"Error de Movimiento"<<endl;
- move(usr>4 ? (usr-4):(usr+4));
- }
- }
- int mostrar () /*imprime el tablero*/
- {
- int i,j;
- int F[MAX];
- short C[MAX];
- cout<<"\n\n\n\n\n\n\n\n\n\n";
- cout<<"\n"<<"\t";
- F[0]=65;
- for(i=0;i<MAX;i++)
- {
- F[i+1] = F[i]+1;
- cout<<(char)F[i]<<" ";
- }
- cout<<endl<<endl;
- C[0]=1;
- for(i=0; i<MAX; i++)
- {
- C[i+1] = C[i]+1;
- cout<<C[i]<<"\t";
- for(j=0; j<MAX; j++)
- {
- cout<<tablero[i][j] << " ";
- }
- cout<<endl;
- }
- cout<<endl;
- return 0;
- }
- void move(int j) /* Ingresar todos los mov en esta funcion */
- {
- switch (j)
- {
- case 1: //2 arriba, 1 derecha
- n-=2;
- m+=1;
- break;
- case 2: //1 arriba, 2 derecha
- n-=1;
- m+=2;
- break;
- case 3: //1 abajo, 2 derecha
- n+=1;
- m+=2;
- break;
- case 4: //2 abajo, 1 derecha
- n+=2;
- m+=1;
- break;
- case 5: //2 abajo, 1 izquierda
- n+=2;
- m-=1;
- break;
- case 6: //1 abajo, 2 izquierda
- n+=1;
- m-=2;
- break;
- case 7: //1 arriba, 2 izquierda
- n-=1;
- m-=2;
- break;
- case 8: //2 arriba, 1 izquierda
- n-=2;
- m-=1;
- break;
- }
- }
- int usuario()
- {
- char u;
- //char umov=0;
- inicio();
- while (usr != 0 )
- {
- if (n!=7 || m!=7)
- {
- cout<<"El Caballo esta en "<< n+1 <<" "<< (char)(m+65)<< endl;
- cout<<"Que movimiento desea hacer? (1-8, 0 para Salir)"<<endl; //ingresar opcion MOSTRAR!
- cin>>usr;
- while (usr <0 || usr>8)
- {
- cout<<"Opcion invalida."<< endl <<"Que movimiento desea hacer? (1-8)"<<endl;
- cin>>usr;
- }
- move(usr);
- execute(n,m);
- /* if (usr!=0) //Para implementar opcion para no mover
- {
- {
- cout<<"El caballo ira a "<<n+1<<" "<<(char)(m+65)<<endl;
- cout<<"Desea mover hacia aqui? (S/N)"<< endl;
- cin>>umov;
- }
- }
- if (umov == 'S' || umov == 's')
- {
- execute(n,m);
- }
- else if (umov == 'N' || umov == 'n')
- {
- move(usr>4 ? (usr-4):(usr+4));
- }*/
- }
- else
- {
- cout<<"\n\nFelicidades!"<<endl;
- cout<<"El caballo llego a "<<n+1<<" "<<(char)(m+65)<<endl;
- cout<<"Desea ver los pasos?";
- cin>>u;
- if (u=='s' || u=='S')
- {
- u='a';
- fin(1);
- return 0;
- }
- else
- return 0;
- }
- }
- return 0;
- }
- int cpu()
- {
- char u;
- srand ( time(NULL) );
- inicio();
- while (usr != 0 )
- {
- if (n!=7 || m!=7)
- {
- cout<<"Casillero actual "<< n+1 <<" "<< (char)(m+65)<< endl;
- usr=rand() % 8 + 1;
- move(usr);
- execute(n,m);
- }
- else
- {
- cout<<"\n\nFelicidades!"<<endl;
- cout<<"El caballo llego a "<<n+1<<" "<<(char)(m+65)<<endl;
- cout<<"Desea ver los pasos?";
- cin>>u;
- if (u=='s' || u=='S')
- {
- u='a';
- fin(1);
- return 0;
- }
- else
- return 0;
- }
- }
- return 0;
- }
- int reglas() //Terminar reglas
- {
- char u;
- cout<<"\n\n\n\n\n\n\n\n\n\n\n\n\n";
- cout<<"*********************************"<<endl;
- cout<<"* Reglas *"<<endl;
- cout<<"*El objetivo es traer el caballo*"<<endl;
- cout<<"*que se encuentra en la posicion*"<<endl;
- cout<<"* 1A hacia el casillero 8H *"<<endl;
- cout<<"* Los movimientos son del 1-8 *"<<endl;
- cout<<"* en los cuales se mueve asi: *"<<endl;
- cout<<"* 1: 2 arriba, 1 derecha *"<<endl;
- cout<<"* 2: 1 arriba, 2 derecha *"<<endl;
- cout<<"* 3: 1 abajo, 2 derecha *"<<endl;
- cout<<"* 4: 2 abajo, 1 derecha *"<<endl;
- cout<<"* 5: 2 abajo, 1 izquierda *"<<endl;
- cout<<"* 6: 1 abajo, 2 izquierda *"<<endl;
- cout<<"* 7: 1 arriba, 2 izquierda *"<<endl;
- cout<<"* 8: 2 arriba, 1 izquierda *"<<endl;
- cout<<"*********************************"<<endl;
- cout<<"Ingrese cualquier tecla para seguir";cin>>u;
- return 0;
- }
- int fin(int k)
- {
- // for(int p=0;p<k;p++)
- // {
- int pasos=0;
- for(int i=0;i<MAX;i++)
- {
- for(int j=0;j<MAX;j++)
- {
- pasos+=tablero[i][j];
- }
- }
- mostrar();
- cout<<"Lo logro en "<<pasos<<" pasos"<<endl;
- // }
- cout<<"Presione cualquier tecla para salir"<<endl;
- cin>>k;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement