「BCDice/TRPGツールからの呼び出し方/ダイスロールのみ利用する場合」の版間の差分

(ページの作成:「BCDiceのダイスロール機能のみを利用する場合の呼び出し方をまとめる。 __TOC__ == ダイスロールを行う == BCDiceのダイスロー…」)
 
(0ヴ (トーク) による版 175 を取り消し)
タグ: 取り消し
 
(2人の利用者による、間の6版が非表示)
1行目: 1行目:
[[BCDice]]のダイスロール機能のみを利用する場合の呼び出し方をまとめる。
+
[[BCDice]]のダイスロール機能のみを利用する場合の、[[Ruby]]プログラムからの呼び出し方をまとめる。
  
 
__TOC__
 
__TOC__
  
== ダイスロールを行う ==
+
== BCDice関連ファイルを読み込む ==
 +
 
 +
BCDiceの機能を利用する前に、1回だけ関連ファイルを読み込む必要がある。BCDiceが配置されているディレクトリを読み込みパスに追加してから、関連ファイルを読み込む。
  
BCDiceのダイスロール機能を呼び出すための[[Ruby]]プログラムの概要を以下に示す。
 
 
<syntaxhighlight lang="ruby">
 
<syntaxhighlight lang="ruby">
 +
# BCDiceが配置されているディレクトリを読み込みパスに追加する
 
$LOAD_PATH.unshift('/path/to/BCDice/src')
 
$LOAD_PATH.unshift('/path/to/BCDice/src')
  
 
# BCDice関連ファイルを読み込む
 
# BCDice関連ファイルを読み込む
require 'bcdiceCore'
 
 
require 'diceBot/DiceBot'
 
require 'diceBot/DiceBot'
 
require 'diceBot/DiceBotLoader'
 
require 'diceBot/DiceBotLoader'
 +
require 'bcdiceCore'
 +
</syntaxhighlight>
 +
 +
== ダイスロールを行う ==
 +
 +
BCDiceのダイスロール機能を呼び出すプログラムの概要を以下に示す。
  
# ゲーム名(英数字、省略名でも可)
+
<syntaxhighlight lang="ruby">
 +
# ゲーム名(英数字。省略名でも可)
 
# * 省略名の例:DX(DoubleCross)、SW20(SwordWorld2.0)
 
# * 省略名の例:DX(DoubleCross)、SW20(SwordWorld2.0)
 
game_title = 'DoubleCross'
 
game_title = 'DoubleCross'
32行目: 40行目:
 
# ダイスロールを行い、結果を受け取る
 
# ダイスロールを行い、結果を受け取る
 
# * output:ダイスロールの結果(出目の合計など)を示すメッセージ
 
# * output:ダイスロールの結果(出目の合計など)を示すメッセージ
 +
#    * 例:"2DX+4@10 : (2R10+4[10]) > 8[7,8]+4 > 12"
 
# * secret:シークレットダイスならばtrue、そうでなければfalse
 
# * secret:シークレットダイスならばtrue、そうでなければfalse
 
output, secret = bcdice.dice_command
 
output, secret = bcdice.dice_command
37行目: 46行目:
 
# 出目の情報を受け取る
 
# 出目の情報を受け取る
 
# 2つの整数要素を持つ配列の配列として返ってくる
 
# 2つの整数要素を持つ配列の配列として返ってくる
# * 返り値の例:[[3, 10], [7, 10]](10面ダイスの3、10面ダイスの7)
+
# * 返り値の例:[[7, 10], [8, 10]](10面ダイスの7、10面ダイスの8)
 
rolled_dice = bcdice.getRandResults
 
rolled_dice = bcdice.getRandResults
 +
</syntaxhighlight>
 +
 +
== 利用できるダイスボットの一覧を取得する ==
 +
 +
<code>DiceBotLoader.collectDiceBots</code> を呼び出すと、利用可能なダイスボットの配列を取得することができる。これを利用して、利用できるダイスボットの一覧を作ることができる。
 +
 +
<syntaxhighlight lang="ruby">
 +
# 利用できるダイスボットの配列
 +
dicebots = DiceBotLoader.collectDiceBots
 +
 +
# 特定のゲームを対象としないダイスボットも一覧に加える場合
 +
# dicebots = DiceBotLoader.collectDiceBots + [DiceBot.new]
 +
 +
# ゲーム識別子(英数字)の配列を作る
 +
game_types = dicebots.map(&:gameType)
 +
 +
# ゲーム名(日本語)の配列を作る
 +
game_names = dicebots.map(&:gameName)
 
</syntaxhighlight>
 
</syntaxhighlight>

2020年8月25日 (火) 07:44時点における最新版

BCDiceのダイスロール機能のみを利用する場合の、Rubyプログラムからの呼び出し方をまとめる。

BCDice関連ファイルを読み込む

BCDiceの機能を利用する前に、1回だけ関連ファイルを読み込む必要がある。BCDiceが配置されているディレクトリを読み込みパスに追加してから、関連ファイルを読み込む。

# BCDiceが配置されているディレクトリを読み込みパスに追加する
$LOAD_PATH.unshift('/path/to/BCDice/src')

# BCDice関連ファイルを読み込む
require 'diceBot/DiceBot'
require 'diceBot/DiceBotLoader'
require 'bcdiceCore'

ダイスロールを行う

BCDiceのダイスロール機能を呼び出すプログラムの概要を以下に示す。

# ゲーム名(英数字。省略名でも可)
# * 省略名の例:DX(DoubleCross)、SW20(SwordWorld2.0)
game_title = 'DoubleCross'
# コマンド
command = '2DX+4@10'

# 新しいBCDiceインスタンスを作る
bcdice = BCDiceMaker.new.newBcDice

# ゲームを指定する
bcdice.setGameByTitle(game_title)
# BCDiceに送るメッセージ(コマンド)を指定する
bcdice.setMessage(command)
# ダイスロールの結果(出目)を返すように設定する
bcdice.setCollectRandResult(true)

# ダイスロールを行い、結果を受け取る
# * output:ダイスロールの結果(出目の合計など)を示すメッセージ
#     * 例:"2DX+4@10 : (2R10+4[10]) > 8[7,8]+4 > 12"
# * secret:シークレットダイスならばtrue、そうでなければfalse
output, secret = bcdice.dice_command

# 出目の情報を受け取る
# 2つの整数要素を持つ配列の配列として返ってくる
# * 返り値の例:[[7, 10], [8, 10]](10面ダイスの7、10面ダイスの8)
rolled_dice = bcdice.getRandResults

利用できるダイスボットの一覧を取得する

DiceBotLoader.collectDiceBots を呼び出すと、利用可能なダイスボットの配列を取得することができる。これを利用して、利用できるダイスボットの一覧を作ることができる。

# 利用できるダイスボットの配列
dicebots = DiceBotLoader.collectDiceBots

# 特定のゲームを対象としないダイスボットも一覧に加える場合
# dicebots = DiceBotLoader.collectDiceBots + [DiceBot.new]

# ゲーム識別子(英数字)の配列を作る
game_types = dicebots.map(&:gameType)

# ゲーム名(日本語)の配列を作る
game_names = dicebots.map(&:gameName)