Como oculto una matriz?

Maaarc

Buenas, tengo de deberes hacer el juego "hundir la flota" algo mítico por lo que he cotilleado por internet, pero hay una cosa que no la entiendo (y no he encontrado la solución al menos una que funcione)

El caso esta en que yo tengo varias dudas:

  1. El random no me funciona. (Uso la conio.h) Siempre me pone los barcos en el mismo sitio... :/

  2. No se como ocultar una matriz. Vale yo hago la matriz de 5x5 y cuando pongo los numeros que representan barcos me encuentro con que me sale la matriz "resuelta" no se como darle un numero pero que me salga en printf vacia, solo se me ocurre pintarla de negro como el fondo con un textcolor(0); pero lo ve muy chapuza ja que a la que "encontrara" los barcos al guiar los subindices no pasaría nada.

    Por ahora solo tengo dibujado el tablero, os lo pongo por si lo queréis ver pero vamos, esta en una prepreprebeta.

/////////////////////////////////////
//                                 //
// Marc González Planes | 1WOPE    //
//                                 //
/////////////////////////////////////

#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
//PROBLEMAS A PREGUNTAR
//Com evitar que el random sigui "constant" 
// 0=Aigua 1=Vaixell 2=V.Tocat ¿? 'h' 
//Com "oculto" una matriu. ¿String?

#define num_filas 5
#define num_columnas 5

int i,j;//,matriz[num_filas] [num_columnas];// i son files,, j son columnes
int matriz [num_filas] [num_columnas];



int main ()
{  
int h=0; int lletra='A';
gotoxy(18,7);//Centra el text while(lletra<'F') //Coloca les lletres { printf("%-3c",lletra); lletra++; } printf("\n\n"); for (i=0; i<num_filas ; i++) { for (j=0; j<num_columnas ; j++) //Asigno els numeros en la matriu { h=rand()%2; //Random del 0-1 0=Aigua 1=Vaixell matriz[i][j]=h; // Introduex-ho el 0 a TOTS els subindex <- Aqui vindrá la funció *crec* } } for (i=0; i<num_filas ; i++) // Ara repeteixo els bucles { printf("Columna %d\t",i); // anteriors, però per imprimir for (j=0; j<num_columnas ; j++) // el valor de cada cel.la { printf ("%2d ",matriz[i][j]); // fixat que al acabar la fila } printf ("\n\n"); } getchar(); getchar(); }
elkaoD

Para que el random sea random tienes que inicializar la semilla con srand.

No entiendo bien lo de ocultar la matriz...

Pon las constantes EN_MAYUSCULAS.

1 respuesta
Maaarc

#2 Si en vez de rand pongo srand me da error y no compila :S

Las constantes las paso en un momento, así se lee mejor supongo y lo de la matriz me refiero a esto:

             Y que la real no la pueda ver, pero el programa la use para cotejar                         
                                       donde se dispara y en relación si hay un barco o agua pinte la  

casilla de algun color y demás historias, lo que no se como hacerlo, a no ser que sean con 2 matrices :S

[][][][][] [x][a][x][x][x]
[][][][][] [x][a][a][a][a]
[][][][][] [a][a][x][x][a]
[][][][][] [a][a][a][a][a]
Inicial 'Real'

1 respuesta
nakaz

Para lo del random tienes que inicializar con srand((unsigned)(time(NULL))); y luego ya te funcionara el rand.
Lo de la matriz no lo entiendo xDD

elkaoD

#3 si quieres que la matriz no se vea, no tienes que ocultarla. Lo que tienes que hacer es no mostrarla :S

Vaya lógica...

Lo del srand, pues a lo mejor deberías mirar la documentación de qué hace y para qué funciona antes que meterlo a capón xD

1 1 respuesta
Maaarc

#5 Lol, cierto xD.

Pero lo que me da "desconfianza" es que luego no se me machaque la dirección en la que guardo la matriz invisible :/

Pero da igual, voy a seguir dandole vueltas al tema y esta noche actualizo con los avances, gracias!

Usuarios habituales

  • Maaarc
  • elkaoD
  • nakaz