Ich würde dir tatsächlich raten lieber alles untereinanderzuschreiben und weniger zu verschachteln. Ist natürlich immer persönliche Vorliebe. Ich mache dies eben am liebsten genauso, weil es für mich übersichtlicher ist und weniger Codezeilen benötigt. Zudem rutscht das ganze beim Verschachteln immer weiter nach rechts. Gerade bei sehr vielseitigen Abfragen wird das kritisch.
Das Problem mit dem Überschreiben von bereits erfüllten Bedingungen löst du ganz simpel mit Labeln.
1)
2)
Das sind nun zwei verschiedene Codes.
Wenn man nur einen Helden in der Party haben kann, dann nimm das erste, da es kürzer ist.
Wenn man mehrere Partymitglieder haben kann, dann nimm das zweite. Der Unterschied ist einfach, dass dort nicht nur gefragt wird, ob ein Held in der Party ist, sondern auch, ob dieser ein Schild trägt. Also die Variable größer als 0 ist, da 0 kein Schild bedeutet. Dadurch würde solange das Inventar deiner Party überprüft, bis du einen Schild gefunden hast oder eben bereits alle Partymitglieder dran waren.
Es geht dir ja darum, ob ein Held in der Party einen Schild ausgerüstet hat. Wenn du das mal mit "ja" beantworten kannst, dann interessiert dich der Rest der Party nicht und du überspringst die übrigen Abfragen.
Label sind sehr nützlich und leicht zu verstehen. Teste es einfach mal. Das wirst du sicher mal gut gebrauchen können.
So sieht alles gleich aus und habe damit einzelne Blöcke, die eben alles dasselbe machen. Jeder steht für sich und ich kann es so besser erkennen. Persönlich verschachtel ich in der Regel nur, wenn es nötig ist. Wenn z.B. mehrere Bedingungen gleichzeitig erfüllt sein müssen, wie, wenn bestimmte Helden in der Party sein müssen, andere aber nicht. Bei deinem Beispiel aber, ist es nicht nötig. Du möchtest es ja nur bei einem der Helden wissen und der Rest wird überflüssig.
Für mich funktioniert es so am besten. Ich habe ebenso eher wenig Erfahrung im Programmieren, daher kann ich dich in der Hinsicht schon verstehen. Aber du wirst für dich selbst rausfinden müssen, was dir am meisten liegt.






Zitieren
