Forum: PC-Programmierung C# Methode für Kampfabfrage


von Luca S. (lucast)


Lesenswert?

Nabend,

wenn ich eine Kampfabfrage, also ein Wertevergleich zwischen zwei 
Objekten machen will und am Ende die Funktion z.B. den Wert Lebenspunkte 
zurückgeben soll, wie mache ich das am schlausten?
Sprich, sollte die Funktion einfach die Werte der Objekte aufrufen und 
ich mach die Berechnung, also welche Werte sind höher und wieviel von 
Lebenspunke werden dann abgezogen, dann mit switch-case oder so?
Vorschläge? :)

EDIT: Die Variable "Lebenspunkte" muss dann ja auch überschrieben 
werden, damit der Abzug gespeichert wird, wie mache ich das?

Danke schonmal und Entschuldigung für die Newbie-Frage :D

: Bearbeitet durch User
von Marc O. (Gast)


Lesenswert?

Hallo,

was möchtest du denn genau tun? Verstehe ich das richtig, dass du 2 
Objekte hast und diese, auf Basis von einem Attribut "Lebenspunkte", 
miteinander vergleichen willst?

Und was soll nach dem Vergleich noch geschehen?

mfg, OP

von Luca S. (lucast)


Lesenswert?

Nein nein, die Objekte haben mehrere Attribute, z.B. Angriffsstärke und 
Rüstung und am Ende wird der Schaden der noch übrig bleibt von den 
Lebenspunkten abgezogen (stark vereinfacht z.B. 4 Angriff 2 Verteidigung 
= -2 auf Leben)
D.h. einmal muss diese Berechnung geschehen und dann die Überschreibung 
der Variable auf den neuen Wert. (Anstatt 14LP nur noch 12)

von Marc O. (Gast)


Lesenswert?

Dann mach doch einfach ne Methode angriff(int), der du die 
Angriffspunkte des Angreifers übergibst und die Berechnung, wie das 
Überschreiben, führt der Angegriffene selbst aus. Also das wäre jetzt ne 
einfache Methode, aber halt auch nicht soo schön..

Schöner wäre es mit einem übergeordnetem "Manager", damit quasi kein 
Spieler einfach einen Angriff nicht von seinen Punkten abzieht.

Wenn du übrigens zwei Objekte vergleichst und dabei immer der selbe Wert 
abgeglichen wird, gibt es auch Operatorüberladung. Vielleicht kannst du 
das ja auch mal gebrauchen bei deinem "Spiel"?
http://openbook.galileocomputing.de/visual_csharp_2010/visual_csharp_2010_07_003.htm

mfg, OP

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.