Mietitore wrote:
Eccomi qua.
Spulciamo il topic Inglese...
Per quel poco che capisco di inglese "tecnico", questo topic è una analisi del codice che regola il tempo di ciclo delle miniere e sul fatto che due miniere con
Rendite X e Y producano separatamente più di quanto non produca una miniera con
Rendita=X+Y... fatto curioso che sembra dire: l'unione fa la forza.
Credo che questa sia la frase chiave...
For example, yields 12 and 14 produce almost as much as one yield 27. Four yield 8 mines produce almost as much as one yield 35 mine
Quindi nella tabella fa vedere che al crescere dello Yield ci sia un dato, chiamato
Fab_equiv, che cresce non linearmente (ma tipo "parabola" per intenderci).
L'equazione
Basic_cycletime = rounddown( BASETIME / (Yield + 1) ) + 1 seconds
che poi è quella che dici tu, non serve per calcolare il ciclo di una determinata miniera ma per rendere equiparabili tutte le miniere e poterle studiare.
Infatti, come i campionamenti mostrano, quando il tempo di ciclo di una determinata miniera diventa inferiore a un minuto, con un espediente (aumento di risorse necessarie e della relativa produzione) il ciclo viene "riallungato".
Frase chiave:
Code:
Multiplier = rounddown( 59.9 / Basic_cycletime ) + 1
Cycletime = Multiplier * Basic_cycletime
...
The purpose of the Multiplier is to prevent the cycle time to be shorter than 60 seconds.
In definitiva l'equazione T = ( (25 * K) / (Y + 1) ) + 1 è solo il primo passaggio per calcolare il tempo di ciclo di una Miniera.
------ ° ------ ° ------ ° ------ ° ------ ° ------ ° ------ ° ------
Ecco
L'ESPEDIENTE che rende non lineare il rapporto:
Codice
Basic_cycletime = rounddown( BASETIME / (Yield + 1) ) + 1 seconds
Multiplier = rounddown( 59.9 / Basic_cycletime ) + 1
Cycletime = Multiplier * Basic_cycletime
Products per cycle = Multiplier * Fab_size
Proviamo a decodificare riga per riga:
INIZIALIZZAZIONE DELLE COSTANTI. There is a BASETIME, which is 2400 seconds (40 minutes) for Silicon and 600 seconds (10 minutes) for Ore. Fab_size is 2 for M, and 5 for L.
Si stabilisce che a seconda del tipo di miniera vi sia un primo coefficiente chiamato
BASETIME pari a 2400 per Silicon e 600 per Ore (usato nella prima riga di codice) e un secondo coefficiente chiamato
Fab_size che è pari a 2 per miniere M e 5 per miniere L (usato nell'ultima riga).
Inoltre facendo la proporzione 2400 : 600 = 96: 24 = 4 : 1 si capisce il dato da te giustamente citato:
K=96 per le miniere di silicio
K=24 per le miniere di minerale
per cui la parte (25 * K) della equazione diventa 2400 per Silicio e 600 per Minerale (appunto il
basetime).
Nota: non si capisce il perchè la riduzione ai minimi termini non sia stata completa visti che (25*K) con K = 24 o 96 è uguale a (600*K) con K = a 1 o 4 (coefficienti più "eleganti").
riga 1. Basic_cycletime = rounddown( BASETIME / (Yield + 1) ) + 1 seconds
Solo a questo punto si può fare la prima equazione (la famosa T = (
Basetime / (Y + 1) ) + 1) del codice e determinare il
Basic_cycletime che verrà utilizzato nei passaggi seguenti.
riga 2. Multiplier = rounddown( 59.9 / Basic_cycletime ) + 1
Si imposta una nuova variabile, dipendente dal
Basic_cycletime sopra definito, chiamata
Multiplier che fa si che il tempo di ciclo non cada mai sotto i 60 secondi. I motivi di questo passaggio sono oscuri, ma sembrano più un fatto di stile piuttosto che una cosa fondamentale.
Unico motivo: non si vuole far produrre alcuna miniera in meno di un minuto.
Notare che in questa riga di codice e in quella prima appare una funzione (
rounddown) che è stata precedentemente implementata o che è gia compresa nel linguaggio utilizzato. Dovrebbe trattarsi di un arrotondamento.
riga 3. Cycletime = Multiplier * Basic_cycletime
Ecco finalmente il tempo di ciclo che vediamo nelle "informazioni" della miniera nel gioco!
riga 4. Products per cycle = Multiplier * Fab_size
Finalmente ricaviamo i prodotti per tempo di ciclo.
------ ° ------ ° ------ ° ------ ° ------ ° ------ ° ------ ° ------
Riassumendo:
data una miniera, per ricavare i prodotti per tempo di ciclo (N.B.: non per unitò di tempo!) sono necessari 4 passaggi che presuppongono lo sviluppo di una funzione predefinita (
rounddown) e la conoscenza di una costante (
BASETIME).
Praticamente, per conoscere questo dato, o si ha una tabella o si fa prima ad installare una miniera e a guardarne i dettagli.
Quella parte di codice serve per impostare la nuova quantità di risorse e la nuova capacità produttiva quando il tempo di ciclo, che altrimenti andrebbe sotto i 60 secondi, viene reincrementato al crescere della Rendita.
Questo affinchè si mantenga una giusta logica secondo la quale
"all'aumentare della rendita, la capacità produttiva per unità di tempo aumenta".
Non so se ho interpretato bene la cosa.
Discussione molto interessante comunque: GRAZIE
Garga-Potter!