fix percentage bar fill
This commit is contained in:
parent
29e3e70712
commit
ad29f04660
12
README.md
12
README.md
@ -1,10 +1,12 @@
|
|||||||
# `cup` - CamelUp probability calculator
|
# `cup` - CamelUp probability calculator
|
||||||
|
|
||||||
This tool calculates probable outcomes for the board game CamelUp.
|
This tool calculates probable outcomes for the board game CamelUp. It can
|
||||||
It can calculate all possible outcomes for a single game leg in about 5ms, so effectively instantaneously.
|
calculate all possible outcomes for a single game leg in about 5ms, so
|
||||||
Full-game calculations take a little bit longer and are not exact (since it isn't practical to simulate all possible full game states.)
|
effectively instantaneously. Full-game calculations take a little bit longer
|
||||||
However it can easily simulate a million random games in about 80ms in the worst case, which should provide estimates accurate to within about 0.2%.
|
and are not exact (since it isn't practical to simulate all possible full
|
||||||
(Numbers from running on a Ryzen 3700X.)
|
game states.) However it can easily simulate a million random games in about
|
||||||
|
80ms in the worst case, which should provide estimates accurate to within
|
||||||
|
about 0.2%. (Numbers from running on a Ryzen 3700X.)
|
||||||
|
|
||||||
```
|
```
|
||||||
Usage:
|
Usage:
|
||||||
|
7
cup.nim
7
cup.nim
@ -7,11 +7,12 @@ when isMainModule:
|
|||||||
b.init
|
b.init
|
||||||
b.setState(config.state, [])
|
b.setState(config.state, [])
|
||||||
b.diceRolled = config.diceRolled
|
b.diceRolled = config.diceRolled
|
||||||
echo b.showSpaces(1, 16)
|
|
||||||
let legScores = b.getLegScores
|
let legScores = b.getLegScores
|
||||||
|
let gameScores = b.randomGames(1_000_000)
|
||||||
|
|
||||||
|
echo b.showSpaces(1, 16)
|
||||||
echo "\nCurrent leg probabilities:"
|
echo "\nCurrent leg probabilities:"
|
||||||
echo legScores.showPercents()
|
echo legScores.showPercents()
|
||||||
|
|
||||||
let gameScores = b.randomGames(1_000_000)
|
|
||||||
echo "\nFull game probabilities (1M simulations):"
|
echo "\nFull game probabilities (1M simulations):"
|
||||||
echo gameScores.showPercents()
|
echo gameScores.showPercents()
|
||||||
|
2
ui.nim
2
ui.nim
@ -112,7 +112,7 @@ proc showPercents*(scores: ScoreSet): string =
|
|||||||
var bar = repeat(" ", 20)
|
var bar = repeat(" ", 20)
|
||||||
let percentage = round(pct * 100, 2)
|
let percentage = round(pct * 100, 2)
|
||||||
# populate the progress bar
|
# populate the progress bar
|
||||||
let barFill = int(round(pct * 100 / 20))
|
let barFill = int(round(pct * 20))
|
||||||
for i in 0 ..< barFill:
|
for i in 0 ..< barFill:
|
||||||
bar[i] = '='
|
bar[i] = '='
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user