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ú

Temas - serg2404

#1
tengo este código para generar números aleatorios sin que se repitan y guardarlos en una matriz, creo que se me queda en un loop infinito y no logro ver porque, he tratado de generar los números sin que se repitan de varias maneras y no lo logro, ayuda!!
(el codigo esta incompleto, extraje la parte en la que necesito ayuda)
Gracias :D


#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <ctype.h>
#include <windows.h>

int tableroNumerico[6][6];// aqui va a estar el tablero numerico original
int tableroNumerico2[6][6];//aqui va a estar el tablero desordenado
char tableroFigura[6][6];//aqui va a estar el tablero con la figura original
char tableroFigura2[6][6];//aqui va a estar el tablero desordenado
int repetidos[34];//este vector es para revisar los numeros repetidos en el rand

int generarNumero(int *c)
{
int numero;
bool distinto=false;

   while(distinto==false)
   {  
       srand(time(NULL));//Cambio el seed con el tiempo de ese momento.
       int cont=0;
       numero=rand()%34+1;
       for(int i=0; i<34; i++)
       {
           if(repetidos[i]==numero)
               cont++;
       }
       if(cont==0)
       {
           distinto=true;
           repetidos[*c]=numero;
       }
           
   }  
return numero;  
}

void llenarTablero(char t)
{
   
   int cont=0;
   int aux=0;  
   if(t=='f')
   {
       
   }
   else
   {
       for(int i=0; i<6; i++)
           {
            for(int j=0; j<6; j++)
            {
               if(i==0 && j==5)
                   tableroNumerico2[i][j]=0;
               else
                   {
                    aux=generarNumero(&cont);
                    tableroNumerico2[i][j]=aux;
                    cont++;  
                   }      
             }
           }    
   }  
}

void mostrarTablero(char t) //Aqui imprimo el tablero despues de cada movimiento
{
   if(t=='f')
   {
       
   }
   else
   {
       for(int i=0; i<6; i++)
           {
            for(int j=0; j<6; j++)
               {
                if(tableroNumerico2[i][j]==0)
                   printf("[  ]");
                 else
                   printf("[ %i ]", tableroNumerico2[i][j]);  
               }  
               printf(" \n");    
           }
   }
}
main()
{
 for (int i=0; i<35; i++)
   repetidos[i]=0;
 char tipoTablero='n';
 llenarTablero(tipoTablero) ;
 mostrarTablero(tipoTablero);
 system("pause");
}

#2
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");
}


}




#3
Hola gente, soy nuevo aqui en el foro y en el mundo de la programacion y tengo una pequena duda sobre un proyecto en el que me piden llenar una matriz de 9x9 con 6 valores, mi duda es que si dentro de un for yo podria asignar un valor aleatorio dentro de un rango definido(numeros del 0 al 5 por ejemplo) a una variable X