パスワードの法則
以前に書いた物が間違っていたので修正も兼ねて再構成
依然としてわかりにくいが前よりはマシになったかと
基本的な仕様として
1文字目は自由、
2-29文字目は1文字目に応じた
基本数値(
後述)に
鬼太郎のステータスやイベントの進行状況に合わせた
加算値(
後述)を足し
それを
文字コード表((
後述)に対応した文字に変換して決まる。
そして30文字目は1文字目に応じた基本数値に
1文字目の文字コード値と2-29文字目の加算値の合計を加えて文字に変換する。
文字コード表
No |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
文字 |
あ |
い |
う |
え |
お |
か |
き |
く |
け |
こ |
|
No |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
文字 |
さ |
し |
す |
せ |
そ |
た |
ち |
つ |
て |
と |
|
No |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
文字 |
な |
に |
ぬ |
ね |
の |
は |
ひ |
ふ |
へ |
ほ |
|
No |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
文字 |
ま |
み |
む |
め |
も |
や |
ゆ |
よ |
ら |
り |
|
No |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
文字 |
る |
れ |
ろ |
わ |
を |
ん |
が |
ぎ |
ぐ |
げ |
|
No |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
文字 |
ご |
ざ |
じ |
ず |
ぜ |
ぞ |
だ |
ぢ |
づ |
で |
|
No |
60 |
61 |
62 |
63 |
64 |
65 |
|
文字 |
ど |
ば |
び |
ぶ |
べ |
ぼ |
基本数値表
1文字目の文字コードとn文字目の場所に応じて決まる
1文字目の文字コードをS
文字の位置をn(n文字目、n>1)として
アドレス = ((Sを16で割った余り) + n-2)を16で割った余り になる
アドレス・基本数値と対応文字表は以下
アドレス |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
基本数値 |
0 |
2 |
1 |
1 |
2 |
0 |
2 |
1 |
0 |
2 |
0 |
1 |
2 |
1 |
2 |
1 |
対応文字 |
あ |
う |
い |
い |
う |
あ |
う |
い |
あ |
う |
あ |
い |
う |
い |
う |
い |
★基本文字コードを出す例
例1:1文字目「か」で4文字目の基本文字
1文字目「か」の時の文字コードS |
-> |
5 |
Sを16で割った余り |
-> |
5 |
4文字目なので 4-2=2 |
-> |
5 + 2 =7 |
それを16で割った余り |
-> |
7(アドレス) |
アドレス7の基本数値 |
-> |
1 |
文字コード表から変換 |
-> |
い |
実際の文字はこれに
加算値を合わせて決定される
経験値が8191以下なら4文字目はそのまま「
い」に
それ以上なら基本数値に加算して変化する
(語呂合わせでもしない限りここが変化する事はないだろうが)
例2:1文字目「ぐ」で26文字目の基本文字
1文字目「ぐ」の時の文字コードS |
-> |
48 |
Sを16で割った余り |
-> |
0 |
26文字目なので26-2=24 |
-> |
0 + 24 = 24 |
それを16で割った余り |
-> |
8(アドレス) |
アドレス8の基本数値 |
-> |
0 |
文字コード表から変換 |
-> |
あ |
26文字目はこれに
加算値と合わせて妖気石のバリア解除状態に応じて変化する
初期状態なら基本数値0からそのまま「
あ」
謎の大陸だけが解除されていたら+4されて0+4=4 -> 「
お」
九州・中国・四国が解除されていたら0+8+16+32=56 -> 「
だ」
といった具合
尚、初期状態(後述の加算値が何もない)だと2-29文字目はこんな感じになる
ああういいうあういあうあいういういあういいうあういあうあいう
いういいうあういあうあいういういあういいうあういあうあいうう
ういいうあういあうあいういういあういいうあういあうあいういお
えいうあういあうあいういういあういいうあういあうあいういうお
おうあういあうあいういういあういいうあういあうあいういういお
かあういあうあいういういあういいうあういあうあいういういあく
きういあうあいういういあういいうあういあうあいういういあうく
イメージ的には1文字目が1つ変わる毎に
「あういいうあういあうあいういうい」という文字列が左にずれていく感じ
加算値
鬼太郎の状態・イベントの進行状況に応じて各文字の数字に加算される
詳細は
パスワードビット表のページを参照
尚、逆算する際に文字から加算値を求める場合
語呂合わせなどで出現するオーバーフロー(桁上がり)は64を加減算して求める
オーバーフローの例はこのような感じ
例1:1文字目「あ」で3文字目が「い」の場合
1文字目が「あ」だと
S=0なので3文字目の
基本文字コードは
2になる
ところが「い」の文字コードは
1の為「基本文字コード + 加算値 = 実際の文字コード」から
計算すると「
加算値 = 1 - 2で
-1」となりマイナスになってしまう
そこでこれに
64を足して実際の加算値は
63になる(経験値が+4032)
例2:1文字目「あ」で2文字目が「ぼ」の場合
1文字目が「あ」だと
S=0なので2文字目の
基本文字コードは
0になる
ところが「ぼ」の文字コードは
65の為「基本文字コード + 加算値 = 実際の文字コード」から
計算すると「
加算値 = 65 - 0で
65」となり上限値の63を上回ってしまう
そこでここから
64を引いて実際の加算値は
1になる(経験値が+1)
以上を踏まえて生成例・逆算例
最終更新:2016年04月10日 18:15