Documentation ¶
Overview ¶
BCDiceコマンドの実行処理のパッケージ。 構文解析で得たコマンドのノードを評価して、最終的な出力のメッセージを生成することができる。
このパッケージにおいて、コマンドの種類ごとに実行の仕方を定義する。
Index ¶
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Result ¶
type Result struct { // ゲーム識別子 GameID string // メッセージの部分の配列 MessageParts []string // 振られたダイス RolledDice []dice.Die // 成功判定の結果 SuccessCheckResult SuccessCheckResultType // シークレットロールかどうか IsSecret bool }
コマンドの実行結果の構造体
func Execute ¶
Execute は指定されたコマンドを実行する。
node: コマンドのノード, gameID: ゲーム識別子, evaluator: 評価器。
Example (SumRoll) ¶
加算ロールコマンドの例。
// 構文解析する root, parseErr := parser.Parse("ExampleExecute_sumRoll", []byte("(2*3-4)d6-1d4+1")) if parseErr != nil { return } // コマンドと認識されたことを確認する commandNode, rootIsCommand := root.(*ast.Command) if !rootIsCommand { return } // コマンドを実行する dieFeeder := feeder.NewQueue([]dice.Die{{6, 6}, {5, 6}, {2, 4}}) evaluator := evaluator.NewEvaluator( roller.New(dieFeeder), evaluator.NewEnvironment(), ) result, execErr := Execute(commandNode, "DiceBot", evaluator) if execErr != nil { return } // 結果のメッセージを出力する fmt.Println(result.Message())
Output: DiceBot : (2D6-1D4+1) > 11[6,5]-2[2]+1 > 10
func (*Result) AppendMessagePart ¶
AppendMessagePart はメッセージの部分を追加する。
func (*Result) JoinedMessageParts ¶
JoinedMessageParts は、メッセージの部分を結合したものを返す。
type SuccessCheckResultType ¶
type SuccessCheckResultType int
成功判定の結果の型
const ( // 成功判定結果:未指定(既定値) SUCCESS_CHECK_UNSPECIFIED SuccessCheckResultType = iota // 成功判定結果:成功 SUCCESS_CHECK_SUCCESS // 成功判定結果:失敗 SUCCESS_CHECK_FAILURE )
func (SuccessCheckResultType) String ¶
func (r SuccessCheckResultType) String() string
String は成功判定結果を文字列として返す。
Click to show internal directories.
Click to hide internal directories.