Costi delle risorse della rete elettrica
introduzione
Nel gioco da tavolo Power Grid , una parte integrante del gioco è l'atto di acquistare risorse per alimentare le tue centrali elettriche. Esistono quattro tipi di risorse utilizzate nel gioco (cinque, se includi energia rinnovabile, ma ovviamente non puoi acquistare risorse per questo). Questi sono carbone, petrolio, immondizia e uranio. Il mercato delle risorse si presenta così:
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
Quando le risorse vengono acquistate, vengono prelevate dalla sinistra del mercato, dove sono più economiche. Quando nuove risorse vengono aggiunte al mercato, vengono aggiunte da destra. Come si può vedere, questo produce un equilibrio tra domanda e offerta: se vengono acquistate più risorse di un determinato tipo di quelle che vengono rifornite ogni round, il prezzo di quella risorsa aumenterà. Allo stesso modo, se è inferiore, il costo si ridurrà.
Carbone, petrolio e immondizia aumentano tutti di costo alla stessa velocità, mentre l'uranio si ridimensiona molto più velocemente. Una singola unità di una risorsa non uranio costa 8 - floor((<units available> - 1) / 3). Una singola unità di Uranio costa 13 - <units available>se ci sono 5 o più unità disponibili e in caso 18 - (2 * <units available>)contrario.
Ad esempio, all'inizio del gioco ci sono tutte e 24 le unità di carbone disponibili per l'acquisto. Se il primo giocatore desidera acquistare 4 unità di carbone, le prime tre unità costerebbero 1 ciascuna e il 4 costerebbe 2, rendendo il costo totale 5. Questo lascia 20 unità disponibili. Se il secondo giocatore desidera acquistare anche 4 unità di carbone, il costo sarebbe (2 * 2 + 2 * 3) = 10.
La sfida
La tua sfida è quella di scrivere un programma o una funzione che calcoli il costo di acquisto di una determinata quantità di una determinata risorsa, supponendo che ci sia una determinata quantità di quella risorsa presente sul mercato.
L'invio deve accettare, in qualsiasi formato di input ragionevole e in qualsiasi ordine, i seguenti parametri:
- Il tipo di risorsa - garantito per essere uno di [C, O, G, U].
- La quantità di quella risorsa presente sul mercato - garantita come un numero intero non negativo. Se il tipo di risorsa non è U, non sarà maggiore di 24. Se il tipo di risorsa è U, non sarà maggiore di 12.
- La quantità di quella risorsa che un giocatore vorrebbe acquistare - è garantita come un numero intero non negativo che è inferiore o uguale alla quantità già presente sul mercato.
L'output dovrebbe essere il costo delle risorse richieste.
Regole aggiuntive
- Le formule fornite sono solo a scopo illustrativo, non esitate a utilizzare qualsiasi metodo di calcolo dei costi che ti piace.
- I codici lettera per i diversi tipi di risorse (C, O, G, U) possono essere sostituiti dai loro equivalenti minuscoli. È inoltre possibile sostituire le lettere per i numeri, nel modulo
C=0, O=1, G=2, U=3oC=1, O=2, G=3, U=4. - Questo è code-golf , quindi il più piccolo invio in byte sarà il vincitore.
- Se l'invio richiede l'inserimento in un ordine o formato diverso da quello specificato nella sezione precedente, è necessario fornire dettagli.
Casi test
Formato del test case:
resource type, amount in market, amount to buy
> result
Casi test:
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) = 22e f(O, 10, 7) = 44.

f("O",1,5)?