Stromnetzressourcenkosten
Einführung
Im Brettspiel Power Grid ist es ein wesentlicher Bestandteil des Spiels, Ressourcen zu kaufen, um Kraftwerke zu tanken. Es gibt vier Arten von Ressourcen, die im Spiel verwendet werden (fünf, wenn Sie erneuerbare Energien einbeziehen, aber dafür können Sie offensichtlich keine Ressourcen kaufen). Dies sind Kohle, Öl, Müll und Uran. Der Ressourcenmarkt sieht folgendermaßen aus:
1---- | 2---- | 3---- | 4---- | 5---- | 6---- | 7---- | 8---- | 10 | 12
CCC | CCC | CCC | CCC | CCC | CCC | CCC | CCC | U | U
OOO U | OOO U | OOO U | OOO U | OOO U | OOO U | OOO U | OOO U | 14 | 16
GGG | GGG | GGG | GGG | GGG | GGG | GGG | GGG | U | U
Wenn Rohstoffe gekauft werden, werden sie von der linken Seite des Marktes genommen, wo sie am billigsten sind. Wenn neue Ressourcen zum Markt hinzugefügt werden, werden sie von rechts hinzugefügt. Wie zu sehen ist, führt dies zu einem Gleichgewicht zwischen Angebot und Nachfrage. Wenn in jeder Runde mehr Ressourcen eines bestimmten Typs gekauft als nachgefüllt werden, steigt der Preis für diese Ressource. In ähnlicher Weise verringern sich die Kosten, wenn sie geringer sind.
Kohle, Öl und Müll verteuern sich gleichermaßen, während Uran viel schneller anwächst. Eine einzelne Einheit einer Nicht-Uran-Ressource kostet 8 - floor((<units available> - 1) / 3). Eine einzelne Einheit Uran kostet, 13 - <units available>wenn 5 oder mehr Einheiten verfügbar sind, und 18 - (2 * <units available>)ansonsten.
Zum Beispiel stehen zu Beginn des Spiels alle 24 Einheiten Kohle zum Kauf zur Verfügung. Wenn der erste Spieler 4 Einheiten Kohle kaufen möchte, kosten die ersten drei Einheiten jeweils 1 und die vierte 2, sodass die Gesamtkosten 5 betragen. Dadurch bleiben 20 Einheiten verfügbar. Wenn der zweite Spieler auch 4 Einheiten Kohle kaufen möchte, sind die Kosten (2 * 2 + 2 * 3) = 10.
Die Herausforderung
Ihre Herausforderung besteht darin, ein Programm oder eine Funktion zu schreiben, die die Kosten für den Kauf einer bestimmten Menge einer bestimmten Ressource berechnet, vorausgesetzt, dass eine bestimmte Menge dieser Ressource auf dem Markt vorhanden ist.
Ihre Einreichung sollte in jedem vernünftigen Eingabeformat und in beliebiger Reihenfolge die folgenden Parameter akzeptieren:
- Der Ressourcentyp - garantiert einer von [C, O, G, U].
- Die Menge dieser Ressource, die auf dem Markt vorhanden ist - garantiert eine nicht negative ganze Zahl. Wenn der Ressourcentyp nicht U ist, ist er nicht größer als 24. Wenn der Ressourcentyp U ist, ist er nicht größer als 12.
- Die Menge dieser Ressource, die ein Spieler kaufen möchte - garantiert eine nicht negative ganze Zahl, die kleiner oder gleich der Menge ist, die bereits auf dem Markt vorhanden ist.
Die Ausgabe sollte die Kosten der angeforderten Ressourcen sein.
Zusätzliche Regeln
- Die angegebenen Formeln dienen nur zur Veranschaulichung. Sie können jede Methode zur Berechnung der von Ihnen gewünschten Kosten verwenden.
- Die Buchstabencodes für die verschiedenen Ressourcentypen (C, O, G, U) können durch ihre Kleinbuchstaben ersetzt werden. Sie können die Buchstaben auch durch Zahlen ersetzen, entweder in der Form
C=0, O=1, G=2, U=3oderC=1, O=2, G=3, U=4. - Das ist Code-Golf , also gewinnt die kleinste Einsendung in Bytes.
- Wenn für Ihre Übermittlung die Eingabe in einer anderen Reihenfolge oder einem anderen Format als im vorherigen Abschnitt angegeben erforderlich ist, sollten Sie Details angeben.
Testfälle
Testfallformat:
resource type, amount in market, amount to buy
> result
Testfälle:
C, 24, 4
> 5
C, 20, 4
> 10
O, 3, 3
> 24
U, 1, 1
> 16
C, 1, 1
> 8
G, 0, 0
> 0
O, 10, 7
> 44
U, 12, 4
> 10
G, 11, 4
> 22
f(G, 11, 4) = 22und f(O, 10, 7) = 44.

f("O",1,5)?