Spartan Game



  • Da du dich ja so aufregst wegen den einbinden von externen voids , schreib ich dir mal was.Das ist extra eifach gehalten , nicht das beste , aber damit du es verstehst :

    Deine main.cpp

    #include <lalala>
    
    using namespace alalal;
    
    void sag_abc(void);
    int main()
    {
    sag_abc();
    }
    

    abc.cpp

    #include ...
    using namespace ...
    
    void sag_abc(void);
    
    void sag_abc(){cout << "abc" << endl;}
    


  • Alles klar ? Wenn nicht schreib ich dir "was was was was was " ist



  • Armer Xenotack, wird er hier ernsthaft mit schlechtem Code bestraft...



  • Zutreffendes ankreuzen:

    ist ein String.
    ist ein Monster.



  • 7xCore schrieb:

    Du könntest nen vector füllen mit verschiednener damage , und dann random auslesen und gebrauchen.

    Hä? Du würdest also lieber 20 Zahlen in einem Vector abspeichern, die als Schaden gelten, als sie einfach, wenn sie gebraucht werden, zu generieren?
    void in die Parameterliste einer Funktion zu schreiben ist bei C++ auch unüblich.
    Und tut mir bitte alleine einen Gefallen, rückt euren Code ordentlich ein. Ist ja grausam sich diesen Thread durch zu lesen. 😃

    Swordfish schrieb:

    Zutreffendes ankreuzen:

    ist ein String.
    ist ein Monster.

    Ich vermute er kennt sowas wie Klassen leider noch nicht.
    @Xenotack
    Um es dir gleich ab zu gewöhnen, vermeide using namespace std; und schreib std::cout und sonst, wo man es schreiben muss. Oder schreib es, statt unter die Includes, am Anfang deiner Funktion.
    Und wie schonmal erwähnt wurde, warum benutzt du immer do-while Schleifen? Benutz stattdessen normale while-Schleifen. Zweck der do-while Schleifen ist es, dass sie mindestens einmal ausgeführt werden und das bedingungslos. Bei dir sollte das aber nicht notwendig sein.
    Als Nebenbemerkung, system("cls") ist nur für DOS-Benutzer. Unter Linux würde dieser Befehl beispielsweiße nicht funktionieren.
    Wenn du zufälligen Schaden haben möchtest, würde ich dir rand empfehlen.
    Schau dir dazu mal folgende Links an:
    http://www.c-plusplus.net/forum/172876
    http://www.cplusplus.com/reference/clibrary/cstdlib/rand/
    Somit müssste man nicht den Schaden selbst eingeben und ein Kampf würde mehr Spannung mit sich bringen, sofern das Monster irgendwann auch mal Schaden macht.



  • 7xCore schrieb:
    Du könntest nen vector füllen mit verschiednener damage , und dann random auslesen und gebrauchen.

    Hä? Du würdest also lieber 20 Zahlen in einem Vector abspeichern, die als Schaden gelten, als sie einfach, wenn sie gebraucht werden, zu generieren?

    Gute idee..... 😃



  • 7xCore schrieb:

    void choose_rass()
    {
    	//[...]
    	else{cout << "Diese Rasse existiert nicht"<< endl; choose_rass();}
    
    	createDataBase_Player();
    }
    

    Das wird interessant, wenn man eine nicht-existente Rasse eingibt 😉

    Du hast einen bemerkenswerten Programmierstil.



  • 7xCore schrieb:

    void choose_rass()
    

    Von der "kreativen" Art der Problemlösung mal abgesehen: Kauf' dir zum C++-Buch auch gleich ein Wörterbuch dazu...



  • Sieht so aus als ob ihr über lesen hättet , das es sich um ein deutlich älteres Projekt handelt , ich hab ihn auch davor gewarnt , das meine C++ Kenntnisse da auch noch nicht so gut waren.



  • 7xCore schrieb:

    C/C++ Code:
    void choose_rass()
    {
    //[...]
    else{cout << "Diese Rasse existiert nicht"<< endl; choose_rass();}

    createDataBase_Player();
    }
    C/C++ Code:
    void choose_rass()
    {
    //[...]
    else{cout << "Diese Rasse existiert nicht"<< endl; choose_rass();}

    createDataBase_Player();
    }

    Das wird interessant, wenn man eine nicht-existente Rasse eingibt 😉

    Was wird da interessant ?
    Str+C und F5 , und es geht ohne Programmier/Spiel Fehler



  • Falsche Klasse eingeben, choose_rass() ruft sich rekursiv auf, läuft dann bei richtiger Eingabe durch bis createDataBase_Player(), Rücksprung aus der Rekursion und createDataBase_Player() wird erneut aufgerufen.

    Dieses Anti-Pattern für Rekursion wurde mehrfach in dem Code verwendet.

    Und teilweise indirekte Rekursion über mehrere Stufen. Das ist total katastrophal. Völlig egal ob der Autor es heute besser kann, an sowas sollte sich kein Anfänger ein Beispiel nehmen.



  • *double*



  • Was wird da interessant ?
    Str+C und F5 , und es geht ohne Programmier/Spiel Fehler

    Bleib locker 🙄 , μ hat recht.
    Ich hab das Gefühl , es gibt zu viele Leute , die bestimmte posts zu persöhnlich nehmen... 🤡



  • 7xCore schrieb:

    Ich hab das Gefühl , es gibt zu viele Leute , die bestimmte posts zu persöhnlich nehmen... 🤡

    Hast Du sie noch alle?



  • Hast Du sie noch alle?

    Kommt darauf an



  • volkard schrieb:

    7xCore schrieb:

    Ich hab das Gefühl , es gibt zu viele Leute , die bestimmte posts zu persöhnlich nehmen... 🤡

    Hast Du sie noch alle?

    Wer ?! Ich !? 😃 😃

    7xCore schrieb:

    War das mit den klammern bei einem string nicht C ? Also string abc("ich bin abc");

    Nein ...?
    Klammern bei der Erstellung von Basisdatentypen symbolisieren den Konstruktor,
    z.b. kannst du

    int a=5,b(5);
    

    Das ist genau dasselbe.

    @Xenotack:

    Wenn du den HP vom Spieler anzeigst, hat das auch was zu bedeuten.
    Lass das Monster dich auch mal Angreifen, und nur so neben bei:
    Da muss das Monster auch stärker werden.

    Willst du (wie schon angesprochen) Zufällige Damages Berechnen,
    könntest du dir folgende Funktion schreiben:

    inline int xrand(int a,int b){
    
        return rand()%(b-a)+a;
    }
    

    Gibt eine Zufallszahl zwischen a und b zurück.

    Edit: Es ginge auch ein Makro (was ich persönlich nicht empfehlen würde):

    #define xrand(a,b) (rand()%(b-a)+a)
    

    Du könntest dann auch die Damage des Spielers zufällig erstellen,
    oder Energie-Punkte oder so einfügen, die dann die verbliebene Angriffs-
    Energie symbolisieren.



  • 7xCore schrieb:

    Sieht so aus als ob ihr über lesen hättet , das es sich um ein deutlich älteres Projekt handelt , ich hab ihn auch davor gewarnt , das meine C++ Kenntnisse da auch noch nicht so gut waren.

    Nimm's mir nicht übel, aber dann solltest du solche alten Quellen auch nicht posten. Warum alte Fehler weitervererben?

    Und btw lässt dein Vorschlag zum damage-vector heute auch nicht auf viel Besseres hoffen. 😉



  • Und btw lässt dein Vorschlag zum damage-vector heute auch nicht auf viel Besseres hoffen. 😉

    Warum hast du was gegen einen vector?Hätte da auch gut gepasst.



  • 7xCore schrieb:

    Und btw lässt dein Vorschlag zum damage-vector heute auch nicht auf viel Besseres hoffen. 😉

    Warum hast du was gegen einen vector?Hätte da auch gut gepasst.

    Du willst einen vector mit Damage-Werten füllen und dann zufällig darauf zugreifen? Nenne mir einen Grund, warum man diese Werte in einem vector zwischenspeichern sollte (bin gespannt 😉 ). Die kann man einfach zufällig generieren und direkt anwenden.



  • Ja klar

    Die kann man einfach zufällig generieren und direkt anwenden.

    Man kann auch einen vector verwenden.


Anmelden zum Antworten