roller

package
v0.0.0-...-3319774 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 4, 2020 License: BSD-3-Clause Imports: 3 Imported by: 0

Documentation

Overview

ダイスを振る処理のパッケージ。 DieFeederを指定できるため、ダイスの供給方法に依らずに複数個のダイスを振る処理を実行できる。

Index

Examples

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type DiceRoller

type DiceRoller struct {
	// contains filtered or unexported fields
}

ダイスローラーを表す構造体。

func New

func New(f feeder.DieFeeder) *DiceRoller

New は指定したDieFeederを使うDiceRollerを構築して返す。

func (*DiceRoller) DieFeeder

func (dr *DiceRoller) DieFeeder() feeder.DieFeeder

DieFeeder は指定したDieFeederを返す。

func (*DiceRoller) RollDice

func (dr *DiceRoller) RollDice(num int, sides int) ([]dice.Die, error)

RollDice は、sides個の面を持つダイスをnum個振り、その結果を返す。

num、sidesともに正の整数でなければならない。 この条件が満たされていなかった場合は、エラーを返す。

Example (MT19937)
dieFeeder := feeder.NewMT19937WithSeedFromTime()
dieRoller := New(dieFeeder)

// 6面ダイスを2個振る
rolledDice, err := dieRoller.RollDice(2, 6)
if err != nil {
	return nil, err
}

return rolledDice, nil
Output:

Example (Queue)
dieFeeder := feeder.NewQueue([]dice.Die{{1, 6}, {3, 6}, {5, 6}})
dieRoller := New(dieFeeder)

// 6面ダイスを3個振る
rolledDice, err := dieRoller.RollDice(3, 6)
if err != nil {
	return nil, err
}

return rolledDice, nil
Output:

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL