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

 

 


Tema destacado: Los 10 CVE más críticos (peligrosos) de 2020


  Mostrar Mensajes
Páginas: [1]
1  Programación / Programación C/C++ / Re: Eliminar todos los repetidos de una lista en: 28 Junio 2020, 09:56 am
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  Programación / Programación C/C++ / Como implementar unos tetraminós en un juego de tetris en: 28 Junio 2020, 01:14 am
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
  1. typedef bool posicion[3][3];
  2.  
  3.    class tetramino_O{
  4.        int color;
  5.        int pos;
  6.        posicion posiciones[1];
  7.            public:
  8.                tetramino_O(){
  9.                        posiciones = {
  10.  
  11.                         {0,0,0},
  12.                         {1,1,0},
  13.                         {1,1,0}
  14.  
  15.                    }//posiciones
  16.                }//constructor
  17.  
  18.    };
  19.  



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
  1. typedef bool posicion[3][3];
  2.  
  3. class tetramino_L{
  4.    int color;
  5.    int pos;
  6.    posicion posiciones[2] = {
  7.                    {
  8.                     {0,1,0},
  9.                     {0,1,0},
  10.                     {1,1,0}
  11.                    },
  12.                    {
  13.                     {1,0,0},
  14.                     {1,1,1},
  15.                     {0,0,0}
  16.                    }
  17.                };//posiciones;
  18.        public:
  19.            tetramino_L(){}//constructor
  20.  
  21. };

MOD: No hacer doble post. Modificar el último mensaje.
3  Programación / Programación C/C++ / Re: UN JUEGO LLAMADO SCRAPS en: 13 Abril 2020, 02:56 am
Aquí te correí unas cuanas lineas  creo que funciona como debería

Código
  1.  
  2. #include<cstdio>
  3. #include<cstdlib>
  4. #include<ctime> //contiene el prototipo de la funcion time
  5.  
  6. /*Constantes de enumeracion que representan el estado del juego*/
  7. enum Estatus { CONTINUA, GANA, PIERDE};
  8.  
  9. int tiraDados( void ); /*prototipo de la funcion*/
  10.  
  11. /*la funcion main comienza la ejecucion del programa*/
  12. int main()
  13. {
  14. int suma; /*suma del tiro de datos*/
  15. int miPunto;/*punto ganado*/
  16.  
  17. enum Estatus estatusJuego;  /*puede contener CONTINUA,GANA O PIERDE*/
  18.  
  19. /*randomiza el generador de numeros aleatorios mediante la funcion time*/
  20. srand( time( NULL) );
  21.  
  22. suma = tiraDados();  /*primer tiro de los dados*/
  23.  
  24. /*determina el estado del juego basado en la suma de los dados*/
  25. switch( suma ){
  26.  
  27. /*gana en el primer tiro*/
  28. case 7:
  29. case 11:
  30. estatusJuego = GANA;
  31. break;
  32.  
  33. /*pierde en el primer tiro */
  34. case 2:
  35. case 3:
  36. case 12:
  37. estatusJuego = PIERDE;
  38. break;
  39.  
  40. /*RECUERDO EL PUNTO*/
  41. default:
  42. estatusJuego = CONTINUA;
  43. miPunto = suma;
  44. printf("Su punto es %d\n", miPunto);
  45. break;//opcional el break en este case
  46.  
  47. }//fin de switch
  48.     /*mientras el Juego no se complete*/
  49.     while( estatusJuego == CONTINUA){
  50.     suma = tiraDados(); /*tira de nuevo los dados*/
  51.  
  52.     /*determina el estatus del juego*/
  53.     if(suma == miPunto){/*gana por punto*/
  54.     estatusJuego = GANA; /*Fin del juego, el jugador gana*/
  55.     }/*fin de if*/
  56.     else{
  57.  
  58.     if(suma == 7){/*pierde el tirar */
  59.     estatusJuego = PIERDE;
  60. }/*Fin de if*/
  61.  
  62. }/*fin de else*/
  63.  
  64. }/*fin de while*/
  65.  
  66. /*despliega mensaje de triunfo o derrota*/
  67. if( estatusJuego == GANA ){ /*¿Gano el jugador? */
  68. printf("El jugador gana \n");
  69. }/*fin de if*/
  70. else{/*el jugador pierde*/
  71. printf("El jugador pierde\n");
  72. }//fin del else
  73.  
  74. return 0;//indica terminacion exitosa
  75.  
  76. }//fin de main
  77.  
  78. //tiro de dados, calcula la suma y despliega los resultado
  79. int tiraDados( void )
  80. {
  81. int dado1;//primer dado
  82. int dado2;//segundo dado
  83. int sumaTemp;//suma de los dados
  84.  
  85. dado1 = 1 + (rand() % 6 );
  86. dado2 = 1 + (rand() % 6 );
  87. sumaTemp = dado1 + dado2;
  88.  
  89. /*despliega los resultados de este tiro*/
  90. printf("El jugador tiro %d + %d = %d\n",dado1, dado2, sumaTemp);
  91.  
  92. return sumaTemp; /*devuelve la suma alos dados*/
  93.  
  94. }/*fin de a funcion tiradados*/
  95.  
  96.  
4  Programación / Programación C/C++ / Re: Alguna manera de saber si un numero es narcisista sin utilizar el pow? en: 12 Noviembre 2019, 03:01 am
Upss.
Código
  1. int potencia(int base, int exponente){
  2. long int producto = base;
  3. for(int i = 1; i<exponente;i++){
  4. producto *= base;
  5. }
  6. return producto;
  7. }
  8.  

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

Código
  1. #include <iostream>
  2. using std::cout;
  3. using std::cin;
  4.  
  5. const int Elementos = 100;
  6. typedef int tVector [Elementos];
  7.  
  8. int sumatorio(tVector v);
  9.  
  10.  
  11.  
  12. int main(){
  13.  
  14. tVector array;//arreglo de cien numero(vacio)
  15. int cont = 0;//contador del bucle
  16.  
  17. cout<<"INGRESE CIEN NUMEROS POSITIVOS\n";
  18.  
  19. while(cont < 100){
  20. cout<<"NUMERO "<<cont +1<<": ";
  21. /*Al contador se le agrega uno para hacerlo agradable al usuario, recuerda: internamente usamos del 0 al 99
  22. pero el usuario del 1 al 100*/
  23. cin>>array[cont];
  24.  
  25. if(array[cont]<0){
  26. cout<<"LOS NUMEROS DEBEN SER POSITIVOS\n";
  27. }
  28. else{
  29. cont++;
  30. }
  31.  
  32. }
  33.  
  34. long int suma = sumatorio(array);
  35.  
  36. cout<<"LA SUMA DE LOS CIEN NUMEROS ES: "<<suma<<"\n\n";
  37.  
  38.  
  39.  
  40.  
  41. return 0;
  42. }
  43.  
  44.  
  45.  
  46.  
  47. int sumatorio(tVector v){
  48.  
  49. long int total=0;
  50.  
  51. for(int i = 0; i < Elementos ;i++){
  52.  
  53. total += v[i];
  54.  
  55. }
  56.  
  57. return total;
  58. }
  59.  
  60.  
6  Programación / Programación C/C++ / Re: problemas con bibliotecas externas en: 11 Noviembre 2019, 23:51 pm
¿Y si intentas colocarlos en la carpeta fuente del programa y el header lo colocas entre comillas?

"tuHeader.h"
7  Programación / Programación C/C++ / Re: Generar números aleatorios sin que se repitan ... en C++ en: 17 Octubre 2019, 07:46 am
perdon por responder a algo muerto. y por el codigo

Código:
#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  Programación / Programación C/C++ / Generar numeros aleatorios sin que se repitan en: 17 Octubre 2019, 05:44 am

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.

Código:

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;

}
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines