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

 

 


Tema destacado: Curso de javascript por TickTack


  Mostrar Mensajes
Páginas: 1 ... 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 [20] 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 ... 83
191  Programación / Programación General / Re: Algoritmo simulador de batallas en: 13 Agosto 2013, 14:03 pm
Sí, en principio no tengo problema en colaborar, tengo tiempo.

En el código que habéis puesto sugiero que se establezcan los atributos de las clases como privados, y métodos getters y setters.

Qué opináis de usar C++ 11?
Yo también voto por poner los atributos como privados, es más lo iba a publicar ahora. En  cuanto a lo de C++11 me parece una buena idea, así practicamos. Solo tengo el header de momento pero bueno, las funciones get ya están implementadas:
Código
  1. #ifndef UNITY_H
  2. #define UNITY_H
  3. #include <string>
  4.  
  5. class Unity
  6. {
  7.    public:
  8.        Unity();
  9.  
  10.        void        setID                           (std::string newID);
  11.        void        setGeneralType                  (std::string newType);
  12.        void        setName                         (std::string newName);
  13.        void        setNumberOfSoldiers             (int newNumberOfSoldiers);
  14.        void        setInjuredSoldiers              (int newInjuredSoldiers);
  15.        void        setMotivation                   (float newMotivation);
  16.        void        setPhysicalState                (float newPhysicalState);
  17.        void        setFavourableWeather            (std::string newFavourableWeather);
  18.        void        setHarmfulWeather               (std::string newHarmfulWeather);
  19.        void        setFavourableTerrain            (std::string newFavourableTerrain);
  20.        void        setHarmfulTerrain               (std::string newHarmfulTerrain);
  21.        void        setMeleeAttack                  (float newMeleeAttack);
  22.        void        setMeleeDefense                 (float newMeleeDefense);
  23.        void        setLongDistanceAttack           (float newLongDistanceAttack);
  24.        void        setLongDistanceDefense          (float newLongDistanceDefense);
  25.        void        setDiscipline                   (float newDiscipline);
  26.        void        setSpeed                        (float newSpeed);
  27.        void        setGeneralTypeFavourable        (std::string newGeneralTypeFavourable);
  28.        void        setGeneralTypeHarmful           (std::string newGeneralTypeHarmful);
  29.        void        setConcreteTypeFavourable       (std::string newConcreteTypeFavourable);
  30.        void        setConcreteTypeHarmful          (std::string newConcreteTypeHarmful);
  31.        void        setNutrition                    (float newNutrition);
  32.        void        setResistence                   (float newResistence);
  33.  
  34.        std::string getID()                         const{return id;}
  35.        std::string getGeneralType()                const{return generalType;}
  36.        std::string getName()                       const{return name;}
  37.        int         getNumberOfSoldiers()           const{return numberOfSoldiers;}
  38.        int         getInjuredSoldiers()            const{return numberOfInjuredSoldiers;}
  39.        float       getMotivation()                 const{return motivation;}
  40.        float       getPhysicalState()              const{return physicalState;}
  41.        std::string getFavourableWeather()          const{return favourableWeather;}
  42.        std::string getHarmfulWeather()             const{return harmfulWeather;}
  43.        std::string getFavourableTerrain()          const{return favourableTerrain;}
  44.        std::string getHarmfulTerrain()             const{return harmfulTerrain;}
  45.        float       getMeleeAttack()                const{return meleeAttack;}
  46.        float       getMeleeDefense()               const{return meleeDefense;}
  47.        float       getLongDistanceAttack()         const{return longDistanceAttack;}
  48.        float       getLongDistanceDefense()        const{return longDistanceDefense;}
  49.        float       getDiscipline()                 const{return discipline;}
  50.        float       getSpeed()                      const{return speed;}
  51.        std::string getGeneralTypeFavourable()      const{return generalTypeFavourable;}
  52.        std::string getGeneralTypeHarmful()         const{return generalTypeHarmful;}
  53.        std::string getConcreteTypeFavourable()     const{return concreteTypeFavourable;}
  54.        std::string getConcreteTypeHarmful()        const{return concreteTypeHarmful;}
  55.        float       getNutrition()                  const{return nutrition;}
  56.        float       getResistence()                 const{return resistence;}
  57.  
  58.        virtual ~Unity();
  59.  
  60.    private:
  61.  
  62.        std::string id;
  63.        std::string generalType;
  64.        std::string name;
  65.        int numberOfSoldiers;
  66.        int numberOfInjuredSoldiers;
  67.        float motivation;
  68.        float physicalState;
  69.        std::string favourableWeather;
  70.        std::string harmfulWeather;
  71.        std::string favourableTerrain;
  72.        std::string harmfulTerrain;
  73.        float meleeAttack;
  74.        float meleeDefense;
  75.        float longDistanceAttack;
  76.        float longDistanceDefense;
  77.        float discipline;
  78.        float speed;
  79.        std::string generalTypeFavourable;
  80.        std::string generalTypeHarmful;
  81.        std::string concreteTypeFavourable;
  82.        std::string concreteTypeHarmful;
  83.        float nutrition;
  84.        float resistence;
  85. };
  86.  
  87.  
  88. #endif // UNITY_H
192  Programación / Programación General / Re: Algoritmo simulador de batallas en: 13 Agosto 2013, 11:05 am
Hola, me parece un proyecto bastante interesante, no dudaría en colaborar. Para comunicarnos y organizarnos, voto por Google Docs para el proyecto y para hablar pues se crea un grupo en Google Groups y listo.

El simulador tendría que organizar la batalla con la táctica introducida por el usuario, mover las unidades y en cuanto éstas estén en el rango de alcance y en su turno, atacar. Estamos intentando crear una IA.

Bien, digamos que el desarrollo de este simulador podría ser el siguiente:
  • 1. Mover ***¿según táctica?***.
  • 2. Mirar el rango de alcance de cada una de las unidades y ver si hay enemigos.
  • 3. Si está en el turno atacar.
  • 4. Según las unidades, la fuerza del ataque, la defensa, la orografía del mapa y demás restar salud a ambas unidades únicamente si las dos están en su rango de alcance. Pongamos un ejemplo, si una unidad de arqueros ataca a una unidad de legionarios, los legionarios si no es cuerpo a cuerpo no provocan daño a los arqueros. Sin embargo si una unidad de caballería ataca a una de legionarios provocará más daño la de caballería, pero los legionarios también provocarán daño.
¡Un saludo!
193  Programación / Programación C/C++ / Re: [C++] Problema con bucle en Eclipse en: 9 Agosto 2013, 20:04 pm
Hola buenas otra vez, el problema era un bucle infinito en la función contar repes la otra función está perfecta, fíjate que en el segundo for de la funcion contar repes concretamente en este:
Código
  1. for(int j=0; j<contador; i++)
  2. {
  3.       if(i==array[j])
  4.         {
  5.             repes[i]++;
  6.         }
  7. }
Aumentas la variable i por lo cual la variable j siempre será menor que contador y creará un bucle infinito. Aquí está tu codigo arreglado(le he puesto un par de comentarios, leete sobre todo el de inicializar los valores a 0 en la funcion contar repes, quita esa parte del codigo y mira lo que pasa):
Código
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. const int numero = 100;
  6. typedef int Valores[numero];
  7.  
  8. typedef int repeticion[numero];
  9.  
  10.  
  11.  
  12. void leerarray(Valores array, int& contador)
  13. {
  14.    /// Inicializa numero a 0, pues su contenido al principio podría ser -1 y no
  15.    /// entraría al bucle.
  16.    int numero = 0;
  17.  
  18.    do
  19.    {
  20.        cout<< "Introduzca el valor [" << contador << "] del vector \n";
  21.        cin >> numero;
  22.        array[contador] = numero;
  23.        contador++;
  24.    }while(numero != -1);
  25.  
  26.  
  27. }
  28.  
  29.  
  30.  
  31. void contar_repes(Valores array,repeticion repes,int contador)
  32. {
  33.    ///Inicializa los valores a 0 para que no salgan números extraños
  34.    ///al ser puestos por el compilador aleatoriamente.
  35.    for(int i = 0; i < 10; i++)
  36.        repes[i] = 0;
  37.  
  38.    for(int i = 0; i < 10; i++)
  39.    {
  40.        for(int j=0; j < contador; j++)
  41.        {
  42.            if(i == array[j])
  43.            {
  44.                repes[i]++;
  45.            }
  46.        }
  47.  
  48.    }
  49.  
  50.    for(int i = 0; i < 10; i++)
  51.        cout <<" "<< i << ":" << repes[i] << " ";
  52.  
  53.  
  54. }
  55.  
  56. int main()
  57. {
  58.    int contador=0;
  59.  
  60.    Valores array;
  61.    repeticion repes;
  62.  
  63.  
  64.  
  65.    leerarray(array,contador);
  66.  
  67.    contar_repes(array,repes,contador);
  68.  
  69.    return 0;
  70. }

¡Un saludo!  ;)
194  Programación / Programación C/C++ / Re: [Aporte] Compilar SFML Estaticamente en: 9 Agosto 2013, 19:19 pm
Muchas gracias por el aporte y muy currado MeCraniDOS.

¡Un saludo!
195  Programación / Programación C/C++ / Re: [C++] Problema con bucle en Eclipse en: 9 Agosto 2013, 19:17 pm
A mí me funciona bien, ¿quizás pueda ser por el eclipse? , aquí tienes mi salida:
Código:
Introduzca el valor [0] del vector
43
Introduzca el valor [1] del vector
3
Introduzca el valor [2] del vector
3
Introduzca el valor [3] del vector
3
Introduzca el valor [4] del vector
3
Introduzca el valor [5] del vector
3
Introduzca el valor [6] del vector
3
Introduzca el valor [7] del vector
3
Introduzca el valor [8] del vector
3
Introduzca el valor [9] del vector
3
Introduzca el valor [10] del vector
4
Introduzca el valor [11] del vector
3
Introduzca el valor [12] del vector
4
Introduzca el valor [13] del vector
3
Introduzca el valor [14] del vector
4
Introduzca el valor [15] del vector
2
Introduzca el valor [16] del vector
32
Introduzca el valor [17] del vector
3
Introduzca el valor [18] del vector
-1

Process returned 0 (0x0)   execution time : 9.995 s
Press any key to continue.
196  Programación / Programación C/C++ / Re: Problema de compilación en: 8 Agosto 2013, 23:08 pm
Hola buenas, suponiendo que EnteroAleatorio esté definido, el único problema es este:
Código
  1. Array ArrayCreaAleatorio(int linf, int lsup;)
Fíjate en el penúltimo carácter, eso no está bien, el punto y coma sobra, por lo que la línea quedaría:
Código
  1. Array ArrayCreaAleatorio(int linf, int lsup)

¡Un saludo!
197  Foros Generales / Dudas Generales / Re: Programa en C++ no sirve. en: 5 Agosto 2013, 23:38 pm
Ya he borrado todas las referencias anteriores, y me da el mismo error.
Como ya me suponía no puedes hacer un include al archivo de fuente así que simplemente quita el:
Código
  1. #include "io.cpp"
Y vuelve a poner las definiciones de las funciones en el main.cpp. El cual queda así:
Código
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. int ReadNumber();
  6. void WriteAnswer(int x);
  7.  
  8. int main()
  9. {
  10.  
  11.    cout << "Give us your numbers!" << endl;
  12.    int x = ReadNumber();
  13.    int y = ReadNumber();
  14.    WriteAnswer(x + y);
  15.    return 0;
  16. }
Y el io.cpp queda exactamente como estaba. Obviamente el compilador generará dos archivos objeto que luego enlazará.

¡Un saludo!
198  Foros Generales / Dudas Generales / Re: Programa en C++ no sirve. en: 5 Agosto 2013, 22:11 pm
Vamos a ver, aunque esto va a en el subforo de C++ te respondo aquí, el error te dice que hay una definición múltiple de las funciones  ReadNumber() y WriteAnswer() ¿y porqué?  pues como podrás imaginar si en "io.cpp" ya están definidas esas funciones, y las defines otra vez en main.cpp hay una definición múltiple tal y como dice el compilador. Teóricamente deberías incluir un archivo de cabecera(.hpp) no uno de fuente(.cpp) pero como hasta tal punto no llego prefiero quedarme al margen. Para arreglarlo simplemente elimina las definiciones de las dos funciones del main.cpp aunque no es la mejor opción.
199  Programación / Programación C/C++ / Re: programa en C++ que resuelva ecuacion cuadratica en: 2 Agosto 2013, 23:44 pm
Siendo la forma de la ecuación:

ax2 + bx + c = 0

Los datos de entrada serían a, b y c y después operas con ellos con la fórmula. No es complicado. Bueno no creo que me reprochen nada y digo que NO ES JUSTO dado que a otros usuarios les he podido decir lo mismo y no ofrecer el código, así que pido disculpas por eso, espero que darte este código no sea en vano.
Código
  1. #include <iostream>
  2. #include <cmath>
  3.  
  4.  
  5. int main(int argc, char *argv[])
  6. {
  7.    int a = 0;
  8.    int b = 0;
  9.    int c = 0;
  10.  
  11.    std::cout << "FORMA GENERAL DE LA ECUACION CUADRATICA : ax^2+-bx+-c = 0" << std::endl << std::endl;
  12.    /** INTRODUCIMOS LOS DATOS **/
  13.    std::cout << "Introduzca la variable a:" << std::endl;
  14.    std::cin  >> a;
  15.    std::cout << "Introduzca la variable b:" << std::endl;
  16.    std::cin  >> b;
  17.    std::cout << "Introduzca la variable c:" << std::endl;
  18.    std::cin  >> c;
  19.    /** Calculamos el interior de la raiz para comprobar si es negativo despues. **/
  20.    int interiorRaiz = pow(b,2)-4*(a*c);
  21.  
  22.    int primeraSolucion = 0;
  23.    int segundaSolucion = 0;
  24.  
  25.    /** Si es negativa no tiene solucion en los numeros reales
  26.      *  solo en los numeros imaginarios.
  27.      */
  28.  
  29.    if(interiorRaiz < 0)
  30.    {
  31.        std::cout << "Esta ecuacion no tiene solucion en los numeros reales." << endl;
  32.    }
  33.    else
  34.    {
  35.        primeraSolucion = (-b+sqrt(interiorRaiz))/(2*a);
  36.        segundaSolucion = (-b-sqrt(interiorRaiz))/(2*a);
  37.        if(primeraSolucion == segundaSolucion)
  38.        {
  39.            std::cout << "La unica solucion es:" << primeraSolucion;
  40.        }
  41.        else
  42.        {
  43.            std::cout << "La primera solucion es: " << primeraSolucion << std::endl;
  44.            std::cout << "La segunda solucion es: " << segundaSolucion << std::endl;
  45.            std::cout << std:: endl;
  46.        }
  47.    }
  48.    std::cout << "Presione intro para terminar el programa ...";
  49.    std::cin.ignore();
  50.    std::cin.get();
  51.  
  52.    return 0;
  53. }

EDITADO: Bueno me alegro, ¿ves como no era tan complicado? :)
200  Programación / Programación C/C++ / Re: programa en C++ que resuelva ecuacion cuadratica en: 2 Agosto 2013, 23:32 pm
Hola, ¿no llevas nada hecho? No sé si te has leído las normas del foro, pero no está permitido hacer tareas, solo prestar ayuda  :-\
Páginas: 1 ... 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 [20] 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 ... 83
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines