elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


  Mostrar Mensajes
Páginas: 1 ... 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 [29] 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 ... 46
281  Programación / Programación C/C++ / Re: Ayuda con programa urgente! en: 20 Diciembre 2013, 14:24 pm
Bueno lo de depurar el código na que decir, por que la razón tiene quien la tiene jaja.
Estoy seguro que el código se puede mejorar, incluyendo el tuyo como bien lo comentas y creo que en su día también lo hice ¡Creo! XD
Al final dejas señalado lo que podías haber mejorado pero no lo has echo por que no te salio lo mismo me pasa jaja. XD
Lo del aleatorio no abro mano XDD. Si no, no seria una búsqueda es mas como una trampa saber el camino ¿no?
Se supone que no sabes el camino, y si llegas a un punto con 3 o mas elecciones¿Que harás, vas hacia el final?  :laugh:
Estoy de acuerdo contigo sobre que cuando entra en un punto sin salida el se queda perdido por lo que comentas.Pero eso tiene solucion ¡Creame!XD
Lo del final si podías ver que no lo hice pero te lo pongo aquí ya que no dejas pasar una XD:

Código
  1. if( mapa[y][x] == 'F' ){
  2. cout << "TACHANNNN!!!!XDLOLOL";
  3. break;
  4. }

Sobre lo del camino sin salida bien puede ser que si al llegar al final y no encuentra nada, lo rellene con ceros envés de unos, marcando así que ese camino no pueda volver a entrar. XDD

Son fallos tontos los que me estas señalando se lo dije que deje muchas cosas por hacer jeje
La cosa es que por no seguir deje mucho que hacer pero bueno :rolleyes:
No voy a comentar tu código (¡aun!)por que no lo vi, pero lo mirare con lupa jeje.
Sobre el Dev estoy seguro que hay un millón de compiladores mejor, esta el vim vs emacs de toda la vida y un millón de ellos mas y no creas que no los probé todos jaja.
Pero seguiré con el Dev por que me parece muy muy sencillo y me va bien no me gusta que me de chuletas los programas XD.
Me costo como que 2 días hacer este código, no digo escribiéndole ya que eso me tardo unas 3 o 4 horas XD.
Voy a subir una nueva versión con esos problemas arreglados,  por supuesto tendré tu código en cuenta...si puedo aprender algo seguro lo haré ademas pinta muy bien.
Seguro que podemos afinar ese laberinto y hacerle que encuentre la salida muy rápidamente :D
¡Gracias por comentar, eres grande! ;)
282  Programación / Programación C/C++ / Re: ¿Como debo empezar en C/C++? en: 19 Diciembre 2013, 13:31 pm
Yo empece directo por c++ y no me ha ido mal.
No creo que tengas problema por empezar por c++.
Si pretendes trabajar con programas orientado a objetos creo que deberías iniciar por ahí.
Lo que pasa es que la programación estructurada es mas comprensible.
La pagina antes citada "minidosis" es muy buena.
Creo que si puedes echar un ojo en ambas formas c/c++ no seria mala idea.
No te aferres en uno solo lenguaje.
Escoja uno pero puedes echar el ojo al otro.
El c es bastante bueno también.
Si de verdad quieres aprender creo que ambos vas a tener que dominar ;)
283  Programación / Programación C/C++ / Re: Duda para copiar carpetas en: 18 Diciembre 2013, 14:12 pm
usa el comando system("") de windows.h. :D
Dentro de las "" puedes poner comandos de la consola como copy o yo que se.
Pero solo sirve en gwuinX ya que usa comandos de DOS
copy, xcopy ...
284  Programación / Programación C/C++ / Re: Una IDE decente ubuntu en: 18 Diciembre 2013, 08:43 am
geany te da las "chuletillas"que tanto os gusta XD
Pero si no me equivoco el codeblocks también los da.
si presionas unas cuantas teclas que no se cuales son te salen las chuletas  :laugh:
285  Programación / Programación C/C++ / Re: Ayuda con programa urgente! en: 17 Diciembre 2013, 08:38 am

Hola ivan, hola a todos.
Tengo una duda.
¿Que hace esta linea?
void (*f[])() = {go_arriba, go_izquierda, go_derecha, go_abajo};
Algunas cosas me son algo confusas por la inesperiencia que tengo?
Si no puedes explicarme al menos dime de que se trata y ya lo investigo por mi cuenta :D
Suerte!
286  Programación / Programación C/C++ / Re: Ayuda con programa urgente! en: 16 Diciembre 2013, 20:56 pm
Lo voy echar un ojo ;)
Gracias, a ver si lo achicamos :D
287  Programación / Programación C/C++ / Re: Ayuda con programa urgente! en: 16 Diciembre 2013, 19:38 pm
Puedes ser amable de decir como valido cada caso con 4 for?
Soy todo oídos :D
El algoritmo es la casualidad.
la posición actual de la x mira arriba, abajo, izquierda y derecha buscando el mejor camino.
Primero busca el numero 2 que se supone ser no explorado, el 1 es que ya ha estado ahí y 0 no lo puede atravesar(pared).
Si no hay remedio pasa por el uno otra vez pero prefiere el 2.
Hasta llegar al final que aun no esta echo.
Pretendo mejorarlo pero un novato lo tiene muy limitado como yo.
Lo voy mejorando como para leer el mapa desde un archivo.
No perder mucho tiempo en salir de un camino ya explorado.
A ver si lo paso a SDL que me mola. :D
Si encuentra 2 o mas caminos iguales elige al azar, por eso cuando entra en una calle sin salida se vuelve algo lento, tengo que hacer que al llegar al final recuerde el camino o lo que sea.
288  Programación / Programación C/C++ / Re: Ayuda con programa urgente! en: 16 Diciembre 2013, 16:09 pm
Buenas que tal!
Eh mejorado un poco el código :D
Lo eh echo auto suficiente jaja
Este se busca la salida solo XD
Puedes cambiar el mapa a gusto.
Es algo ineficiente aun, lo estoy puliendo cosillas como cuando encuentra una calle sin salida, le tarda algo en volver al camino, pero lo encuentra.
Aquí le dejo el rollo, jaja me eh reído un montón con el código jaja

Código
  1. #include <iostream>
  2. #include <windows.h>
  3. #include <stdio.h>
  4. #include <time.h>
  5. using namespace std;
  6.  
  7. int rand2 (){
  8. srand(time(NULL));
  9. int n = (0 + rand() % 2);
  10. return n;
  11. }
  12. int rand3 (){
  13. srand(time(NULL));
  14. int n = (0 + rand() % 3);
  15. return n;
  16. }
  17. int rand4 (){
  18. srand(time(NULL));
  19. int n = (0 + rand() % 4);
  20. return n;
  21. }
  22.  
  23. void mostrar(char mapa[29][29]){
  24. system ("cls");
  25.  
  26.     for(int y=0;y<29;y++)
  27.     {
  28.     for(int x=0;x<29;x++)
  29.     {
  30.     printf("%c",mapa[y][x]);
  31.     //Sleep(5);
  32.     }
  33.     printf("\n");
  34.     //Sleep(5);
  35.     }
  36.  
  37. }
  38.  
  39. // GO ONE
  40. void go_arriba( char mapa[29][29], int &x, int &y ){
  41. mapa [y][x]='1';
  42. y--;
  43. mapa [y][x]='X';
  44. }
  45. void go_izquierda( char mapa[29][29], int &x, int &y ){
  46. mapa [y][x]='1';
  47. x--;
  48. mapa [y][x]='X';
  49. }
  50. void go_derecha( char mapa[29][29], int &x, int &y ){
  51. mapa [y][x]='1';
  52. x++;
  53. mapa [y][x]='X';
  54. }  
  55. void go_abajo( char mapa[29][29], int &x, int &y ){
  56. mapa [y][x]='1';
  57. y++;
  58. mapa [y][x]='X';
  59. }
  60. // DECIDE 2
  61. void decide_arriba_izquierda ( char mapa[29][29], int &x, int &y ){
  62. switch ( rand2() ){
  63. case 0:
  64. go_arriba( mapa, x, y );
  65. break;
  66. case 1:
  67. go_izquierda( mapa, x, y );
  68. break;
  69. default:
  70. cout << "error:decide_arriba_izquierda"<<endl;
  71. cin.ignore();
  72. break;
  73. }
  74.  
  75. }
  76. void decide_arriba_derecha ( char mapa[29][29], int &x, int &y ){
  77. switch ( rand2() ){
  78. case 0:
  79. go_arriba ( mapa, x, y );
  80. break;
  81. case 1:
  82. go_derecha ( mapa, x, y );
  83. break;
  84. default:
  85. cout << "error:decide_arriba_derecha"<<endl;
  86. cin.ignore();
  87. break;
  88. }
  89. }
  90. void decide_arriba_abajo ( char mapa[29][29], int &x, int &y ){
  91. switch ( rand2() ){
  92. case 0:
  93. go_arriba( mapa, x, y );
  94. break;
  95. case 1:
  96. go_abajo( mapa, x, y );
  97. break;
  98. default:
  99. cout << "decide_arriba_abajo"<<endl;
  100. cin.ignore();
  101. break;
  102. }
  103. }
  104. void decide_izquierda_derecha ( char mapa[29][29], int &x, int &y ){
  105. switch ( rand2() ){
  106. case 0:
  107. go_izquierda( mapa, x, y );
  108. break;
  109. case 1:
  110. go_derecha( mapa, x, y );
  111. break;
  112. default:
  113. cout << "error:decide_izquierda_derecha"<<endl;
  114. cin.ignore();
  115. break;
  116. }
  117. }
  118. void decide_izquierda_abajo ( char mapa[29][29], int &x, int &y ){
  119. switch ( rand2() ){
  120. case 0:
  121. go_izquierda( mapa, x, y );
  122. break;
  123. case 1:
  124. go_abajo( mapa, x, y );
  125. break;
  126. default:
  127. cout << "error:decide_izquierda_abajo"<<endl;
  128. cin.ignore();
  129. break;
  130. }
  131. }
  132. void decide_derecha_abajo ( char mapa[29][29], int &x, int &y ){
  133. switch ( rand2() ){
  134. case 0:
  135. go_derecha( mapa, x, y );
  136. break;
  137. case 1:
  138. go_abajo( mapa, x, y );
  139. break;
  140. default:
  141. cout << "error:decide_derecha_abajo"<<endl;
  142. cin.ignore();
  143. break;
  144. }
  145. }
  146. // DECIDE 3
  147. void decide_arriba_izquierda_derecha ( char mapa[29][29], int &x, int &y ){
  148. switch ( rand3() ){
  149. case 0:
  150. go_arriba( mapa, x, y );
  151. break;
  152. case 1:
  153. go_izquierda( mapa, x, y );
  154. break;
  155. case 2:
  156. go_derecha( mapa, x, y );
  157. break;
  158. default:
  159. cout << "error:decide_arriba_izquierda_derecha"<<endl;
  160. cin.ignore();
  161. break;
  162. }
  163. }
  164. void decide_arriba_izquierda_abajo ( char mapa[29][29], int &x, int &y ){
  165. switch ( rand3() ){
  166. case 0:
  167. go_arriba( mapa, x, y );
  168. break;
  169. case 1:
  170. go_izquierda( mapa, x, y );
  171. break;
  172. case 2:
  173. go_abajo( mapa, x, y );
  174. break;
  175. default:
  176. cout << "error:decide_arriba_izquierda_abajo"<<endl;
  177. cin.ignore();
  178. break;
  179. }  
  180. }
  181. void decide_arriba_derecha_abajo ( char mapa[29][29], int &x, int &y ){
  182. switch ( rand3() ){
  183. case 0:
  184. go_arriba( mapa, x, y );
  185. break;
  186. case 1:
  187. go_derecha( mapa, x, y );
  188. break;
  189. case 2:
  190. go_abajo( mapa, x, y );
  191. break;
  192. default:
  193. cout << "error:decide_arriba_derecha_abajo"<<endl;
  194. cin.ignore();
  195. break;
  196. }  
  197. }
  198. void decide_izquierda_derecha_abajo ( char mapa[29][29], int &x, int &y ){
  199. switch ( rand3() ){
  200. case 0:
  201. go_izquierda( mapa, x, y );
  202. break;
  203. case 1:
  204. go_derecha( mapa, x, y );
  205. break;
  206. case 2:
  207. go_abajo( mapa, x, y );
  208. break;
  209. default:
  210. cout << "error:decide_izquierda_derecha_abajo"<<endl;
  211. cin.ignore();
  212. break;
  213. }  
  214. }
  215. // DECIDE 4
  216. void decide_arriba_izquierda_derecha_abajo ( char mapa[29][29], int &x, int &y ){
  217. switch ( rand4() ){
  218. case 0:
  219. go_arriba( mapa, x, y );
  220. break;
  221. case 1:
  222. go_izquierda( mapa, x, y );
  223. break;
  224. case 2:
  225. go_derecha( mapa, x, y );
  226. break;
  227. case 3:
  228. go_abajo( mapa, x, y );
  229. break;
  230. default:
  231. cout << "error:decide_arriba_izquierda_derecha_abajo"<<endl;
  232. cin.ignore();
  233. break;
  234. }  
  235. }
  236. // ESPECIAL CASES
  237.  
  238. //MAIN_MAIN_MAIN_MAIN_MAIN_MAIN_MAIN_MAIN_MAIN_MAIN_MAIN_MAIN_MAIN_MAIN_MAINMAIN_MAIN_MAIN
  239. int main (){
  240.  
  241.  
  242.  
  243. //MAPA DE TIPO CHAR, MAS ADELANTE HACEMOS UN CAST PARA INT
  244. char mapa[29][29]={
  245.  
  246. "000000000000000000000000000",
  247. "0X0222222222222222222222220",
  248. "020200000000000000000000020",
  249. "020222222222222200000000020",
  250. "020200000000000000000000020",
  251. "020222222222222200022222220",
  252. "020000000000000200020000020",
  253. "020222222222200200000000020",
  254. "020200000000200222222222020",
  255. "020222222200200000000002020",
  256. "020000000200222222222222020",
  257. "022222220200000000000000020",
  258. "000000020200222222222222220",
  259. "000000022200200000000000000",
  260. "000000000000200222222222220",
  261. "022222222222200200000000020",
  262. "020000000000000222222202020",
  263. "020000000000000200000202020",
  264. "022222222222222200000202020",
  265. "000000000000000000000202220",
  266. "022222222222222222222200000",
  267. "020000000000000000000000000",
  268. "02222222222222222222222FIN0",
  269. "000000000000000000000000000"
  270.  
  271. };
  272.  
  273. //VARIABLES LOCALES
  274. int n;
  275. cout << "velocidad de busqueda?" << endl;
  276. cin >> n;
  277.  
  278. //POSICION INICIAL (CORRDENADAS)
  279. int x = 1;
  280. int y = 1;
  281.  
  282. //CONVERTIMOS EN INT LOS POCIBLES CAMINOS A TOMAR
  283. int arriba = (int (mapa [ y - 1] [ x ])-48);
  284. int izquierda = (int (mapa [ y ] [ x -1 ])-48);
  285. int derecha = (int (mapa [ y ] [ x + 1 ])-48);
  286. int abajo = (int (mapa [ y + 1] [ x ])-48);
  287.  
  288. //CONDICION DEL BUCLE PRINCIPAL: SI NO SE ENCUENTRA EL FIN DEL MAPA SIEMPRE SERA FALSO.
  289. bool fin = false;
  290.  
  291. //BUCLE PRINCIPAL: COMPRUEBA QUE NO ENCONTREMOS LA SALIDA.
  292. while ( !fin ){
  293.  
  294. //Valores de los pocibles caminos
  295. arriba = (int (mapa [ y - 1] [ x ]-48));
  296. izquierda = (int (mapa [ y ] [ x -1 ]-48));
  297. derecha = (int (mapa [ y ] [ x + 1 ]-48));
  298. abajo = (int (mapa [ y + 1] [ x ]-48));
  299.  
  300. //CASOS
  301. if ( arriba == 0 && izquierda == 0 && derecha == 0 && abajo == 0 ){//(0,0,0,0)*
  302. //NO SE elige NADA
  303. }
  304. if ( arriba == 0 && izquierda == 0 && derecha == 0 && abajo == 1 ){//(0,0,0,1)*
  305. //abajo
  306. go_abajo(mapa, x, y);
  307. }
  308. if ( arriba == 0 && izquierda == 0 && derecha == 0 && abajo == 2 ){//(0,0,0,2)*
  309. //abajo
  310. go_abajo(mapa, x, y);
  311. }
  312. if ( arriba == 0 && izquierda == 0 && derecha == 1 && abajo == 0 ) {//(0,0,1,0)*
  313. //derecha
  314. go_derecha(mapa, x, y);
  315. }
  316. if ( arriba == 0 && izquierda == 0 && derecha == 1 && abajo == 1 ){//(0,0,1,1)*
  317. //derecha || abajo
  318. decide_derecha_abajo ( mapa, x, y );
  319. }
  320. if ( arriba == 0 && izquierda == 0 && derecha == 1 && abajo == 2 ){//(0,0,1,2)*
  321. //abajo
  322. go_abajo(mapa, x, y);
  323. }
  324. if ( arriba == 0 && izquierda == 0 && derecha == 2 && abajo == 0 ){//(0,0,2,0)*
  325. //derecha
  326. go_derecha(mapa, x, y);
  327. }
  328. if ( arriba == 0 && izquierda == 0 && derecha == 2 && abajo == 1 ){//(0,0,2,1)*
  329. //derecha
  330. go_derecha(mapa, x, y);
  331. }
  332. if ( arriba == 0 && izquierda == 0 && derecha == 2 && abajo == 2 ){//(0,0,2,2)*
  333. //derecha || abajo
  334. decide_derecha_abajo ( mapa, x, y );
  335. }
  336. if ( arriba == 0 && izquierda == 1 && derecha == 0 && abajo == 0 ){//(0,1,0,0)*
  337. //izquierda
  338. go_izquierda(mapa, x, y);
  339. }
  340. if ( arriba == 0 && izquierda == 1 && derecha == 0 && abajo == 1 ){//(0,1,0,1)*
  341. //izquierda || abajo
  342. decide_izquierda_abajo ( mapa, x, y );
  343. }
  344. if ( arriba == 0 && izquierda == 1 && derecha == 0 && abajo == 2 ){//(0,1,0,2)*
  345. //abajo
  346. go_abajo(mapa, x, y);
  347. }
  348. if ( arriba == 0 && izquierda == 1 && derecha == 1 && abajo == 0 ){//(0,1,1,0)*
  349. //izquierda || derecha
  350. decide_izquierda_derecha ( mapa, x, y );
  351. }
  352. if ( arriba == 0 && izquierda == 1 && derecha == 1 && abajo == 1 ){//(0,1,1,1)*
  353. //izquierda || derecha || abajo
  354. decide_izquierda_derecha_abajo ( mapa, x, y );
  355. }
  356. if ( arriba == 0 && izquierda == 1 && derecha == 1 && abajo == 2 ){//(0,1,1,2)*
  357. //abajo
  358. go_abajo(mapa, x, y);
  359. }
  360. if ( arriba == 0 && izquierda == 1 && derecha == 2 && abajo == 0 ){//(0,1,2,0)*
  361. //derecha
  362. go_derecha(mapa, x, y);
  363. }
  364. if ( arriba == 0 && izquierda == 1 && derecha == 2 && abajo == 1 ){//(0,1,2,1)*
  365. //derecha
  366. go_derecha(mapa, x, y);
  367. }
  368. if ( arriba == 0 && izquierda == 1 && derecha == 2 && abajo == 2 ){//(0,1,2,2)*
  369. //derecha || abajo
  370. decide_derecha_abajo ( mapa, x, y );
  371. }
  372. if ( arriba == 0 && izquierda == 2 && derecha == 0 && abajo == 0 ){//(0,2,0,0)*
  373. //izquierda
  374. go_izquierda(mapa, x, y);
  375. }
  376. if ( arriba == 0 && izquierda == 2 && derecha == 0 && abajo == 1 ){//(0,2,0,1)*
  377. //izquierda
  378. go_izquierda(mapa, x, y);
  379. }
  380. if ( arriba == 0 && izquierda == 2 && derecha == 0 && abajo == 2 ){//(0,2,0,2)*
  381. //izquierda || abajo
  382. decide_izquierda_abajo ( mapa, x, y );
  383. }
  384. if ( arriba == 0 && izquierda == 2 && derecha == 1 && abajo == 0 ){//(0,2,1,0)*
  385. //izquierda
  386. go_izquierda(mapa, x, y);
  387. }
  388. if ( arriba == 0 && izquierda == 2 && derecha == 1 && abajo == 1 ){//(0,2,1,1)*
  389. //izquierda
  390. go_izquierda(mapa, x, y);
  391. }
  392. if ( arriba == 0 && izquierda == 2 && derecha == 1 && abajo == 2 ){//(0,2,1,2)*
  393. //izquierda || abajo
  394. decide_izquierda_abajo ( mapa, x, y );
  395. }
  396. if ( arriba == 0 && izquierda == 2 && derecha == 2 && abajo == 0 ){//(0,2,2,0)*
  397. //izquierda || derecha
  398. decide_izquierda_derecha ( mapa, x, y );
  399. }
  400. if ( arriba == 0 && izquierda == 2 && derecha == 2 && abajo == 1 ){//(0,2,2,1)*
  401. //izquierda || derecha
  402. decide_izquierda_derecha ( mapa, x, y );
  403. }
  404. if ( arriba == 0 && izquierda == 2 && derecha == 2 && abajo == 2 ){//(0,2,2,2)*
  405. //izquierda || derecha || abajo
  406. decide_izquierda_derecha_abajo ( mapa, x, y );
  407. }
  408. if ( arriba == 1 && izquierda == 0 && derecha == 0 && abajo == 0 ){//(1,0,0,0)*
  409. //arriba
  410. go_arriba(mapa, x, y);
  411. }
  412. if ( arriba == 1 && izquierda == 0 && derecha == 0 && abajo == 1 ){//(1,0,0,1)*ESPECIAL
  413. //arriba || abajo
  414. decide_arriba_abajo ( mapa, x, y );
  415. }
  416. if ( arriba == 1 && izquierda == 0 && derecha == 0 && abajo == 2 ){//(1,0,0,2)*
  417. //abajo
  418. go_abajo(mapa, x, y);
  419. }
  420. if ( arriba == 1 && izquierda == 0 && derecha == 1 && abajo == 0 ){//(1,0,1,0)*
  421. //arriba || derecha
  422. decide_arriba_derecha ( mapa, x, y );
  423. }
  424. if ( arriba == 1 && izquierda == 0 && derecha == 1 && abajo == 1 ){//(1,0,1,1)*
  425. //arriba || derecha || abajo
  426. decide_arriba_derecha_abajo ( mapa, x, y );
  427. }
  428. if ( arriba == 1 && izquierda == 0 && derecha == 1 && abajo == 2 ){//(1,0,1,2)*
  429. //abajo
  430. go_abajo(mapa, x, y);
  431. }
  432. if ( arriba == 1 && izquierda == 0 && derecha == 2 && abajo == 0 ){//(1,0,2,0)*
  433. //derecha
  434. go_derecha(mapa, x, y);
  435. }
  436. if ( arriba == 1 && izquierda == 0 && derecha == 2 && abajo == 1 ){//(1,0,2,1)*
  437. //derecha
  438. go_derecha(mapa, x, y);
  439. }
  440. if ( arriba == 1 && izquierda == 0 && derecha == 2 && abajo == 2 ){//(1,0,2,2)*
  441. //derecha || abajo
  442. decide_derecha_abajo ( mapa, x, y );
  443. }
  444. if ( arriba == 1 && izquierda == 1 && derecha == 0 && abajo == 0 ){//(1,1,0,0)*
  445. //arriba || izquierda
  446. decide_arriba_izquierda ( mapa, x, y );
  447. }
  448. if ( arriba == 1 && izquierda == 1 && derecha == 0 && abajo == 1 ){//(1,1,0,1)*
  449. //arriba || izquierda || abajo
  450. decide_arriba_izquierda_abajo ( mapa, x, y );
  451. }
  452. if ( arriba == 1 && izquierda == 1 && derecha == 0 && abajo == 2 ){//(1,1,0,2)*
  453. //abajo
  454. go_abajo(mapa, x, y);
  455. }
  456. if ( arriba == 1 && izquierda == 1 && derecha == 1 && abajo == 0 ){//(1,1,1,0)*
  457. //arriba || izquierda || derecha
  458. }
  459. if ( arriba == 1 && izquierda == 1 && derecha == 1 && abajo == 1 ){//(1,1,1,1)
  460. //arriba || izquierda || derecha || abajo
  461. decide_arriba_izquierda_derecha_abajo ( mapa, x, y );
  462. }
  463. if ( arriba == 1 && izquierda == 1 && derecha == 1 && abajo == 2 ){//(1,1,1,2)*
  464. //abajo
  465. go_abajo(mapa, x, y);
  466. }
  467. if ( arriba == 1 && izquierda == 1 && derecha == 2 && abajo == 0 ){//(1,1,2,0)*
  468. //derecha
  469. go_derecha(mapa, x, y);
  470. }
  471. if ( arriba == 1 && izquierda == 1 && derecha == 2 && abajo == 1 ){//(1,1,2,1)*
  472. //derecha
  473. go_derecha(mapa, x, y);
  474. }
  475. if ( arriba == 1 && izquierda == 1 && derecha == 2 && abajo == 2 ){//(1,1,2,2)*
  476. //derecha || abajo
  477. decide_derecha_abajo ( mapa, x, y );
  478. }
  479. if ( arriba == 1 && izquierda == 2 && derecha == 0 && abajo == 0 ){//(1,2,0,0)*
  480. //izquierda
  481. go_izquierda(mapa, x, y);
  482. }
  483. if ( arriba == 1 && izquierda == 2 && derecha == 0 && abajo == 1 ){//(1,2,0,1)*
  484. //izquierda
  485. go_izquierda(mapa, x, y);
  486. }
  487. if ( arriba == 1 && izquierda == 2 && derecha == 0 && abajo == 2 ){//(1,2,0,2)*
  488. //izquierda || abajo
  489. decide_izquierda_abajo ( mapa, x, y );
  490. }
  491. if ( arriba == 1 && izquierda == 2 && derecha == 1 && abajo == 0 ){//(1,2,1,0)*
  492. //izquierda
  493. go_izquierda(mapa, x, y);
  494. }
  495. if ( arriba == 1 && izquierda == 2 && derecha == 1 && abajo == 1 ){//(1,2,1,1)*
  496. //izquierda
  497. go_izquierda(mapa, x, y);
  498. }
  499. if ( arriba == 1 && izquierda == 2 && derecha == 1 && abajo == 2 ){//(1,2,1,2)*
  500. //izquierda || abajo
  501. decide_izquierda_abajo ( mapa, x, y );
  502. }
  503. if ( arriba == 1 && izquierda == 2 && derecha == 2 && abajo == 0 ){//(1,2,2,0)*
  504. //izquierda || derecha
  505. decide_izquierda_derecha ( mapa, x, y );
  506. }
  507. if ( arriba == 1 && izquierda == 2 && derecha == 2 && abajo == 1 ){//(1,2,2,1)*
  508. //izquierda || derecha
  509. decide_izquierda_derecha ( mapa, x, y );
  510. }
  511. if ( arriba == 1 && izquierda == 2 && derecha == 2 && abajo == 2 ){//(1,2,2,2)
  512. //izquierda || derecha || abajo
  513. decide_izquierda_derecha_abajo ( mapa, x, y );
  514. }
  515. if ( arriba == 2 && izquierda == 0 && derecha == 0 && abajo == 0 ){//(2,0,0,0)
  516. //arriba
  517. go_arriba(mapa, x, y);
  518. }
  519. if ( arriba == 2 && izquierda == 0 && derecha == 0 && abajo == 1 ){//(2,0,0,1)
  520. //arriba
  521. go_arriba(mapa, x, y);
  522. }
  523. if ( arriba == 2 && izquierda == 0 && derecha == 0 && abajo == 2 ){//(2,0,0,2)
  524. //arriba || abajo
  525. decide_arriba_abajo ( mapa, x, y );
  526. }
  527. if ( arriba == 2 && izquierda == 0 && derecha == 1 && abajo == 0 ){//(2,0,1,0)
  528. //arriba
  529. go_arriba(mapa, x, y);
  530. }
  531. if ( arriba == 2 && izquierda == 0 && derecha == 1 && abajo == 1 ){//(2,0,1,1)
  532. //arriba
  533. go_arriba(mapa, x, y);
  534. }
  535. if ( arriba == 2 && izquierda == 0 && derecha == 1 && abajo == 2 ){//(2,0,1,2)
  536. //arriba || abajo
  537. decide_arriba_abajo ( mapa, x, y );
  538. }
  539. if ( arriba == 2 && izquierda == 0 && derecha == 2 && abajo == 0 ){//(2,0,2,0)
  540. //arriba || derecha
  541. decide_arriba_derecha ( mapa, x, y );
  542. }
  543. if ( arriba == 2 && izquierda == 0 && derecha == 2 && abajo == 1 ){//(2,0,2,1)
  544. //arriba || derecha
  545. decide_arriba_derecha ( mapa, x, y );
  546. }
  547. if ( arriba == 2 && izquierda == 0 && derecha == 2 && abajo == 2 ){//(2,0,2,2)
  548. //arriba || derecha || abajo
  549. decide_arriba_derecha_abajo ( mapa, x, y );
  550. }
  551. if ( arriba == 2 && izquierda == 1 && derecha == 0 && abajo == 0 ){//(2,1,0,0)
  552. //arriba
  553. go_arriba(mapa, x, y);
  554. }
  555. if ( arriba == 2 && izquierda == 1 && derecha == 0 && abajo == 1 ){//(2,1,0,1)
  556. //arriba
  557. go_arriba(mapa, x, y);
  558. }
  559. if ( arriba == 2 && izquierda == 1 && derecha == 0 && abajo == 2 ){//(2,1,0,2)
  560. //arriba || abajo
  561. decide_arriba_abajo ( mapa, x, y );
  562. }
  563. if ( arriba == 2 && izquierda == 1 && derecha == 1 && abajo == 0 ){//(2,1,1,0)
  564. //arriba
  565. go_arriba(mapa, x, y);
  566. }
  567. if ( arriba == 2 && izquierda == 1 && derecha == 1 && abajo == 1 ){//(2,1,1,1)
  568. //arriba
  569. go_arriba(mapa, x, y);
  570. }
  571. if ( arriba == 2 && izquierda == 1 && derecha == 1 && abajo == 2 ){//(2,1,1,2)
  572. //arriba || abajo
  573. decide_arriba_abajo ( mapa, x, y );
  574. }
  575. if ( arriba == 2 && izquierda == 1 && derecha == 2 && abajo == 0 ){//(2,1,2,0)
  576. //arriba || derecha
  577. decide_arriba_derecha ( mapa, x, y );
  578. }
  579. if ( arriba == 2 && izquierda == 1 && derecha == 2 && abajo == 1 ){//(2,1,2,1)
  580. //arriba || derecha
  581. decide_arriba_derecha ( mapa, x, y );
  582. }
  583. if ( arriba == 2 && izquierda == 1 && derecha == 2 && abajo == 2 ){//(2,1,2,2)
  584. //arriba || derecha || abajo
  585. decide_arriba_derecha_abajo ( mapa, x, y );
  586. }
  587. if ( arriba == 2 && izquierda == 2 && derecha == 0 && abajo == 0 ){//(2,2,0,0)
  588. //arriba || izquierda
  589. decide_arriba_izquierda ( mapa, x, y );
  590. }
  591. if ( arriba == 2 && izquierda == 2 && derecha == 0 && abajo == 1 ){//(2,2,0,1)
  592. //arriba || izquierda
  593. decide_arriba_izquierda ( mapa, x, y );
  594. }
  595. if ( arriba == 2 && izquierda == 2 && derecha == 0 && abajo == 0 ){//(2,2,0,0)
  596. //arriba || izquierda
  597. decide_arriba_izquierda ( mapa, x, y );
  598. }
  599. if ( arriba == 2 && izquierda == 2 && derecha == 0 && abajo == 2 ){//(2,2,0,2)
  600. //arriba || izquierda || abajo
  601. decide_arriba_izquierda_abajo ( mapa, x, y );
  602. }
  603. if ( arriba == 2 && izquierda == 2 && derecha == 1 && abajo == 0 ){//(2,2,1,0)
  604. //arriba || izquierda
  605. decide_arriba_izquierda ( mapa, x, y );
  606. }
  607. if ( arriba == 2 && izquierda == 2 && derecha == 1 && abajo == 1 ){//(2,2,1,1)
  608. //arriba || izquierda
  609. decide_arriba_izquierda ( mapa, x, y );
  610. }
  611. if ( arriba == 2 && izquierda == 2 && derecha == 1 && abajo == 2 ){//(2,2,1,2)
  612. //arriba || izquierda || abajo
  613. decide_arriba_izquierda_abajo ( mapa, x, y );
  614. }
  615. if ( arriba == 2 && izquierda == 2 && derecha == 2 && abajo == 0 ){//(2,2,2,0)
  616. //arriba || izquierda || derecha
  617. decide_arriba_izquierda_derecha ( mapa, x, y );
  618. }
  619. if ( arriba == 2 && izquierda == 2 && derecha == 2 && abajo == 1 ){//(2,2,2,1)
  620. //arriba || izquierda || derecha
  621. decide_arriba_izquierda_derecha ( mapa, x, y );
  622. }
  623. if ( arriba == 2 && izquierda == 2 && derecha == 2 && abajo == 2 ){//(2,2,2,2)
  624. //arriba || izquierda || derecha || abajo
  625. decide_arriba_izquierda_derecha_abajo ( mapa, x, y );
  626. }
  627.  
  628.  
  629.  
  630.  
  631. // ON SCREEN PRINT
  632. mostrar (mapa);
  633. Sleep(n);
  634. //system("pause");
  635. }
  636.  
  637.  
  638. return 0;
  639. }
  640.  

Esta echo en dev cpp orwell
Pronto subo la 2.0 o mejor lo mejoren vosotros si quieren  ;-)

Se debe de poner 0 en los bordes o puede ser bug :D
La X va buscando el 2, si no hay remedio busca 1 y el 0 es como pared.
Debe tener 0 en todo el lado externo.
Tomar el 0 como pared y rodear todo el mapa.
289  Programación / Programación C/C++ / Re: [Pregunta] Mejor forma de hacer aplicaciones gráficas en: 16 Diciembre 2013, 16:00 pm
No tengo ni idea sobre API pero a lo mejor te interesa esto :D
http://www.genbetadev.com/cc/un-ano-mas-tarde-qt-5-2-cumple-con-soporte-completo-para-android-y-ios
290  Foros Generales / Noticias / Re: Cuatro preguntas que hacernos antes de regalar un televisor en Navidad en: 12 Diciembre 2013, 02:25 am
Hace 3 años que no veo la tele  :laugh:
Páginas: 1 ... 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 [29] 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 ... 46
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines