Funktion + main ergibt net das was ich will -.- bitte helfen ;)



  • moin

    ich hab die funktion in eine headadatei gepackt:

    int angriff(int hp, int atk)
    {
    	int sum = hp - atk;
    	std::cout<<hp;
    	return sum;
    }
    

    dann in de main hab ich folgendes gschriebe;

    #include <iostream>
    #include "options.h"
    
    int main()
    {
    	std::cout<<"Beginn ..."<<std::endl;
    	int zufall = 1;
    	int atk = 100, hp = 100;
    	int orc_atk = 40, orc_hp = 200;
    	std::cout<<"HP: "<<hp<<std::endl;
    	std::cout<<"Angriff: "<<atk<<std::endl;
    	std::cout<<"\n"<<"Ork-HP: "<<orc_hp<<std::endl;
    	std::cout<<"Ork-Angriff: "<<orc_atk<<std::endl;
    	if(zufall == 1)
    	{
    		std::cout<<"Ork greift an ..."<<std::endl;
    		angriff(hp, orc_atk);
    		std::cout<<"\n\n\nHP: "<<hp<<std::endl;
    	} else {
    		std::cout<<"Du greifst an ..."<<std::endl;
    		angriff(orc_hp, atk);
    	}
    
    	return 0;
    }
    

    doch wenn ihc nähmlich das Leben ,dass noch vom Angriff übrig ist, ausgeben will,kommt da noch immer das gleiche leben(standard, das anfangsleben bzw. anfangshp)

    bitte um hilfe 😉



  • übergib' die funktionsargumente als referenz, vielleicht geht's dann...
    🙂



  • Du gibst zwar irgendwas aus angriff() zurück, lässt es aber einfach verfallen.

    @vista: Bei genauerem Hinsehen fällt auf, dass das nichts bringt wenn die Parameter kein bißchen in der Funktion verändert werden 😉

    MfG SideWinder



  • SideWinder schrieb:

    @vista: Bei genauerem Hinsehen fällt auf, dass das nichts bringt wenn die Parameter kein bißchen in der Funktion verändert werden 😉

    hast recht, ist mir auf den ersten blick nicht aufgefallen...



  • short attac(const short health_points, const unsigned short attac)
    {
        short sum = health_points - attac;
    	std::cout << sum << std::endl;
        return sum;
    }	
    
    const unsigned short human_health_points	= 100;
    const unsigned short human_attac_damage		= 100;
    const unsigned short orc_health_points		= 200;
    const unsigned short orc_attac_damage		= 40;
    
    int main()
    {
    	short hp_human = human_health_points;
    	short hp_orc = orc_health_points;
        std::cout << "Beginn ..." << std::endl;
        std::cout << "Human - HP: "<< hp_human << std::endl;
        std::cout << "Human - Attac: " << human_attac_damage << std::endl;
        std::cout << "Ork - HP: " << hp_orc << std::endl;
        std::cout << "Ork - Attac: " << orc_attac_damage << std::endl;
    
    	std::cout<<"Ork greift an ..."<<std::endl;
    	hp_human = attac(hp_human, orc_attac_damage);
    
    	std::cout << "Human - HP: " << hp_human << std::endl;
    
        return 0;
    }
    

    ist nur die Frage wo der Sinn ist ...


Anmelden zum Antworten