Advertisement
Guest User

Untitled

a guest
May 29th, 2015
270
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.16 KB | None | 0 0
  1. /********************************************************************************
  2. * El paseo del Caballo Agosto 2013 *
  3. * Autor: Maor Levy *
  4. * Programacion UNLa, primer a�o *
  5. * Profesor: Hector Carballo *
  6. * *
  7. * *
  8. ********************************************************************************/
  9.  
  10. #include <iostream>
  11. #include <cstdlib>
  12. #include <time.h>
  13. #define MAX 8
  14.  
  15. using namespace std;
  16.  
  17. /*
  18. Terminar:
  19. Reglas
  20. Salida
  21. Usuario: mostrar tablero en comando
  22. Fin
  23. */
  24. void inicio();
  25. void execute(int i, int j);
  26. int mostrar();
  27. void move(int j);
  28. int usuario();
  29. int reglas();
  30. int cpu();
  31. int fin(int k);
  32.  
  33.  
  34. int usr=1;
  35. int tablero[MAX][MAX];
  36. int n = 0;
  37. int m = 0;
  38.  
  39.  
  40. int main(int argc, char *argv[])
  41. {
  42. int t,juego=0;
  43. while (juego<=0 || juego>4)
  44. {
  45. cout<<"\n\n\n"<<endl;
  46. cout<<"*********************************"<<endl; //Ingresar reglas y opciones
  47. cout<<"Bienvenido al paseo del Caballo!"<<endl;
  48. cout<<"1.Prueba tu suerte (Automatico)"<<endl;
  49. cout<<"2.Prueba tu ingenuo (Manual)"<<endl;
  50. cout<<"3.Reglas"<<endl;
  51. cout<<"4.Salir"<<endl;
  52. cout<<"*********************************"<<endl;
  53. cout<<"Elija una opcion:";
  54. cin>>juego;
  55.  
  56. switch (juego)
  57. {
  58. case 1:
  59. t=cpu();
  60. break;
  61.  
  62. case 2:
  63. t=usuario();
  64. break;
  65. case 3:
  66. t=reglas();
  67. break;
  68. case 4:
  69. return 0;
  70. break;
  71. /* default:
  72. cout<<"Elija una opcion:";
  73. cin>>juego;*/
  74. }
  75. juego = t;
  76. }
  77. return 0;
  78. }
  79.  
  80.  
  81.  
  82. void inicio () //limpia y inicia la posicion del caballo
  83. {
  84. n=0;
  85. m=0;
  86. int i,j;
  87.  
  88. for(i=0; i<MAX; i++)
  89. {
  90. for(j=0; j<MAX; j++)
  91. {
  92. tablero[i][j]=0;
  93. }
  94. }
  95. tablero[0][0]=1;
  96.  
  97. }
  98.  
  99. void execute(int i, int j) /* Aplica el movimiento */
  100. {
  101.  
  102. if (i>=0 && i<=MAX-1)
  103. {
  104. if (j>=0 && j<=MAX-1)
  105. {
  106. tablero[i][j]=tablero[i][j]+1;
  107. }
  108. else
  109. {
  110. cout<<"Error de Movimiento"<<endl;
  111. move(usr>4 ? (usr-4):(usr+4));
  112. }
  113. }
  114. else
  115. {
  116. cout<<"Error de Movimiento"<<endl;
  117. move(usr>4 ? (usr-4):(usr+4));
  118. }
  119. }
  120.  
  121. int mostrar () /*imprime el tablero*/
  122. {
  123. int i,j;
  124. int F[MAX];
  125. short C[MAX];
  126. cout<<"\n\n\n\n\n\n\n\n\n\n";
  127. cout<<"\n"<<"\t";
  128.  
  129. F[0]=65;
  130. for(i=0;i<MAX;i++)
  131. {
  132. F[i+1] = F[i]+1;
  133. cout<<(char)F[i]<<" ";
  134. }
  135.  
  136. cout<<endl<<endl;
  137. C[0]=1;
  138. for(i=0; i<MAX; i++)
  139. {
  140.  
  141. C[i+1] = C[i]+1;
  142. cout<<C[i]<<"\t";
  143.  
  144. for(j=0; j<MAX; j++)
  145. {
  146.  
  147. cout<<tablero[i][j] << " ";
  148. }
  149. cout<<endl;
  150.  
  151. }
  152. cout<<endl;
  153. return 0;
  154. }
  155.  
  156.  
  157. void move(int j) /* Ingresar todos los mov en esta funcion */
  158. {
  159. switch (j)
  160. {
  161. case 1: //2 arriba, 1 derecha
  162. n-=2;
  163. m+=1;
  164. break;
  165. case 2: //1 arriba, 2 derecha
  166. n-=1;
  167. m+=2;
  168. break;
  169. case 3: //1 abajo, 2 derecha
  170. n+=1;
  171. m+=2;
  172. break;
  173. case 4: //2 abajo, 1 derecha
  174. n+=2;
  175. m+=1;
  176. break;
  177. case 5: //2 abajo, 1 izquierda
  178. n+=2;
  179. m-=1;
  180. break;
  181. case 6: //1 abajo, 2 izquierda
  182. n+=1;
  183. m-=2;
  184. break;
  185. case 7: //1 arriba, 2 izquierda
  186. n-=1;
  187. m-=2;
  188. break;
  189. case 8: //2 arriba, 1 izquierda
  190. n-=2;
  191. m-=1;
  192. break;
  193. }
  194. }
  195.  
  196. int usuario()
  197. {
  198. char u;
  199. //char umov=0;
  200. inicio();
  201. while (usr != 0 )
  202. {
  203. if (n!=7 || m!=7)
  204. {
  205. cout<<"El Caballo esta en "<< n+1 <<" "<< (char)(m+65)<< endl;
  206. cout<<"Que movimiento desea hacer? (1-8, 0 para Salir)"<<endl; //ingresar opcion MOSTRAR!
  207. cin>>usr;
  208.  
  209. while (usr <0 || usr>8)
  210. {
  211. cout<<"Opcion invalida."<< endl <<"Que movimiento desea hacer? (1-8)"<<endl;
  212. cin>>usr;
  213. }
  214. move(usr);
  215. execute(n,m);
  216. /* if (usr!=0) //Para implementar opcion para no mover
  217. {
  218. {
  219. cout<<"El caballo ira a "<<n+1<<" "<<(char)(m+65)<<endl;
  220. cout<<"Desea mover hacia aqui? (S/N)"<< endl;
  221. cin>>umov;
  222. }
  223. }
  224. if (umov == 'S' || umov == 's')
  225. {
  226. execute(n,m);
  227. }
  228. else if (umov == 'N' || umov == 'n')
  229. {
  230. move(usr>4 ? (usr-4):(usr+4));
  231. }*/
  232.  
  233. }
  234. else
  235. {
  236. cout<<"\n\nFelicidades!"<<endl;
  237. cout<<"El caballo llego a "<<n+1<<" "<<(char)(m+65)<<endl;
  238. cout<<"Desea ver los pasos?";
  239. cin>>u;
  240. if (u=='s' || u=='S')
  241. {
  242. u='a';
  243. fin(1);
  244. return 0;
  245. }
  246. else
  247. return 0;
  248. }
  249. }
  250.  
  251. return 0;
  252.  
  253. }
  254.  
  255. int cpu()
  256. {
  257. char u;
  258. srand ( time(NULL) );
  259. inicio();
  260. while (usr != 0 )
  261. {
  262. if (n!=7 || m!=7)
  263. {
  264. cout<<"Casillero actual "<< n+1 <<" "<< (char)(m+65)<< endl;
  265. usr=rand() % 8 + 1;
  266. move(usr);
  267. execute(n,m);
  268.  
  269. }
  270. else
  271. {
  272. cout<<"\n\nFelicidades!"<<endl;
  273. cout<<"El caballo llego a "<<n+1<<" "<<(char)(m+65)<<endl;
  274. cout<<"Desea ver los pasos?";
  275. cin>>u;
  276. if (u=='s' || u=='S')
  277. {
  278. u='a';
  279. fin(1);
  280. return 0;
  281. }
  282. else
  283. return 0;
  284. }
  285. }
  286. return 0;
  287. }
  288.  
  289. int reglas() //Terminar reglas
  290. {
  291. char u;
  292. cout<<"\n\n\n\n\n\n\n\n\n\n\n\n\n";
  293. cout<<"*********************************"<<endl;
  294. cout<<"* Reglas *"<<endl;
  295. cout<<"*El objetivo es traer el caballo*"<<endl;
  296. cout<<"*que se encuentra en la posicion*"<<endl;
  297. cout<<"* 1A hacia el casillero 8H *"<<endl;
  298. cout<<"* Los movimientos son del 1-8 *"<<endl;
  299. cout<<"* en los cuales se mueve asi: *"<<endl;
  300. cout<<"* 1: 2 arriba, 1 derecha *"<<endl;
  301. cout<<"* 2: 1 arriba, 2 derecha *"<<endl;
  302. cout<<"* 3: 1 abajo, 2 derecha *"<<endl;
  303. cout<<"* 4: 2 abajo, 1 derecha *"<<endl;
  304. cout<<"* 5: 2 abajo, 1 izquierda *"<<endl;
  305. cout<<"* 6: 1 abajo, 2 izquierda *"<<endl;
  306. cout<<"* 7: 1 arriba, 2 izquierda *"<<endl;
  307. cout<<"* 8: 2 arriba, 1 izquierda *"<<endl;
  308. cout<<"*********************************"<<endl;
  309. cout<<"Ingrese cualquier tecla para seguir";cin>>u;
  310.  
  311.  
  312. return 0;
  313. }
  314.  
  315. int fin(int k)
  316. {
  317. // for(int p=0;p<k;p++)
  318. // {
  319. int pasos=0;
  320. for(int i=0;i<MAX;i++)
  321. {
  322. for(int j=0;j<MAX;j++)
  323. {
  324. pasos+=tablero[i][j];
  325. }
  326. }
  327. mostrar();
  328. cout<<"Lo logro en "<<pasos<<" pasos"<<endl;
  329. // }
  330. cout<<"Presione cualquier tecla para salir"<<endl;
  331. cin>>k;
  332. return 0;
  333. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement