com.torvald → net.torvald

Former-commit-id: 375604da8a20a6ba7cd0a8d05a44add02b2d04f4
Former-commit-id: 287287c5920b07618174d7a7573f049d350ded66
This commit is contained in:
Song Minjae
2016-04-12 12:29:02 +09:00
parent 2a34efb489
commit ac9f5b5138
148 changed files with 473 additions and 524 deletions

View File

@@ -0,0 +1,47 @@
package net.torvald.random
import java.util.Random
/**
* Created by minjaesong on 16-02-03.
*/
open class FudgeDice
/**
* Define new set of fudge dice with given counts.
* @param randfunc java.util.Random or its extension
* *
* @param counts amount of die
*/
(private val randfunc: Random, val diceCounts: Int) {
/**
* Roll dice and get result.
* @return Normal distributed integer [-N , N] for diceCount of N. 0 is the most frequent return.
*/
fun roll(): Int {
var diceResult = 0
for (c in 0..diceCounts - 1) {
diceResult += rollSingleDie()
}
return diceResult
}
/**
* Roll dice and get result, for array index
* @return Normal distributed integer [0 , N] for N = 2 × DiceCounts + 1. 0 is the most frequent return.
*/
fun rollForArray(): Int {
return roll() + diceCounts
}
val sizeOfProbabilityRange: Int
get() = 2 * diceCounts + 1
/**
* @return integer randomly picked from {-1, 0, 1}
*/
private fun rollSingleDie(): Int {
return randfunc.nextInt(3) - 1
}
}