Hi,
ich habe folgendes Problem:
Es gibt verschiedene Missionsarten, die eine Einheit (in nem Browsergame) ausführen kann. Die Missionsart ist in einer Datenbank gespeichert (entweder mit einer Zahl, die für eine Mission steht, oder einem String).
Jetzt soll ein Skript dieses Feld mit der Missionsart auswerten und sagen, welche Funktion ausgeführt werden soll (z.B. Angreifen, Verteidigen, erforschen etc)
Man kann natürlich schreiben:
Aber das Problem ist, dass ich an mehreren Stellen diese Missionsart überprüfen muss. Also müsste ich dann mehrmals diese if-else-Zweige einfügen. Das ist wartungstechnisch (und bei Ergänzung von weiteren Missionsarten) recht aufwendig.
Jetzt wollte ich das Ganze in eine Zentralfunktion packen, die dann eben zurückgibt, welche Mission gestartet werden soll. Aber ich hab keine Ahnung, wie ich das umsetzen kann. Ich könnte die Funktion als String zurückgeben und per eval() ausführen lassen. Aber es könnte ja sein, dass ich manchmal andere Parameter brauche etc.
Ich weiß jetzt leider nicht mehr weiter.
Ich hoffe, mein Problem ist verständlich^^
Vielen Dank schon mal für eure Ideen
Viele Grüße,
Dennis
ich habe folgendes Problem:
Es gibt verschiedene Missionsarten, die eine Einheit (in nem Browsergame) ausführen kann. Die Missionsart ist in einer Datenbank gespeichert (entweder mit einer Zahl, die für eine Mission steht, oder einem String).
Jetzt soll ein Skript dieses Feld mit der Missionsart auswerten und sagen, welche Funktion ausgeführt werden soll (z.B. Angreifen, Verteidigen, erforschen etc)
Man kann natürlich schreiben:
PHP:
if($missionsart == 1) // tue dies;
if($missionsart == 2) // tue das;
// Oder halt mit switch()
Aber das Problem ist, dass ich an mehreren Stellen diese Missionsart überprüfen muss. Also müsste ich dann mehrmals diese if-else-Zweige einfügen. Das ist wartungstechnisch (und bei Ergänzung von weiteren Missionsarten) recht aufwendig.
Jetzt wollte ich das Ganze in eine Zentralfunktion packen, die dann eben zurückgibt, welche Mission gestartet werden soll. Aber ich hab keine Ahnung, wie ich das umsetzen kann. Ich könnte die Funktion als String zurückgeben und per eval() ausführen lassen. Aber es könnte ja sein, dass ich manchmal andere Parameter brauche etc.
Ich weiß jetzt leider nicht mehr weiter.
Ich hoffe, mein Problem ist verständlich^^
Vielen Dank schon mal für eure Ideen
Viele Grüße,
Dennis