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

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Dibujar e inicializar tablero de posibles distintos tamaños en C [?]
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 3 4 5 Ir Abajo Respuesta Imprimir
Autor Tema: Dibujar e inicializar tablero de posibles distintos tamaños en C [?]  (Leído 13,790 veces)
dragonlady

Desconectado Desconectado

Mensajes: 37



Ver Perfil
Dibujar e inicializar tablero de posibles distintos tamaños en C [?]
« en: 30 Mayo 2015, 14:48 pm »

Buenos días gente, tengo un juego para hacer en C que me está dando dolor de cabeza y una de las cosas que más me complica es que tengo que dibujar un tablero, pero que puede ser solamente de tamaño (cuadrado) 6, 8, 10, 14 o 18 (tamaño que el jugador elige). Y la verdad que no se como hacer eso.

Había intentando hacer 5 tableros distintos, pero me enlió más, entonces me gustaría saber si alguien tiene una manera de que se pueda hacer esto.

Solo puedo usar C, nada de C++ ni funciones muy avanzadas.

Si alguien sabe como, les agradezco la ayuda desde ya,

Gracias!!


« Última modificación: 30 Mayo 2015, 14:53 pm por dragonlady » En línea

0xFer


Desconectado Desconectado

Mensajes: 400



Ver Perfil
Re: Dibujar e inicializar tablero de posibles distintos tamaños en C [?]
« Respuesta #1 en: 30 Mayo 2015, 22:03 pm »

Pide el tamaño del tablero:

Código
  1.    int tam = 1;
  2.  
  3.    scanf("%i",tam);
  4.  

Luego creas el tablero:

Código
  1. int tablero[tam][tam];

Luego tienes que usar for para modificar o imprimir los valores del tablero

No se si es lo que querias.

Un saludo


En línea

Código
  1. int getRandomNumber(){
  2.    return 4; //chosen by fair dice roll
  3.              //guaranteed to be random
  4. }
dragonlady

Desconectado Desconectado

Mensajes: 37



Ver Perfil
Re: Dibujar e inicializar tablero de posibles distintos tamaños en C [?]
« Respuesta #2 en: 31 Mayo 2015, 00:42 am »

Muchisimas gracias! Era una bobada pero realmente no me daba cuenta, es que este trabajito me tiene muy trancada. Ahora, el problema que tengo es que el tablero me tira basura, inicializé todo pero no se si es algo más que pasa...
Pego el código:

Código:
 int tam = 1;
    printf("ingrese tamanio: ");
    scanf(" %d", &tam);

   int i=0,j=0;

   int matriz[tam][tam];

    printf("\n   ");
    for (j=0;j<tam;j++)//cuento columnas
        printf("%d ", j);
    printf("\n");

    for (i=0;i<tam;i++)
        {
        printf("%c | ", 'a' + i);
        for (j=0;j<tam;j++)

        printf(" %c", matriz[i][j]);
        printf("\b|\n");
        }
En línea

0xFer


Desconectado Desconectado

Mensajes: 400



Ver Perfil
Re: Dibujar e inicializar tablero de posibles distintos tamaños en C [?]
« Respuesta #3 en: 31 Mayo 2015, 01:30 am »

En realidad en tu código no estas iniciando los valores, solo los tratas de imprimir

Código
  1.   int tam = 1;
  2.    printf("ingrese tamanio: ");
  3.    scanf(" %d", &tam);
  4.  
  5.   int i=0,j=0;
  6.  
  7.   int matriz[tam][tam];
  8.  
  9.   memset(matriz,0,sizeof(matriz)); //inicia todos los valores a 0
  10.  
  11.  
  12.   for(i = 0; i < tam; i++){ //imprime todos los valores
  13.       for(j = 0; j < tam; j++)
  14.           printf("%i",matriz[i][j]);
  15.        printf("\n");
  16.  
  17. }


+ para memset
Código
  1. #include <string.h>
« Última modificación: 31 Mayo 2015, 01:32 am por 0xFer » En línea

Código
  1. int getRandomNumber(){
  2.    return 4; //chosen by fair dice roll
  3.              //guaranteed to be random
  4. }
dragonlady

Desconectado Desconectado

Mensajes: 37



Ver Perfil
Re: Dibujar e inicializar tablero de posibles distintos tamaños en C [?]
« Respuesta #4 en: 31 Mayo 2015, 01:39 am »

no me dejan hacer eso, ni siquiera se lo que es memset :O, menos agregarle otra library
Hay otra manera? Perdon la joda :|
En línea

0xFer


Desconectado Desconectado

Mensajes: 400



Ver Perfil
Re: Dibujar e inicializar tablero de posibles distintos tamaños en C [?]
« Respuesta #5 en: 31 Mayo 2015, 01:44 am »

Parecido a cuando quieres imprimir:


Código
  1. for(i = 0; i < tam; i++){
  2.    for(j = 0; j < tam; j++)
  3.        matriz[i][j] = 0;
  4.    }
  5. }            
  6.  
  7.  

No se si te sirva mucho un tablero que imprima solo números, asi que puedes cambiar ese int por un char y podras imprimir letras u otro tipo de caracteres
En línea

Código
  1. int getRandomNumber(){
  2.    return 4; //chosen by fair dice roll
  3.              //guaranteed to be random
  4. }
dragonlady

Desconectado Desconectado

Mensajes: 37



Ver Perfil
Re: Dibujar e inicializar tablero de posibles distintos tamaños en C [?]
« Respuesta #6 en: 31 Mayo 2015, 02:05 am »

Ahí lo arreglé, había hecho el  matriz[j] = 0; pero no lo habia puesto donde debía
Si, tendría que ser %c porque le tengo que poner objetos aleatorios(como el buscaminas) y un jugador empieza en la punta arriba a la izquierda y el otro en la punta derecha abajo, asi que tendré que usar letras.

Mil gracias por la ayuda :)
En línea

0xFer


Desconectado Desconectado

Mensajes: 400



Ver Perfil
Re: Dibujar e inicializar tablero de posibles distintos tamaños en C [?]
« Respuesta #7 en: 31 Mayo 2015, 02:15 am »

Si, tendría que ser %c
Así es.

No dudes en preguntar si tienes más dudas, suerte.
En línea

Código
  1. int getRandomNumber(){
  2.    return 4; //chosen by fair dice roll
  3.              //guaranteed to be random
  4. }
dragonlady

Desconectado Desconectado

Mensajes: 37



Ver Perfil
Re: Dibujar e inicializar tablero de posibles distintos tamaños en C [?]
« Respuesta #8 en: 1 Junio 2015, 01:22 am »

Gracias por la ayuda, de nuevo.

Ahora tengo el tablero estoy tratando de ingresar unas X que tienen que aparecer aleatoriamente en el. (por ejemplo en un tablero de 6x6 tienen que aparecer 3 X, que aparte no pueden jamas aparecer en las pociciones q tapen las entradas de los jugadores, por ejemplo no pueden aparecer X así

......................................
J1 .  X   .        .       .       .
......................................
 X .      .        .       .   X   .
......................................
    .      .        .   X  .    J2 .
......................................

y bueno, estoy probando el código que hice del tablero con la funcion randomica y no me funciona. Le ingreso un valor de 6 por ejemplo y me tendrian que aparecer 3 X aleatoriamente pero no sucede.
Pego mi código:

Código
  1.    int tam = 1;
  2.    printf("ingrese tamanio: ");
  3.    scanf(" %d", &tam);
  4.    char tablero[tam][tam];
  5.  
  6. int i,j;
  7.  
  8.    printf("\n   ");
  9.    for (j=0;j<tam;j++)
  10.        printf("%c ", 'a' + j);
  11.    printf("\n");
  12.  
  13.    for (i=0;i<tam;i++)
  14.        {
  15.  
  16.        printf("%d  |", i);
  17.        for (j=0;j<tam;j++)
  18.        tablero[i][j]=0;
  19.  
  20.        printf(" %c", tablero[i][j]);
  21.        printf("\b|\n");
  22.  
  23.        }
  24.    printf(" \n");
  25.  
  26.  
  27.    for (X=0;X<3;X++)
  28.    {
  29.  
  30.    srand (time(NULL));
  31. do
  32. {
  33. i=rand()%3+1;
  34. j=rand()%3+1;
  35.        }
  36. while(tablero[i][j]==6);
  37.    }

Que puedo estar haciendo mal? Realmente no me doy cuenta
En línea

0xFer


Desconectado Desconectado

Mensajes: 400



Ver Perfil
Re: Dibujar e inicializar tablero de posibles distintos tamaños en C [?]
« Respuesta #9 en: 1 Junio 2015, 02:04 am »

No te aparece ninguna X porque no has declarado la variable X y porque cuando tratas de generar las "X" aleatoriamente te olvidas de volver a imprimir tu arreglo, además la forma en la que generabas las "X"s no es la correcta

Espero que esto te sirva:

Código
  1. #include <stdio.h>
  2.  
  3. int main(){
  4.  
  5.   int tam = 6;
  6.   char tablero[tam][tam];
  7.  
  8.   int i,j,X; //declaramos la variable X
  9.  
  10.   //Iniciando los valores del tablero a '.', esto tu lo puedes cambiar
  11.   for(i = 0; i < tam;i++)
  12.       for(j = 0; j < tam;j++)
  13.           tablero[i][j] = '.';
  14.  
  15.   //generando las 3 X aleatoriamente        
  16.   srand (time(NULL));    
  17.   int Xnum = 0; //un contador        
  18.   while(Xnum < 3){ //hasta que se generen las 3 Xs
  19.  
  20.       i = rand() % tam;   //el numero aleatorio depende del tamaño del tablero
  21.       j = rand() % tam;
  22.  
  23.       if( tablero[i][j] != 'X'){ //probamos si en esa posicion no existe alguna X
  24.           tablero[i][j] = 'X';   //agregamos una X
  25.           Xnum++; //aumentamos contador para no dibujar mas de 3 Xs
  26.       }    
  27.  
  28.   }
  29.  
  30.   //imprimimos todo
  31.   printf("\n   ");
  32.   for (j=0;j<tam;j++)
  33.       printf("%c ", 'a' + j);
  34.   printf("\n");
  35.  
  36.   for (i=0;i<tam;i++){
  37.  
  38.       printf("%d  |", i);
  39.  
  40.       for (j=0;j<tam;j++){
  41.          printf(" %c", tablero[i][j]);
  42.       }
  43.  
  44.       printf(" \n");
  45.   }
  46. return 0;  
  47.   }
« Última modificación: 1 Junio 2015, 02:10 am por 0xFer » En línea

Código
  1. int getRandomNumber(){
  2.    return 4; //chosen by fair dice roll
  3.              //guaranteed to be random
  4. }
Páginas: [1] 2 3 4 5 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[Duda]Problema de tamaños
ASM
YST 3 3,422 Último mensaje 25 Junio 2009, 22:24 pm
por YST
Tablero java
Java
lulu2704 1 4,927 Último mensaje 23 Abril 2011, 05:11 am
por Castiblanco
tamaños swap
GNU/Linux
linuxos 4 2,582 Último mensaje 24 Octubre 2011, 17:54 pm
por orvtech
Detectar movimientos de piezas en tablero de ajedrez. « 1 2 »
Programación Visual Basic
E2E4 12 10,939 Último mensaje 4 Junio 2012, 09:29 am
por BlackZeroX
Más de 400.000 barcos de todos los tamaños vulnerables a ataques de ....
Noticias
wolfbcn 0 1,366 Último mensaje 27 Marzo 2014, 21:42 pm
por wolfbcn
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines