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ú

Mensajes - Mecanma

#1
Hola, creo que deberías hacer la comparación fuera de la función así solo se encarga de borrar el nodo. También veo que en la linea 81 y 85 llamas la función de manera recursiva, no sé si tu profesor te lo pidió explicitamente de esta forma.
#2
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.
#3
Aquí te correí unas cuanas lineas  creo que funciona como debería

Código (cpp) [Seleccionar]


#include<cstdio>
#include<cstdlib>
#include<ctime> //contiene el prototipo de la funcion time

/*Constantes de enumeracion que representan el estado del juego*/
enum Estatus { CONTINUA, GANA, PIERDE};

int tiraDados( void ); /*prototipo de la funcion*/

/*la funcion main comienza la ejecucion del programa*/
int main()
{
int suma; /*suma del tiro de datos*/
int miPunto;/*punto ganado*/

enum Estatus estatusJuego;  /*puede contener CONTINUA,GANA O PIERDE*/

/*randomiza el generador de numeros aleatorios mediante la funcion time*/
srand( time( NULL) );

suma = tiraDados();  /*primer tiro de los dados*/

/*determina el estado del juego basado en la suma de los dados*/
switch( suma ){

/*gana en el primer tiro*/
case 7:
case 11:
estatusJuego = GANA;
break;

/*pierde en el primer tiro */
case 2:
case 3:
case 12:
estatusJuego = PIERDE;
break;

/*RECUERDO EL PUNTO*/
default:
estatusJuego = CONTINUA;
miPunto = suma;
printf("Su punto es %d\n", miPunto);
break;//opcional el break en este case

}//fin de switch
     /*mientras el Juego no se complete*/
     while( estatusJuego == CONTINUA){
      suma = tiraDados(); /*tira de nuevo los dados*/

      /*determina el estatus del juego*/
      if(suma == miPunto){/*gana por punto*/
      estatusJuego = GANA; /*Fin del juego, el jugador gana*/
      }/*fin de if*/
      else{

      if(suma == 7){/*pierde el tirar */
      estatusJuego = PIERDE;
}/*Fin de if*/

}/*fin de else*/

}/*fin de while*/

/*despliega mensaje de triunfo o derrota*/
if( estatusJuego == GANA ){ /*¿Gano el jugador? */
printf("El jugador gana \n");
}/*fin de if*/
else{/*el jugador pierde*/
printf("El jugador pierde\n");
}//fin del else

return 0;//indica terminacion exitosa

}//fin de main

//tiro de dados, calcula la suma y despliega los resultado
int tiraDados( void )
{
int dado1;//primer dado
int dado2;//segundo dado
int sumaTemp;//suma de los dados

dado1 = 1 + (rand() % 6 );
dado2 = 1 + (rand() % 6 );
sumaTemp = dado1 + dado2;

/*despliega los resultados de este tiro*/
printf("El jugador tiro %d + %d = %d\n",dado1, dado2, sumaTemp);

return sumaTemp; /*devuelve la suma alos dados*/

}/*fin de a funcion tiradados*/

#4
Upss.
Código (cpp) [Seleccionar]

int potencia(int base, int exponente){
long int producto = base;
for(int i = 1; i<exponente;i++){
producto *= base;
}
return producto;
}


PD: ¿Alguien me puede decir donde picar codigo?
#5
Programación C/C++ / Re: ayuda en c++
12 Noviembre 2019, 01:34 AM
Aquí tienes la tarea hecha:

Código (cpp) [Seleccionar]

#include <iostream>
using std::cout;
using std::cin;

const int Elementos = 100;
typedef int tVector [Elementos];

int sumatorio(tVector v);



int main(){

tVector array;//arreglo de cien numero(vacio)
int cont = 0;//contador del bucle

cout<<"INGRESE CIEN NUMEROS POSITIVOS\n";

while(cont < 100){
cout<<"NUMERO "<<cont +1<<": ";
/*Al contador se le agrega uno para hacerlo agradable al usuario, recuerda: internamente usamos del 0 al 99
pero el usuario del 1 al 100*/
cin>>array[cont];

if(array[cont]<0){
cout<<"LOS NUMEROS DEBEN SER POSITIVOS\n";
}
else{
cont++;
}

}

long int suma = sumatorio(array);

cout<<"LA SUMA DE LOS CIEN NUMEROS ES: "<<suma<<"\n\n";




return 0;
}




int sumatorio(tVector v){

long int total=0;

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

total += v[i];

}

return total;
}

#6
¿Y si intentas colocarlos en la carpeta fuente del programa y el header lo colocas entre comillas?

"tuHeader.h"
#7
perdon por responder a algo muerto. y por el codigo


#include <iostream>
#include <stdlib.h>
#include <time.h>

using std::cout;
using std::endl;

int main(){
const int Max = 10000, Limite =10001;

srand(time(NULL));

int aux;


do{
aux =0 + rand()%(Limite - 0);

if((aux > 4000) && (aux < 6000)){
cout<<"Ultimo: "<<aux<<endl;
return 0;
}
else{
cout<<aux<<endl;
}
}while((aux < 4000) || (aux >6000));



return 0;
}
#8

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;

}