Il gioco da tavolo Terra Mystica ha delle meccaniche molto interessanti per una delle risorse primarie, il potere. Invece di guadagnare e spendere unità di potere da una banca, ogni giocatore inizia il gioco con esattamente 12 unità di potere che sono distribuite su tre "ciotole", che sono etichettati I, II e III. Guadagnare e spendere potere sposta semplicemente il potere tra queste ciotole:
- Per spendere un'unità di potere, spostala dalla ciotola III alla ciotola I (a condizione che tu abbia un'unità nella ciotola III).
- Quando ottieni un'unità di potere, se c'è un'unità nella ciotola I, spostala nella ciotola II. Se non ci sono unità nella ciotola I, ma c'è un'unità nella ciotola II, spostarla nella ciotola III. Se tutte le unità sono già nella ciotola III, non succede nulla.
- Quando guadagni o spendi più unità contemporaneamente, vengono elaborate un'unità alla volta.
Ecco un esempio Ad esempio, un giocatore inizia con la seguente distribuzione di energia (indicata in ordine I | II | III
):
5 | 7 | 0
Il loro potere cambia come segue se guadagnano e spendono il potere alcune volte:
5 | 7 | 0
Gain 3 ==> 2 | 10 | 0
Gain 6 ==> 0 | 8 | 4 (move 2 power from I to II,
then the remaining 4 from II to III)
Gain 7 ==> 0 | 1 | 11
Spend 4 ==> 4 | 1 | 7
Gain 1 ==> 3 | 2 | 7
Spend 7 ==> 10 | 2 | 0
Gain 12 ==> 0 | 10 | 2 (move 10 power from I to II,
then the remaining 2 from II to III)
Gain 12 ==> 0 | 0 | 12 (the two excess units go to waste)
Il tuo compito è calcolare il risultato di uno di questi eventi di guadagno o spesa.
La sfida
Ti vengono dati quattro numeri interi come input. I primi tre, I
, II
, III
, rappresentano la quantità di potenza in ciascuna delle tre ciotole. Saranno non negativi e si sommeranno a 12. Il quarto numero P
è la quantità di potere guadagnato o speso e sarà compreso nell'intervallo [-III, 24]
(quindi puoi presumere che il giocatore non proverà mai a spendere più potere di quello che possono attualmente, ma potrebbero guadagnare più potere di quello di cui hanno bisogno per spostare tutto il potere nella ciotola III).
Puoi prendere questi numeri in qualsiasi ordine coerente, come argomenti separati, come un elenco di numeri interi o come una stringa contenente questi numeri interi. È anche possibile prendere P
come un argomento, come I
, II
, III
come argomento lista separata.
Si dovrebbe uscita tre numeri interi I'
, II'
, III'
che rappresentano la quantità di potenza in ogni ciotola dopo P
le unità sono state acquisite o spesi, seguendo le regole spiegate sopra.
È possibile scrivere un programma o una funzione e utilizzare uno dei nostri metodi standard per ricevere input e fornire output.
È possibile utilizzare qualsiasi linguaggio di programmazione , ma si noti che queste scappatoie sono vietate per impostazione predefinita.
Questo è code-golf , quindi la risposta valida più breve - misurata in byte - vince.
Casi test
I II III P => I' II' III'
5 7 0 3 => 2 10 0
2 10 0 6 => 0 8 4
0 8 4 7 => 0 1 11
0 1 11 -4 => 4 1 7
4 1 7 0 => 4 1 7
4 1 7 1 => 3 2 7
3 2 7 -7 => 10 2 0
10 2 0 12 => 0 10 2
0 10 2 12 => 0 0 12