Dann brauchts ja netmal ne Liste?
Det xml hat nen Eintrag isTradeable und nen Eintrag Nahrung/Luxus/sonstige. Da würd ich einfach sowas hier machen:
Code:
define getBaseTradeValue(res)
if isTradeable(res):
switch type(res):
case food: return 10
case happy: return 30
case strategic: return 40
define getTradeValue(res, origin, destination)
value = getBaseTradeValue(res)
if type(res)==strategic && available(res, destination):
value /=2
if locallyAvailable(res, destination):
value = 0
value += tradeRouteValue(origin, destination)
return value
(Ich hab keine Ahnung, wie die Funktionen richtig heißen)
@Methoden oder nicht:
da würd ich dem JIT vertrauen, dass er Overhead durch Methodenaufrufe weitestgehend weglässt. Ich mag Boggys Weg, sobald an mehreren Stellen auf die Liste zugegriffen wird. Weil man eben zentral ändern kann, wenn man das System ändert - z.B. auf SDK, wo Boggys Funktion dann plötzlich ihre Werte aus der DLL bekommen könnte.
Ansonsten hat Pie natürlich recht, Konstanten sollten oben in der Datei definiert werden. Hier also die Definition der Liste (wenn die denn nötig ist) im Init-Block und dann ne Funktion, die nur return x in list beinhaltet, solang wir keine komplexere Funktionalität benötigen.