Spartan Game



  • Ich hab heute angefangen ein Spartanisches Spiel zu Programmieren

    Bis Jetzt hat man nur 1 Monster der Stufe 1 mit 50 Life Points
    Bis jetzt muss man den schaden noch Manuell eingeben.
    Später wird der Schaden generiert und der Kampf wird automatisch ablaufen!
    Und es wird ein Menü geben womit man auswählen kann was man tun möchte !

    Wenn jemand mit Arbeiten will PN me!

    PS: Ich bin Anfänger

    Hier der Quellcode:

    #include <iostream>
    #include <conio.h>
    #include <stdlib.h>
    
    using namespace std;
    
    int main()
    {
    
        //Variable
        int lifebar = 50;
        int damage;
    
        do
        {
                    cout << "                                 Gargol: Stufe 1" << endl;
                for(int i = 0; i < lifebar; i++)
                {
                    cout << "|";
                }
            cout << " " << lifebar << endl;
    
            cout << "Do Damage: ";
            cin >> damage;
    
            lifebar -= damage;
        }
        while(lifebar > 0);
    
        cout << "Das Monster ist besiegt!";
    
        getch();
        return 0;
    }
    

    Verbesserungen und Tipps so wie Tricks und Kritik erwünscht!

    LG Xenotack



  • Sehr schön. stdlib.h brauchst du nicht (in jedem Fall heißt die außerdem <cstdlib> heutzutage), die Variable damage würde ich in die Schleife verschieben, und statt do...while würde ich eine while-Schleife nehmen.



  • Letzteres Versteh ich nicht so ganz aber der Rest ist geändert ^^

    Danke.

    LG Xenotack



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



  • Xenotack schrieb:

    Ich bin Anfänger

    Erklär mir wie ich es machen soll 😕



  • Egal 😉
    Was du eher hinzufügen könntest ist ne charakter auswahl.
    Ich geb dir mal ein bisschen code aus nem angefangenen , nicht fertige gestellten Projekt

    void choose_class(void);
    void choose_rass(void);
    void createDataBase_Player(void);
    void accept_char_choose(void);
    void set_CharAttributes(void);
    string char_rass;
    string char_class;
    
    char ue = 129;
    
    // Skill
    int Attack;
    int Life;
    int Mana;
    int Longsword;
    int Shortsword;
    int HeavyArmour;
    int LightArmour;
    
    int Ar;
    int Lpr;
    int Mr;
    int Lsr;
    int Sr;
    int Hr;
    int Lr; 
    
    int att_points = 12;
    int atr = 12;
    void choose_class()
    {
    
    	system("cls");
    
    	cout << "Neuen Char erstellen"<< endl;
    	cout << "\n\n\n";
    	cout << "Wähle eine Klasse :" << endl << "  - Magier" << endl<< "  - Krieger" << endl << "  - Bogensch"<<ue<<"tze" << endl;
    	string chara;
    	cin >> chara;
    
    	if(chara == "Magier"){  char_class="Magic";}
    	else if(chara == "Krieger"){char_class="Warrior";}
    	else if(chara == "Bogenschuetze"){char_class="Archer";}
    	else{cout << "Diese Klasse existiert nicht"<< endl; choose_class();}
    
    	choose_rass();
    }
    
    void choose_rass()
    {
    
    	system("cls");
    	cout << "Wähle eine Rasse :" << endl << "  - Mensch" << endl<< "  - Oger" << endl << "  - Elbe" << endl;
    	string chara;
    	cin >> chara;
    
    	if(chara == "Mensch"){   char_rass="Human";}
    	else if(chara == "Oger"){  char_rass="Oger";}
    	else if(chara == "Elbe"){  char_rass="Elb";}
    	else{cout << "Diese Rasse existiert nicht"<< endl; choose_rass();}
    
    	createDataBase_Player();
    
    }
    
    void createDataBase_Player()
    {
    
        fstream Player_db("Player_db(static).db", ios::out);
    
    	Player_db << "[Player_Config]" << endl;
    	Player_db << "Class= " <<char_class << endl;
    	Player_db << "Rass= " <<char_rass << endl;
    
    	Player_db.close();
    	accept_char_choose();
    }
    
    void accept_char_choose()
    {
    	system("cls");
    	cout << "Deine Charakter Informationen :" << endl;
    	cout << "Class= " << char_class << endl;
    	cout << "Rass= " << char_rass << endl;
    
    	cout << "\n" << "Ist das richtig ? <y/n>" << endl;
    
    	string input;
    
    	input = _getch();
    	if(input == "n"){choose_rass();}
    	else if(input == "y"){ set_CharAttributes(); }
    }
    
    void set_CharAttributes()
    {
    	system("cls");
    
    	cout << "Du hast "<< atr << " Skillpunkte "<< ue <<"brig" << "\n\n"<< endl; 
    
    	cout << "(1)Angriff " << Ar << endl;
    	cout << "(2)Lebenspunkte " << Lpr << endl;
    	cout << "(3)Mana " << Mr << endl;
    	cout << "(4)Langschwerter " << Lsr << endl;
    	cout << "(5)Kurzschwerter " << Sr << endl;
    	cout << "(6)Schwere R"<< ue << "stung " << Hr << endl;
    	cout << "(7)Leichte R"<< ue << "stung " << Lr << endl;
    
    	string input;
    	int cc;
    
    	cin >> input;
    
    	if(input == "1"){cin >> cc; Ar =Attack  +  cc;	atr = att_points - cc;	 set_CharAttributes();}
    	if(input == "2"){cin >> cc;Lpr =Life    +	cc;	atr =atr - cc;	 set_CharAttributes();}
    	if(input == "3"){cin >> cc;Mr =Mana    +	cc;	atr =atr - cc;	 set_CharAttributes();}
    	if(input == "4"){cin >> cc;Lsr =Longsword   +	cc;	atr =atr - cc;	 set_CharAttributes();}
    	if(input == "5"){cin >> cc;Sr =Shortsword	 +	cc;	atr =atr - cc;	 set_CharAttributes();}
    	if(input == "6"){cin >> cc;Hr =HeavyArmour +	cc;	atr =atr - cc;	 set_CharAttributes();}
    	if(input == "7"){cin >> cc;Lr =LightArmour +	cc;	atr =atr - cc;	 set_CharAttributes();}
    	//if(input == "1337"){}
    	if( atr == 0){ system("cls"); cout << "alle punkte ausgegeben" << endl; Sleep(10000);}
    
    }
    

    Sind ein paar nicht sehr schöne sachen drin , kannst du ja verbessern...

    Viel Spaß

    Edit: Hab gesehen das beim attribut vergeben was nicht ganz geht, musst du dann halt wie dus brauchst verbessern/ändern



  • Wo soll ich das den einfügen? xD



  • .... 😮

    Ähmmmm ja.

    #
    //das ist deine main loop
    int main(){....}
    
    //alles ab void choose_class(){... fügst du unter deiner main schleife ein / oder //in einem neuen dokument
    
    //alles was über void choose_class(){... ist fügst du bei dieser Raute ein #
    


  • Xenotack schrieb:

    Letzteres Versteh ich nicht so ganz

    Statt

    do { ... } while (lifebar > 0);
    

    würde ich

    while (lifebar > 0) { ... }
    

    schreiben.



  • Ich denke das du das auch nicht weißt :

    int main()
    { 
    .......dein code hier
    
    cout << "(N)Neues Spiel" << endl;
    	char x;
    
    	x = _getch();
    
    	if (x = 'n')
    	{
    	choose_class();
    	}
    }
    //oder irgendwie so was
    


  • Wie gesagt Anfänger ^^



  • Das hat nichts damit zu tun.Als Anfänger darfst du nicht erwarten das du so ein Spiel schreiben kannst.



  • es sollte ein zeitvertreib sein <.<



  • Anstatt deine Zeit ohne aussicht zu vertreiben , lies doch dein c++ buch.
    Ich hab nichts dagegen was du machst , ich finds echt toll und ich mach so was auch , aber wenn du nichts amchst , dan bleibst dein Spiel halt so.... 😋



  • Ich wollt mir ja das Buch
    'C++ für Spieleprogramierer' Kaufen aber als ich den Preis sah ... 😮 😮 😮



  • Das ist halt so.
    "3D-Spiele Programmierung Mit DirectX 9 und C++" von David Scherfgen hab ich mir für 40€ gekauft...
    Außerdem gibts noch andere C++ Bücher



  • Hab gehört das soll gut sein ok das kostet 30€ ^^



  • Dsa Buch was du erwähn hast kenn ich nicht , also weiß ich nicht , ob es den Preis wert ist.Das 3D Programmier buch hat um die 850 seiten und ist ziehmlich kompakt geschrieben , echt gut.Es ist den Preis schon wert...



  • Google das buch doch mal du wirst es für 30€ Bei Amazon finden ^^



  • 7xCore schrieb:

    Ich denke das du das auch nicht weißt :

    int main()
    { 
    .......dein code hier
    
    cout << "(N)Neues Spiel" << endl;
    	char x;
    
    	x = _getch();
    
    	if (x = 'n')
    	{
    	choose_class();
    	}
    }
    //oder irgendwie so was
    

    Genau, irgendwie.

    int main(){ 
    
    //.......dein code hier
    
    cout << "[N] Neues Spiel" << endl;
    
    	if (getche() == 'n')// Muss == und nicht =, getche() (oder getch())finde   ich hier praktischer        
    	    choose_class();
    }
    

    edit: Man könnte im Menü auch eine switch/case Abfrage starten, ist sehr viel Praktischer


Anmelden zum Antworten