Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - MAFUS

#551
Hazlo como cadena en vez de complicarte con una array. Si el fuente no lo has escrito tú, no es tuyo, tal vez no tenga o no sea eso el dominio; puede que sea la clave o puede que esté cifrado. Sin ver el fuente no se puede decir.
#552
Ya que la variable num no forman parte de la función, por el comportamiento son globales, pues sí, mantendrán los datos que la función no modifica.

Ahora, cuando arregles eso, me gustaría ver unos ejemplos con denominadores a 0.
#553
Puedes poner un ejemplo del caso dónde solo se escribe el numerador?
#554
scanf es un maldito y si le formateas una entrada espera que exactamente sea eso, no puedes saltarte nada, sino hará cosas muy raras.

Tú única solución es leer la entrada como si fuera una cadena y descifrarla tu a mano, si quieres que el programa se comporte como dices, claro.
#555
Siguiendo tus premisas he hecho lo siguiente. Decir que no está probado y puede contener fallos.
Código (c++) [Seleccionar]
void FncOpenPoint(Tablero Partida, int fil, int col) {
   // Configuro los límites de búsqueda
   int inicio_fil = fil==0? 0 : -1; // Si ya estoy arriba no debo mirar más arriba
   int fin_fil = fil==FIL-1? 0 : 1; // Si ya estoy abajo no debo mirar más abajo
   int inicio_col = col==0? 0 : -1; // Si ya estoy a la izquierda no debo mirar más a la izquierda
   int fin_col = col==COL-1? 0 : 1; // Si ya estoy a la derecha no debo mirar más a la derecha
   int i, j;
   
   if( !Partida[fil][col].visible &&
       !Partida[fil][col].mine &&
       !Partida[fil][col].num &&
       !Partida[fil][col].flag ) {
       Partida[fil][col].visible = true;
       
       for(i = inicio_fil; i <= fin_fil; ++i) {
           for(j = inicio_col; j <= fin_col; ++j) {
               if(i==0 && j==0) continue; // Para no volver a caer en la casilla actual. Aunque es redundante no gasto tantos ciclos de reloj como si hay que realizar una llamada a la función en la misma coordenada y esperar a que esta se detenga por si sola.
               FncOpenPoint(Partida, fil+i, col+j);
           }
       }
   }
}
#556
Con Android NDK. No sé cómo funciona, no me lo he mirado nunca, pero es para hacer apps con C++.
#557
Creo que te piden que hagas arrays dinámicos y estructuras. No creo, por el enunciado, que debas hacer decenas de variables diferentes.
#558
Cosillas:
Toda la parte del else te sobra ya que
if(!Partida[fil][col].mine)
es lo mismo que
if(Partida[fil][col].mine!=true)

El primer código está mal ideado ya que visible valdrá true y no podrá entrar en el segundo if:
Partida[fil][col].visible=true;
if(!Partida[fil][col].mine)
  if(Partida[fil][col].num==0&&!Partida[fil][col].flag&&!Partida[fil][col].visible)


También veo que la función no está terminada pues buscas más allá de los límites de la tabla, tal vez te pierdes por allí. Como depuración haz que la función te diga en qué casilla se encuentra.
#559
Vale, ya entiendo. Verás: tal y como está no se detendrá nunca porque visible no lo tienes en cuenta a la hora de parar. Imagina que tienes dos casillas contiguas que no tienen nada. El jugador marca la de la izquierda y la hace visible y el código pasa después a la de la derecha. El código la hace visible y en algún momento volverá a mirar la de la izquierda. Como no tiene condición de parada el que una casilla sea visible este bucle se repetira (izquierda, derecha, izquierda, derecha, ...) hasta que la pila se llene de llamadas y el programa se detenga.
#560
A primera vista veo que lees fuera de los límites de la tabla. Aunque estés en la fila 0 intentas leer lo que hay por encima de ella. Pasa algo parecido para la última porque intentas leer lo que hay por debajo.