超毒舌的な説明をしますと、メイプルストーリーは、冗長的に長ったらしいためユーザ間の知識に開きがあります。いわゆる上級者はなんだかんだと略語を使い「メイプル知ってるんだぜ」的なオーラをぷんぷんと臭わせてきます。中級者は我先にと上級者の使う言葉を学び自らも使おうとするのです。しかし、いわゆる永遠の初心者である私は彼らの使う略語の意味がわからず、話がちっともあいません。

「これこれ!君!何をいっとるのかね!私にわかるように説明したまえ」

と言いたくなります。そんな私ですが、最近、知った言葉で非常に納得のいかない言葉があります。それは

カンスト

です。

カンストとは「ある値が、最大値に達した状態」と、私はいくつかの会話の流れからくみ取ったのですが、おそらくそれで正解だと思います。ですが、カンストとは何の略なのかわかりませんでした。

完全ストアー(store)
完全ストック(stack)
完全スタック(stock)
コンプリート(complete)ストアー(store)
コンプリート(complete)ストック(stack)
コンプリート(complete)スタック(stock)

おそらくこれのどれかだろうと思っていたんです。ええ。ところがどっこい違ってました。答えはなんと

カウンターストップ(Counter Stop)

「ウ」はどこへ・・・・どこへいってしまったの!?って吠えてしまいました。おそらく「カウスト」とはじめは呼ばれてかもしれません。ですが、そこは日本語。言いにくいため「カンスト」と変化したのであろうと想像がつきます。なるほど、なるほど、カウンターストップなのかと納得しました。また、意味するところのニュアンスが微妙に私の中で誤解していたことも気づきました。

カンストとは、「ある値が、これ以上あがらない値に達した状態。数え上げる事を止めた状態。」という意味なんですね。「あがらないよ!」って言うところが強く主張されている単語なんですね。ちなみにカンストはゲーム用語らしいので、ゲーム以外でいうと「はあ?」って顔されるかもしれないので注意ですw

生徒:「先生、ぼくの算数のテストはカンストでしたか?」
先生:「はぁ?」

部下:「いやー今日の電車はカンストでしたよ。」
上司:「はぁ?」

ノリスケ:「いくら偉いぞ~ごはんカンストしたな」
いくら:「はぁ~い」

と、リアルでいったら大惨事です。

メイプルストーリーには様々なカンストが存在するようですが、その中で私が知っている面白いやつを紹介してみます。

お店の価格のカンストを紹介します。まずお店に商品を置きます。
image

そうすると値段の設定ができます。今回は入力できる最大値を入力してみました。
999999999(9が10個、九十九億九千九百九十九万九千九百九十九)メルです。
image

これでOKを押すと、エラーメッセージが出てきます。
image

2147483647以下しか認めねーって言ってきます。なんじゃそりゃ!ですよね。そうこの値がお店で販売できる価格の最大値つまりカンストです。「なんなんでしょうかこの値はっ」てわざとらしく言いますが、この数値を二進数に変換すると意味がよくわかります。

二進数は0か1かで数を表す方法です。普段、使ってるのは十進数で0から9で数を表してますよね?9を超えると一桁あがります。二進数も同様に1を超えたら一桁あがります。なので

十進数 二進数
0 0
1 1
2 10
3 11
4 100
5 101

と、十進数と二進数を対応つけることができます。では先ほど2147483647を二進数に・・・手計算ではむずかしいですね。なので、Window標準アプリケーションとして乗ってる電卓を使います。

image

結果は

1111111111111111111111111111111

で、「1」が31個ならぶ数になります。コンピュータの世界では十進数よりも二進数の方が親和性が高いため、コンピュータで何かを計算去る場合、コンピュータが勝手に二進数に変換して計算しています。逆に言えば、コンピュータの世界は二進数が支配的であるため、意図的に十進数に変換したり設定したりしない場合は二進数で意味のある数値が何らかの値に採用されることは多々あります。たとえば32ビットOSだとか64ビットOSとかが、その支配の制約に乗って出てきた値です。

32ビットとは
32ビット(英: 32-bit)とは、コンピュータにおいて、連続した32個(桁)のビット(4オクテット)であり、バイナリで最大4,294,967,296(4G)までの数を表現できる。(
Wiki)

とWikiから引用してみました。つまり32個ほど0か1が並ぶ数なんです。お店のカンストの2,147,483,647メルは二進数では31桁でした。一桁違いますね。ですが、それは簡単に説明できます。最後の一桁を正か負であるという意味に使用しているのです。0だったら正の整数。1だったら負の整数です。なんで正の整数では

01111111111111111111111111111111

が最大値になります。32ビットOSで表現できる連続した数の最大値は「2,147,483,647」ということになります。これが連続しているということで値の管理がしやすく、計算が高速になるためよくつかわれます。どうです。お店のカンストの値にはこういう意味があったんですよ。一つ勉強になりましたね。

ではさらに続けます。先ほど先頭が「0」か「1」で負か正か切り分けると書きましたが、切り分けない場合もあります。切り分けない場合は最大値が4,294,967,296になります。この場合、0から4,294,967,296の範囲の数が表せます。符号付きの場合は-2147483648から2147483647になります。問題は符号ありかなしかが状況によって違うため、とり扱いを間違うとバグが生まれます。

はい!わかりましたか?そうです。これ!

image

他にも初期化に失敗しましたとかも、同じような値を表示させています。このエラーメッセージはまさに符号ありとなしを取り間違えてバグってるにおいがぷんぷんします(またはもっと広い範囲の整数をあつかっているのかもしれません)しかし・・・原因はわかれど対応が難しいんじゃないかなって思う次第です。うししし・・・対応しないとメイプル終わっちゃいますけどね(笑)

もしかするとカンストの問題でメイプルおわっちゃうかも!

こあい!

以上!

 

 

あ・・・おまけ

image

季節外れのクリスマスを楽しんでみました。このイスきれいですね。

About these ads