Ayuda con rellenar una matriz con rand()

Iniciado por serg2404, 2 Julio 2016, 02:52 AM

0 Miembros y 1 Visitante están viendo este tema.

serg2404

Buenas necesito ayuda con este codigo lo que quiero hacer es rellenar una matriz con numeros del 1 al 5 lo que se me ocurrio fue usar la funcion rand() pero me dan todos los espacios de la matriz 0, no se si este implementando bien la funcion o sea un error pasando los datos. Gracias de antemano!
#include <stdio.h>
#include <stdlib.h>
int tablero[9][9];

void llenartablero()
{
for (int i=0; i<9; i++)
{
for(int j=0; j<9;)
{
int X=0;
X = rand() % 6;
tablero[i][j]=X;
}
}
}


main()
{
char nombre[20];
printf("Candy Crush!\n");
system("pause");
printf("Ingrese su nombre: \n");
scanf("%s", nombre);
printf("REGLAS:\n -Bienvenido al juego Candy Crush! a continuacion se explicaran las regalas del juego \n-Juego e un jugador\n-Se cuenta con un tablero de 9x9 con cada espacio relleno con gelatina\n-El tablero estara repleto de 6 tipos distintos de caramelos\n-El objetivo del juego es unir los caramelos en filas de 3 o 4 para eliminar las gelatinas en los espacios en los que se unan los caramelos\n-Si se unen 4 caramelos del mismo color se creara un caramelo rayado que al usarse elimina una fila o columna de gelatina\n-Tienes 40 movimientos para eliminar todas las gelatinas\n-Suerte!\n");
for(int i=0; i<9; i++)
{
for(int j=0; j<9; j++)
printf("       %i ", tablero[i][j]);
printf("\n");
}


}





AlbertoBSD

Hola.

Segun veo en ningun momento llamas a la funcion llenartablero()

La otra es que hubieras continuado el tema en el post que abristes hace algunos días.

Saludos
Donaciones
1Coffee1jV4gB5gaXfHgSHDz9xx9QSECVW

serg2404

Ah ok ok, pensaba que como tablero era una variable global no habia que llamarla en el main, gracias! la proxima sigo el tema en un solo post, capaz tenga otras dudas epara este codigo!

serg2404

Cita de: AlbertoBSD en  2 Julio 2016, 02:59 AM
Hola.

Segun veo en ningun momento llamas a la funcion llenartablero()

La otra es que hubieras continuado el tema en el post que abristes hace algunos días.

Saludos
Cuando llamo a la funcion ahora no se imprime nada  :-\, la verdad no tengo ni idea de cual podria ser el problema

AlbertoBSD

Hola no se como estes llamando a la funcion pero el main deberia de quedar asi:

main()
{
char nombre[20];
printf("Candy Crush!\n");
system("pause");
printf("Ingrese su nombre: \n");
scanf("%s", nombre);
printf("REGLAS:\n -Bienvenido al juego Candy Crush! a continuacion se explicaran las regalas del juego \n-Juego e un jugador\n-Se cuenta con un tablero de 9x9 con cada espacio relleno con gelatina\n-El tablero estara repleto de 6 tipos distintos de caramelos\n-El objetivo del juego es unir los caramelos en filas de 3 o 4 para eliminar las gelatinas en los espacios en los que se unan los caramelos\n-Si se unen 4 caramelos del mismo color se creara un caramelo rayado que al usarse elimina una fila o columna de gelatina\n-Tienes 40 movimientos para eliminar todas las gelatinas\n-Suerte!\n");
//Aqui llama a la funcion
for(int i=0; i<9; i++)
{
  for(int j=0; j<9; j++)
   printf("       %i ", tablero[i][j]);
   printf("\n");
}


}


Saludos!
Donaciones
1Coffee1jV4gB5gaXfHgSHDz9xx9QSECVW

serg2404

Cita de: AlbertoBSD en  2 Julio 2016, 04:14 AM
Hola no se como estes llamando a la funcion pero el main deberia de quedar asi:

main()
{
char nombre[20];
printf("Candy Crush!\n");
system("pause");
printf("Ingrese su nombre: \n");
scanf("%s", nombre);
printf("REGLAS:\n -Bienvenido al juego Candy Crush! a continuacion se explicaran las regalas del juego \n-Juego e un jugador\n-Se cuenta con un tablero de 9x9 con cada espacio relleno con gelatina\n-El tablero estara repleto de 6 tipos distintos de caramelos\n-El objetivo del juego es unir los caramelos en filas de 3 o 4 para eliminar las gelatinas en los espacios en los que se unan los caramelos\n-Si se unen 4 caramelos del mismo color se creara un caramelo rayado que al usarse elimina una fila o columna de gelatina\n-Tienes 40 movimientos para eliminar todas las gelatinas\n-Suerte!\n");
//Aqui llama a la funcion
for(int i=0; i<9; i++)
{
  for(int j=0; j<9; j++)
   printf("       %i ", tablero[i][j]);
   printf("\n");
}


}


Saludos!
Si ahi donde pones que llame a la funcion es donde pongo llamartablero();, pero por alguna razon no imprime nada antes por lo menos me imprimia los 0s jajaja

AlbertoBSD

ya vi el error el segundo for dentro de la funcion llenar no  tiene incremento en el contador y el segundo for dentro del main no tiene llaves.

Saludos
Donaciones
1Coffee1jV4gB5gaXfHgSHDz9xx9QSECVW

serg2404

Cita de: AlbertoBSD en  2 Julio 2016, 04:41 AM
ya vi el error el segundo for dentro de la funcion llenar no  tiene incremento en el contador y el segundo for dentro del main no tiene llaves.

Saludos
Gracias!, ahora si sirve jajaja se me pasaron esos detalles.