好々爺の電脳遊戯録

PCゲームに関してプレイ日記(ログ)やmod、周辺ツールのことなど書いていこうかな、と。

Wizardry Variants Daphne のデータ連携用パスワードを控えるときの注意点

Wizardry Variants Daphne のデータ連携用パスワード発行画面の問題点

不具合に遭遇しない方が難しいんじゃないかと思う、このゲーム。
公式からお知らせ(推奨)されている不具合回避策として、データ連携による再インストール後のデータ復活というのがある。

このデータ連携用のパスワード発行。
大抵の人は、画面のスクリーンショット(以下、スクショ)を撮っておけばよい、と思ってしまうのだけど。
IDはともかく、パスワードの方は以下の問題があるため、スクショを撮っただけでは安心ができない。

このゲームで使われているフォントは、日本語フォントでいうところの「明朝体」が主体。
そして、データ連携用の情報表示画面にも、このフォントが使われている。
そのため、以下の文字を区別するのが困難になっている。
(これ以外にもあるかもしれない)

  • 数字の1(いち)
  • アルファベットの小文字L(エル)
  • アルファベットの大文字I(アイ)

当方も念のためにデータ連携用のパスワード発行を行ってみたのだけど。
5~6文字程度は、これらの文字が含まれていて、スクショをパッと見ただけでは区別がつかず。
後述する方法で判別できるという状態でした。

Wizardry Variants Daphne のデータ連携用パスワード発行画面で出来ること

実は、データ連携用の各情報(IDとパスワード)欄をタップすると、表示内容がクリップボードへコピーされる。
正確な情報になるので、クリップボード経由でメモアプリ等へ書き出して保管しましょう。
もっとも、クリップボードにパスワード情報が入るのを気にする人がいるかもしれない。
そこは、誤情報でデータが復元できないことと天秤にかけて判断するのがいい気はする。


もっとも、データ連携用情報の提示に置いて、文字の識別困難になるフォントの使用を避けて、各文字が明確に判別できるフォントを使用するように設計しておけば、コピー機能は不要な気はするのよね。 そうすれば、プレイヤー側はスクショでも手書きメモでも、データ連携に必要な正しい情報を残すことが出来る。
(結果として、運営へデータ連携が失敗するという問合せは減ることになる気はする)


まぁ、ゲーム全体に見受ける詰めの甘さを考えると、このあたりも考慮不足なんだろうなぁ、と思わなくもない。

Wizardy Variants Daphne のレベルアップに必要な経験値の計算式

Wizardy Variants Daphne のレベルアップに必要な必要経験値の計算式

(記事執筆時点の2024/11/01で、レベル1~20までの数値と計算式の結果が一致することを確認済み)

Wizardy Variants Daphne のレベル毎の必要経験値*1は、以下の式で求められる。

n はレベルとする。)

 \displaystyle
\frac{1}{4}\bigr(n^4+22n^3+85n^2+116n\bigr)

分数を使わず、係数を実数で表した式にすると、

 \displaystyle
0.25n^4+5.5n^3+21.25n^2+29n

プログラム等で使いやすいよう、べき乗(累乗)演算関数 pow(x, y) *2 を用いて書けば、

(pow(n, 4) + 22 * pow(n, 3) + 85 * pow(n, 2) + 116 * n) / 4

或いは

0.25 * pow(n, 4) + 5.5 * pow(n, 3) + 21.25 * pow(n, 2) + 29 * n

この式は、高校数学の数列の知識があれば導出できる。
(続きに導出手順を記載する)

興味がある人は、1~5レベルぐらいまでの数値を記録して試行錯誤してみるといいかもしれない。
(数列の練習問題になるかも?)

事前調査

事前調査として、レベル1~7ぐらいまでの必要経験値を記録する。
その数値(数列)に対して、以下のようなことを行うと、ある段階で等差数列が表れる。

  1. 必要経験値をその時のレベル(の数値)で割る。
  2. 得られた数値を順に並べて、数列を作る。
    1. の数列に対して、前後の差分の数列を作る。
      (例:レベル2の数値を2で割った数値-レベル1の数値を1で割った数値)
  3. 3.で得た数列に対して、前後の差分の数列を作る。
  4. 4.で得た数列が、等差数列になっている。

  • Wizardry Variants Daphne のレベル毎の必要経験値の表(Lv.1~Lv.7)
Lv {n} 必要経験値 (E_n) レベルで割った値 (d_n) 差分その1 (a_n) 差分その2 (b_n)
1 56 56÷1=56 56 27
2 191 191÷2=95.5 95.5-56=39.5 39.5-27=12.5
3 447 447÷3=149 149-95.5=53.5 53.5-39.5=14
4 872 872÷4=218 218-149=69 69-53.5=15.5
5 1,520 1,520÷5=304 304-218=86 86-69=17
6 2,451 2,451÷6=408.5 408.5-304=104.5 104.5-86=18.5
7 3,731 3,731÷7=533 533-408.5=124.5 124.5-104=20

計算式の導出

等差数列を見つけたら、各数列の一般項を順に算出して、必要経験値の計算式を導けばよい。

  1. 等差数列の一般項を導出する。
  2. 等差数列の一般項の式を利用して、一つ手前の数列(階差数列)の一般項を導出する。
  3. 2.で得られた一般項の式を利用して、さらに手前の数列(これも階差数列)の一般項を導出する。
  4. 3.で得られた一般項の式を利用して、さらに手前の数列(必要経験値の数列)の一般項を導出する。

以下では、具体的な数値を用いず、一般項を導出し、最後に具体的な数値を代入して結果を得ている。

  1. レベル n の必要経験値の数列を E_n (n > 0) とする。
  2. E_n の第 n 項をその項番 n で割った数値で数列 d_n を作る。
 \displaystyle
\frac{E_n}{n} = d_n ,\quad d_1 = D \quad  (D は定数) \quad (n > 0)

3. 数列 d_n に対して、項番 nn-1 の差分による数列 a_n を作る。

 \displaystyle
d_n - d_{n-1} = a_n ,\quad a_1 = A \quad  (A は定数) \quad (n > 0)

4. 数列 a_n に対して、項番 nn-1 の差分による数列 b_n を作る。

 \displaystyle
a_n - a_{n-1} = b_n ,\quad b_1 = B \quad  (B は定数) \quad (n > 0)

5. 数列 b_n は、初項  b_1、公差 c の等差数列になっているので、一般項を求める。

 \displaystyle
b_n = c (n - 1) + b_1 \quad (n > 0)

6. 数列 a_n は、階差数列になっていることに留意し、一般項を求める。
なお、以下の公式を利用して、数列の総和を展開している。

 \displaystyle
 \sum_{k=1}^{n}k = \frac{n(n+1)}{2} \quad, \sum_{k=1}^{n}C = Cn \quad (C は定数)

 \displaystyle
\begin{align}
a_n - a_1 &= \sum_{k=2}^{n}b_k =  \sum_{k=1}^{n}b_k - b_1 \quad (n > 0) \\
a_n &= \sum_{k=1}^{n}b_k - b_1 + a_1 \\
& = \sum_{k=1}^{n}\bigr\{c(k - 1) + b_1\bigr\} + a_1 - b_1 \\
& = c\sum_{k=1}^{n}(k - 1) + \sum_{k=1}^{n}b_1 + a_1 - b_1 \\
& = c\frac{(n - 1)n}{2} + b_1n + a_1 - b_1 \\
& = \frac{c}{2}(n^2 - n) + b_1n + a_1 - b_1 \\
& = \frac{c}{2}n^2 - \frac{c}{2}n + b_1n + a_1 - b_1 \\
& = \frac{c}{2}n^2 + \frac{2b_1 - c}{2}n + a_1 - b_1 \quad (n > 0)
\end{align}

7. 数列 d_n は、階差数列になっていることに留意し、一般項を求める。
なお、以下の公式を利用して、級数(数列)の総和を展開している。

 \displaystyle
 \sum_{k=1}^{n}k^2 = \frac{n(n+1)(2n+1)}{2} \quad, \sum_{k=1}^{n}k = \frac{n(n+1)}{2} \quad, \sum_{k=1}^{n}C = Cn \quad (Cは定数)

 \displaystyle
\begin{align}
d_n - d_1 &= \sum_{k=2}^{n}a_k = \sum_{k=1}^{n}a_k - a_1 \quad (n > 0) \\
d_n &= \sum_{k=1}^{n}a_k - a_1 + d_1 \\
& = \sum_{k=1}^{n}\frac{c}{2}k^2 + \sum_{k=1}^{n}\frac{2b_1 - c}{2}k + \sum_{k=1}^{n}(a_1 - b_1) + d_1 - a_1 \\
& = \frac{c}{2}\sum_{k=1}^{n}k^2 + \frac{2b_1 - c}{2}\sum_{k=1}^{n}k + \sum_{k=1}^{n}(a_1 - b_1) + d_1 - a_1 \\
& = \frac{c}{2}\frac{n(n+1)(2n+1)}{6} + \frac{2b_1 - c}{2}\frac{n(n+1)}{2} + (a_1 - b_1)n + d_1 - a_1 \\
& = \frac{c}{12}(n^2+n)(2n+1) + \frac{2b_1 - c}{4}(n^2+n) + (a_1 - b_1)n + d_1 - a_1 \\
& = \frac{c}{12}\bigr(2n^3+3n^2 + n\bigr) + \frac{2b_1 - c}{4}(n^2+n) + (a_1 - b_1)n + d_1 - a_1 \\
& = \frac{2c}{12}n^3 + \frac{3c}{12}n^2+\frac{c}{12}n + \frac{2b_1 - c}{4}n^2 + \frac{2b_1 - c}{4}n + (a_1 - b_1)n + d_1 - a_1 \\
& = \frac{c}{6}n^3 + \bigr(\frac{3c}{12} + \frac{2b_1 - c}{4}\bigr)n^2 + \bigr\{\frac{c}{12} + \frac{2b_1 - c}{4}+ (a_1 - b_1)\bigr\}n + d_1 - a_1 \\
& = \frac{c}{6}n^3 + \frac{c + 2b_1 - c}{4}n^2 +\bigr(\frac{c}{12} - \frac{c}{4} + \frac{2b_1}{4} - b_1 + a_1\bigr)n + d_1 - a_1 \\
& = \frac{c}{6}n^3 + \frac{2b_1}{4}n^2 + \bigr(\frac{c - 3c}{12} + \frac{b_1 - 2b_1}{2} + a_1\bigr)n + d_1 - a_1 \\
& = \frac{c}{6}n^3 + \frac{b_1}{2}n^2 + \bigr(\frac{-2c}{12} + \frac{-b_1}{2} + a_1\bigr)n + d_1 - a_1 \\
& = \frac{c}{6}n^3 + \frac{b_1}{2}n^2 + \bigr(a_1 - \frac{c}{6} - \frac{b_1}{2}\bigr)n + d_1 - a_1  \quad (n > 0)
\end{align}

8. 数列 E_n の一般項を求める。

 \displaystyle
\begin{align}
\frac{E_n}{n} &= d_n \quad (n > 0) \\
E_n &= n \cdot d_n \\
& = n \cdot \bigr\{\frac{c}{6}n^3 + \frac{b_1}{2}n^2 + \bigr(a_1 - \frac{c}{6} - \frac{b_1}{2})n + d_1 - a_1\bigr\} \\
& = \frac{c}{6}n^4 + \frac{b_1}{2}n^3 + \bigr(a_1 - \frac{c}{6} - \frac{b_1}{2}\bigr)n^2 + (d_1 - a_1)n \quad (n > 0)
\end{align}

9. 事前調査の表より、d_1=56a_1=27b_1=11c=1.5 を 8. で得られた式に代入して計算すると、以下のようになる。

 \displaystyle
\begin{align}
E_n &= \frac{c}{6}n^4 + \frac{b_1}{2}n^3 + \bigr(a_1 - \frac{c}{6} - \frac{b_1}{2}\bigr)n^2 + (d_1 - a_1)n \\
& = \frac{1.5}{6}n^4 + \frac{11}{2}n^3 + \bigr(27 - \frac{1.5}{6} - \frac{11}{2})n^2 + (56 - 27)n \\
& = \frac{3}{2} \cdot \frac{1}{6}n^4 + \frac{11}{2}n^3 + \bigr(27 - \frac{3}{2} \cdot \frac{1}{6} +\frac{11}{2})n^2 + 29n \\
& = \frac{1}{4}n^4 + \frac{11 \cdot 2}{4}n^3 + \bigr(\frac{27 \cdot 4}{4} - \frac{1}{4} +\frac{11 \cdot 2}{4})n^2 + 29n \\
& = \frac{1}{4}n^4 + \frac{22}{4}n^3 + \frac{108 - 1 - 22}{4}n^2 + \frac{29 \cdot 4}{4}n \\
& = \frac{1}{4}\bigr(n^4 + 22n^3 + 85n^2 + 116n\bigr) \quad  (n > 0) \\
\end{align}

  • 備考:
    • 得られた式の係数には、以下のように素数2,5,11,17,29)が含まれている。
 \displaystyle
\frac{1}{4}\bigr(n^4 + (11 \times 2)n^3 + (17 \times 5)n^2 + (29 \times 4)n\bigr)


導出でやっていることは、以下の問題を解くことと同じ。

以下のように各数列を定義する。数列 E_n (n \geqq 1) の一般項を求めよ。

 \displaystyle
b_n = c (n - 1) + b_1 ,\quad b_1 = B \quad (Bは定数) \quad (n > 0)\\
a_n - a_{n-1} = b_n ,\quad a_1 = A \quad (Aは定数)  \quad (n > 0) \\
d_n - d_{n-1} = a_n ,\quad d_1 = D \quad (Dは定数)  \quad (n > 0) \\
E_n = n \cdot d_n ,\quad E_1 = E \quad (Eは定数) \quad (n > 1) \\

P.S.

演習問題や試験問題(大学入試とか)になると、複雑な数列(係数付きや累乗とか)が出てくるだろうから、これは簡単な方なんだろうな。
(高校時代に数列も習っている(し大学入試対策もしたはずだ)が、こんな風に問題を解いた覚えがない。)

fin.

*1:キャラクター詳細上部に表示される xxxxx/yyyyyyyyyy の値

*2:pow(x, y)は、x を y乗した結果を返す関数

Kensington Orbit の裏蓋を開けるには、T(R)6ドライバーを用意する

Orbit トラックボールの分解に関して、情報が無さそうなので、適当に書いてみる。

なお、裏蓋を開けるには、「T(R)6」トルクスドライバーを用意すればよい。
あとは、他のマウスやトラックボールなどの内部メンテナンス記事を参考にすればいいだけです。
(注意点も同じ)

以下は、どうでもいい駄文。


続きを読む