◆チェックサムの詳細説明

check-sum(検査合計)。もともとは情報処理用語。
簡単に説明すれば、その復活の呪文が正しいものかどうか判定すること。
この判定に引っかかってしまうと「じゅもんが ちがいます」となるw

ここに、簡単な例を示そう。
A=1、B=2、C=3…という形でアルファベットと数字を対応させた場合
「アイテムαを4個、アイテムβを3個持っている」をパスワード化すると「DC」となる。
ここに「アイテムαとβの合計は7個」という情報を加えると、パスワードは「DCG」となる。
この「G」の部分がチェックサムだ。
この例では、左2文字の数の和と右1文字の数が合わなければ、不正なパスワードとなる。
「アイテムαを3個、アイテムβを4個持っている」パスワード「CDG」。
「アイテムαを2個、アイテムβを5個持っている」パスワード「BEG」。
これらは通っても、「BCG」や「DEG」ではチェックサムが違うので通らないわけだ。

そして、チェックサム記号がひとつとは限らない。
例えばAFGZとして(Z=数字を「最後から逆」にあらわした仮の記号)
F=G-ZとなりA+F=Gと合わせてチェックスルーにするとか。

実際の復活の呪文では、もっと複雑な仕組みではあるが
復活の呪文内には、主人公の名前や持ち物などのデータとともに、このような判定用データが埋め込まれている。

では、実際の仕組みとは。
DQ1の場合、復活の呪文は1字あたり64種類の文字で、1か0かの情報は6個分含まれている。
1か0かの情報はビット(bit : binary digitの略)という単位で表される。
復活の呪文は20字あるので、120ビットの情報量となる。

一方、格納されているゲームのデータは、勇者名24ビット、経験値16ビット、お金16ビット、
武器3ビット、鎧3ビット、盾2ビット、薬草4ビット、鍵4ビット、アイテム32ビット、フラグ5ビット。
計、109ビットの情報量となる。

120-109=11 この、残りの11ビットが判定用データとして割り当てられている。
そして判定用データとしてCRCを求めている。

ここではCRCの求め方の詳細な説明は省かせてもらう。
興味のある方は各自調べてみると良いだろう。
CRCはデータが壊れているかどうかを判別する目的でデータ通信に使われる事が多い。
※CRC : Cyclic Redundancy Check (巡回冗長検査)

CRCを求めているだけ、としてデータ通信に長けた方の中には逆に簡単だと言う方もいるようだ。

タグ:

+ タグ編集
  • タグ:

このサイトはreCAPTCHAによって保護されており、Googleの プライバシーポリシー利用規約 が適用されます。

最終更新:2011年02月14日 11:26