-1

テキストベースの RPG ゲームをバッチで作成していますが、特定の武器が 0 から 10 の間でランダムな量のダメージを与えるイベントで問題が発生しています。コードは次のとおりです。

set /a damage=%random%/3277 echo %damage% 一時停止

ご覧のとおり、3277 は約 32767/10 です。ただし、結果として9を取得し続けます。私が間違っていることを特定するのを手伝ってくれる人はいますか? また、最小値と最大値を持つようにコードを書く別の方法はありますか? 0 から 10 ではなく、6 から 10 の間であることが望ましいです。

4

1 に答える 1

1

係数を使用:

SET /A damage=%random% %% 11

このようにして、[0, 11[.

このような小さな除数の場合、一様分布に近づきます (%random% も一様分布であると仮定します)。

于 2013-08-30T07:57:11.467 に答える