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

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


  Mostrar Temas
Páginas: [1]
1  Programación / Programación C/C++ / Duda Programa Sencillo (simulación) en: 31 Marzo 2015, 10:26 am
Hola, muy buenas a todos. Este es mi primer post en este foro. Resulta que he empezado a programa C hace poco y estoy en esa fase en la que uno mira con incredulidad todo lo que hace preguntándose ¿no habrá un error, lo habré hecho bien?
Pues bien, he hecho un programa para el colegio   http://www.danipartal.net/pdf/2bachTema99Hoja2.pdf y resulta que, aunque no hay errores de sintaxis no hace lo que quiero que haga, que es básicamente lo que podéis leer ahí. Agradecería mucho que aquel que tenga un poco de tiempo libre mirara el código que he hecho y me dijera, con claridad, los fallos. Muchas gracias.
PD: no sé si he cometido alguna falta contra las normas del foro, ya que soy nuevo y no he encontrado un listado de normas o algo así que diga cómo publicar.

Código:
Código
  1. #include<iostream>
  2. #include <windows.h>
  3. #include <conio.h>
  4. //para la función del azar
  5. #include <cstdlib>
  6. //para el tiempo
  7. #include <ctime>
  8.  
  9. // número de casillas [ancho] [alto]
  10. int celda [19][19];
  11.  
  12. using namespace std;
  13.  
  14. // esta función coloca el cursor de la consola de comandos en int x e int y
  15. void gotoxy (int x, int y) {
  16.  
  17. //obtiene el handle output de la consola de comandos
  18.  
  19. HANDLE hCon;
  20. hCon = GetStdHandle (STD_OUTPUT_HANDLE);
  21.  
  22. //coloca el cursor en la posición querida
  23.  
  24. COORD dwPos;
  25. dwPos.X = x;
  26. dwPos.Y = y;
  27.  
  28. SetConsoleCursorPosition (hCon, dwPos);
  29.  
  30. }
  31.  
  32.  
  33. //esta función asigna los árboles o a su ausencia en función de int probabilidad
  34. void poner_arboles (float probabilidad) {
  35.  
  36.  
  37. for (int x = 0; x <= 19; x ++ ) {
  38.  
  39. for (int y = 0; y <= 19; y ++) {
  40.  
  41.  
  42. //usar la probabilidad para ver si pinta un árbol o no
  43. srand( time( 0 ) );
  44.  
  45.    int numero;
  46. numero = rand() % 10 + 1;
  47.  
  48. if (numero <= (probabilidad*10)) {gotoxy (x,y); cout << ""; celda [x][y] = 1; }
  49.  
  50. else celda [x][y]=0;
  51. }
  52.  
  53. }
  54.  
  55. }
  56.  
  57.  
  58.  
  59.  
  60.  
  61. int main (int argc, char *argv[]) {
  62.  
  63. poner_arboles (0.4);
  64.  
  65. int numero_x;
  66. int numero_y;
  67.  
  68. int bucle_infinito = 1;
  69. while (bucle_infinito == 1 ) {
  70.  
  71. //semilla aleatoria para probabilidad
  72. srand( time( 0 ) );
  73. numero_x = rand() % 20;
  74.  
  75. srand( time( 0 ) );
  76. numero_y = rand() % 20;
  77.  
  78. if (celda [numero_x] [numero_y] == 1) break;
  79. }
  80.  
  81. int fuegos;
  82.  
  83. do {
  84.  
  85. //"fuegos" registra si ha habido nuevos incendios, si no, se para el programa
  86. fuegos = 0;
  87.  
  88. for (int y = 0; y <= 19; y++) {
  89. for ( int x = 0; x <= 19; x++) {  
  90.  
  91. // ver si las casillas de al lado de los árboles están incendiadas
  92. // y si lo están prender fuego al árbol
  93.  
  94. if (celda[x][y] == 1) {
  95. if (celda [x-1][y-1] == 2 || celda [x-1][y] == 2 ||
  96. celda [x-1][y+1] == 2 || celda [x][y-1] == 2 ||
  97. celda [x][y+1] == 2 || celda [x+1][y-1] == 2 ||
  98. celda [x+1][y] == 2 || celda [x+1][y+1] == 2)    
  99.  
  100. {celda [x][y] = 2; gotoxy (x,y); cout << "¤"; fuegos ++;}
  101.  
  102.     }
  103.  }
  104.  
  105.  
  106.  
  107. }
  108.  
  109.   Sleep (1000);
  110.  
  111. }  while (fuegos > 0);  
  112.  
  113. return 0;
  114. }

Mod: Tema modificado, los códigos deben ir entre etiquetas GeSHi
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines