einen wert als maximalzahl?

zorro2711

Grünschnabel
Hallo
ich habe ein Problem. und zwar will ich eine zahl nehmen die ich als maximalzahl verwende.
Am besten ich erkläre es an einem beispiel.
Also folgendes Szenario ein Held mit einer hp von 100 (das Soll die maximal zahl sein) ein Monster Macht schaden und zieht den Held 15 hp ab.
So jetzt hat der Held noch 85 hp. Der Held bekommt ein tank der 20 hp heilt So nun hätte der Held 105 hp aber ich will das bei 100 Schluss ist. Ich habe leider kein Plan wie ich das machen kann
ich hoffe mir kann bitte geholfen werden

Code:
#include <iostream>
using namespace std;

int main()
{
	int hp =100;  //100 soll nicht überschritten werden
	int monsterdmg =15; // schaden des monsters
	int trank =20; // füllt die hp wieder auf

	cout<< "du hast " << hp << " HP";
	cout<<"Monster kreift an"<<endl;
	hp-=monsterdmg;		//hp jetzt gleich 85
	cout<<"du hast jetzt noch " <<hp <<" HP"<<endl; //hp 85 wird ausgegeben
	cout<<"du nimmst einen TRank"<<endl;
	hp+=trank;			//Hp hat jetzt 105
	cout<<"du hast jetzt wieder" <<hp <<"HP"<<endl;  //es soll aber nicht mehr als 100 sein


system("pause");
return (0);
}
 
Hi,
was hälst du davon, nachdem etwas hinzugefügt wurde zu überprüfen ob dir Zahl größer als 100 ist und wenn ja einfach HP - 100 abziehen. Vlt. gibt's ne einfachere Möglichkeit, aber das sollte schon mal funktionieren.
 
also wenn ich das jetzt richtig entschlüssle dann lautet die formel:
wenn hp größer als 100 ist führe die schleife aus; hp=hp-hp-100

oder irre ich mich da ****
(sry das ich so viele fragen stelle aber wenn ich was nicht weiß stelle ich eine frage damit ich es lerne ^^)
 
Lieber eine Frage zu viel als zu viel. :)
Es ist zwar keine Schleife, aber egal, ja du hast Recht; um das ganze noch etwas zu verdeutlichen kannst du es ja auch so schreiben: hp = hp-(hp-100);
Wenn du es anders schreibst bewirkt es das Gegenteil. (wegen Minusklammer).
Funktioniert es denn jetzt? Ich kann's leider nicht ausführen, weil ich nur C++ programmiere und keine Lust habe, den Code umzuschreiben :p
 
Bei mir klappt's. Aber tu mir bitte einen Gefallen und verwende nicht system("pause").
system() würde ich generell nur im Notfall benutzen, weil es nicht auf jedem Computer funktioniert (abgesehen davon, dass es nicht jeder Virenscanner mag). Also lieber getchar(); verwenden oder du bindest conio.h ein und nimmst getch();. Und wenn du willst mach halt davor noch ein cout << "Enter drücken oder du kriegst Probleme!", ne Spaß
 
Sorry, wenn ich dich ein bisschen verwirrt habe, es ist natürlich viel einfacher es einfach so zu machen :D
C++:
if (hp > 100) {
hp = 100;
}
 
Zuletzt bearbeitet von einem Moderator:
so der code sieht jetzt so aus

Code:
#include <iostream>

using namespace std;

int main()
{
	int hp =100;  //100 soll nicht überschritten werden
	int monsterdmg =15; // schaden des monsters
	int trank =20; // füllt die hp wieder auf

	cout<< "du hast " << hp << " HP";
	cout<<"Monster kreift an"<<endl;
	hp-=monsterdmg;		//hp jetzt gleich 85
	cout<<"du hast jetzt noch " <<hp <<" HP"<<endl; //hp 85 wird ausgegeben
	cout<<"du nimmst einen TRank"<<endl;
	hp+=trank;			//Hp hat jetzt 105
	if (hp > 100) 
	{
		hp=hp-(hp-100);  // kann ich dass auch so schreiben oder muss ich das  in dieser komischen form schreiben (also hp -= hp-100 ) weil da komme ich immer durch einander ^^
	}
	cout<<"du hast jetzt wieder" <<hp <<"HP"<<endl;  //es soll aber nicht mehr als 100 sein


system("pause");
return (0);
}
 
Zurück