トラック
/
Uiua
Uiua
/
演習
/
D&Dのキャラクター
D&Dのキャラクター

D&Dのキャラクター

中級

はじめに

何週間も待ち望んだ末、友達と集まって、初めてのDungeons & Dragons(D&D)のゲームを遊ぶことになりました。 これがゲームの最初のセッションなので、プレイヤーはそれぞれ、遊ぶためのキャラクターを作らなければなりません。 キャラクターの能力は6面ダイスを振って決まりますが、そのダイスは_どこに_あるのでしょうか? はっと気づくと、友達はダイスを用意してくれるのを待っています。何しろ、D&Dで遊ぼうと言い出したのは自分なのですから! 慌てて、ダイスを持ってくるのを忘れたことに気づきます。それではD&Dのゲームができません。 幸い少しはプログラミングの基礎を身につけていたので、すぐに解決策を思いつきます。ダイスを振る動きをシミュレートするプログラムを書くのです。

説明

Dungeons & Dragonsのゲームでは、まずプレイヤーそれぞれが、遊ぶためのキャラクターを生成するところから始めます。 このキャラクターには、ほかにもいろいろな要素がありますが、なかでも6つの能力があります。strength、dexterity、constitution、intelligence、wisdom、charismaです。 これら6つの能力には、それぞれランダムに決まるスコアがあります。 スコアは、6面のサイコロを4つ振り、大きいほうから3つの出目の合計を記録して求めます。 これを6回、能力ごとに1回ずつ行います。

キャラクターの初期hitpointsは、10にconstitutionの修正値を足した値です。 constitutionの修正値は、constitutionから10を引き、その結果を2で割って切り下げると求められます。

上記のルールに従って、ランダムにキャラクターを生成するプログラムを書いてください。

たとえば、4つのサイコロを6回振った結果は、次のようになるかもしれません。

  • 5、3、1、6:1を捨て、5+3+6=14を合計し、これをstrengthに割り当てます。
  • 3、2、5、3:2を捨て、3+5+3=11を合計し、これをdexterityに割り当てます。
  • 1、1、1、1:1を捨て、1+1+1=3を合計し、これをconstitutionに割り当てます。
  • 2、1、6、6:1を捨て、2+6+6=14を合計し、これをintelligenceに割り当てます。
  • 3、5、3、4:3を捨て、5+3+4=12を合計し、これをwisdomに割り当てます。
  • 6、6、6、6:6を捨て、6+6+6=18を合計し、これをcharismaに割り当てます。

constitutionが3なので、constitutionの修正値は-4、hitpointsは6になります。

Note

ほとんどのプログラミング言語には(疑似)乱数生成器がありますが、サイコロを振るために設計されているプログラミング言語はほとんどありません。 そのひとつがTrollです。

GitHubで編集する リンクは新しいウィンドウまたはタブで開きます
Uiua Exercism

D&Dのキャラクターを始める準備はできましたか?

Exercismに登録すれば、100個の演習、そして本物の人間によるメンタリングとともに、Uiuaを学んでマスターできます。すべて無料です。

D&Dのキャラクターを深く掘り下げよう!

(一見)ランダムなサイコロの出目をどうやって生成するのかを掘り下げます。シード、疑似乱数、よくある落とし穴について学びます。最後に、ランダムな値を返す関数のテストにプロパティベーステストがとても役立つことを見ていきます。