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 - Mecanma

#1
Hola quiero hacer un juego de tetris, lo que sucede es que no puedo inicializar un arreglo de matrices dentro de un objeto. Me tira el siguiente error: "In constructor 'tetramino_O::tetramino_O()':
error: assigning to array from an initializer list"

Código (cpp) [Seleccionar]

typedef bool posicion[3][3];

   class tetramino_O{
       int color;
       int pos;
       posicion posiciones[1];
           public:
               tetramino_O(){
                       posiciones = {

                        {0,0,0},
                        {1,1,0},
                        {1,1,0}
                       
                   }//posiciones
               }//constructor

   };





Hola, ya lo solucioné en stackoverflow.
Solo tenía que inicializarlo en la declaración por que lo que estaba haciendo era una asignación.

Código (cpp) [Seleccionar]

typedef bool posicion[3][3];

class tetramino_L{
    int color;
    int pos;
    posicion posiciones[2] = {
                    {
                     {0,1,0},
                     {0,1,0},
                     {1,1,0}
                    },
                    {
                     {1,0,0},
                     {1,1,1},
                     {0,0,0}
                    }
                };//posiciones;
        public:
            tetramino_L(){}//constructor

};


MOD: No hacer doble post. Modificar el último mensaje.
#2

Así se pueden generar numeros sin repetirlos.

Explicación:

se genera un numero aleatorio en aux
se recorre el arreglo buscando un numero igual
si se encuentra se genera otro y se inicializa la variable j(la del for interior) para asegurarse de que no haya un repetido.

Recuerda que el limite de la generación no sea menor al tamaño del arreglo eso podría conllevazr a un error.



const int Max = 100, Limite = 101;
typedef int tArray[Max]


tArray array;
int aux = 0, num = -1;

   

    for(int i = 0;i<Max;i++){

int aux = 1 + rand()%(Limite - 1);

for(int j = 0;j < i;j++){

if(aux == array[j]){

aux = 1 + rand()%(Limite - 1);
j=0;
}

}

array[i]= aux;

}