Alcuni amici e io abbiamo giocato a DSA (un gioco di ruolo prevalentemente tedesco molto simile a D&D). Mi chiedevo quali fossero le possibilità di passare i tiri, quindi dovrai scrivere del codice per calcolarlo.
Il tuo personaggio è definito da statistiche (da 8 a 14) e (TV) valori di talento (da 0 a 21). Per ora useremo l'arrampicata come esempio.
Talent test
Un talento (arrampicata) assomiglia a questo: (Coraggio-Destrezza-Forza) TV: 7. Per testare un personaggio su un talento tira su queste statistiche con un dado a 20 facce e prova a scendere sotto o uguale alla statistica, se lo fai bene. In caso contrario, è possibile utilizzare i punti TV per ridurre il rotolo con un rapporto di 1: 1.
Esempio
Un cacciatore con coraggio 12, destrezza 13 e forza 14 sta cercando di arrampicarsi su un albero, la sua TV è 7.
Tira un 3, il valore è inferiore a 12, quindi ha superato quel tiro.
Quindi lancia un 17, 17 è 4 in più di 13, quindi 4 TV si abituano con 3 a sinistra.
Per l'ultimo tiro ottieni un 14, posto sul passato.
Tutti i tiri sono passati e il cacciatore è riuscito a scalare l'albero, 3 TV sono rimaste.
Ingresso
4 valori in qualsiasi formato tu scelga, presi dall'input standard della tua lingua. Tuttavia, deve essere in questo ordine.
Ad esempio 12 13 14 7
o 12,13,14,7
o come un array {12,13,14,7} o misto[12, 14, 8], 3
Produzione
La possibilità di quanto spesso passano i rulli.
Ad esempio (per i valori sopra)0.803
12,14,8,3 = 0.322
11,11,12,11 = 0.840
Per il bonus: Anche in questo caso la formulazione non è il problema, emettilo come preferisci ma nel seguente ordine:
failed/with 0/with 1/with 2/with 3/with 4/with 5/with 6/with 7
e così via fino a quando non rimane più TV.
12,13,14,7 = 0.197/0.075/0.089/0.084/0.078/0.073/0.068/0.063/0.273
12,14,8,3 = 0.678/0.056/0.051/0.047/0.168
Sfida, regole e bonus
Dovresti scoprire, dato l'input, la possibilità di passare i rotoli con un'accuratezza del + - 0,5%.
-20% se il tuo programma offre anche la possibilità di passare con la
n
TV (vedi output).Questo è code-golf , quindi vince il codice più breve in byte!
[12, 14, 8], 3
?