第4話 アイテム増殖
多少のトラブルはあったがドンマイ。なんとかはじまりの町にやってきた。管理者用ポータルが使えるからといって終盤の町とかにいったらその場で詰んでいたかもしれない。はじまりの町は無難なチョイスだったはずだ(腹にある服の穴からそっと目をそらす)
町に入るのに特に検問があるでなく、税金を納める必要もなかったので助かった。しかし、金がない。あのお嬢さんにたかっておけばよかったか……? あるものと言えば、剣がひとつ。暴漢の置き土産であった。
「こいつを売るとするか……」
こう治安が悪そうな世界において、武器というのは重要度が高そうな気もするが、そうは言っても金がないことには始まらない。なんかバグってHP多いみたいだし、そうヤバいことにはならんだろ。きょろきょろとしながら町を散策しているとどうも周りから奇異の目で見られているということに気づく。
まあこの服だしな。きょろきょろしてて挙動不審だったしな。いかんいかん。そんな目でみなさんな。よそ者には冷たいってやつなのかな。地味に精神にくるぜ……。そうして、とぼとぼ歩いていると見つけた。武器屋だ。たのもー。
「おやじ、これを買ってくれ」
「なんだぁ? 見ない顔だな。博打で
博打で
「うるせえ! 買ってくれんのか!? どうなんだ!」
「ふん……。そうだな……。こいつなら10セステルティウスってところだな」
10セステルティウスって適正価格なんだろうか。
「なあ、ここに並んでる剣、買うとしたらいくらだ?」
「ああん? 金持ってんのか? そいつなら20セステルティウスだ」
そんなにモノは変わらなさそうだが倍額……。とはいえ、こっちのエモノは手入れもされてないからな。半額で下取りなら十分か?
「いや剣を買い戻すならいくらぐらいいるのかと思ってな」
咄嗟の言い訳としてはなかなか自然な返しではなかろうか。そう思ったんだが……。武器屋の親父はやれやれと呆れた顔で首を振る。
「剣を売った金でもうひと勝負して、負けた分を取り戻そうって考えなんだろ? そういう奴が買い戻しに来た試しはねえよ。やめときな」
ちっがう! 俺は博打で
クソ親父めっ。とりあえず路銀が手に入ったところではあるが、手ぶらはツライ。10枚のセステルティウス銅貨も直にポケットにinだからな……。ポケットに穴とかいうオチがつかないようにチェックしたぜ?
町の人々をみると、皆なにかしらカバンを下げているな。いや、カバンというと革の上等なものをイメージするかもしれないが、ずだぶくろみたいなモノだ。時代設定は中世~近世ぐらいなんだろうか。建物の窓にガラスが入ってない程度には未開の世界のようである。あまり上等なものは望めそうにはないな。
雑貨屋のような店をみつけたので店番のおばちゃんに声をかける。
「袋が欲しいんだが何かあるかい?」
恰幅の良い、愛嬌のある笑顔のおばちゃんだが、どうにも笑顔が不自然な……ようするに営業スマイルという感じだ。おばちゃんは営業スマイルを崩さず、こちらを頭から足元までしげしげと眺めて
「金はあるのかい?」
畜生! やっぱり博打で
おばちゃんは意外そうに少し驚いた表情をした。そんなに金がないように見えるか。まあ実際、剣を売るまで金なかったんだが。
「セステルティウス銅貨があるならこいつでどうだい」
ちょっと質がいいやつを出してくれた。セステルティウス銅貨、意外と価値が高いのか? しばし逡巡していると
「他に必要なものはあるかい? 少しおまけしてあげるよ」
「なら、小さい袋とか紐とかあるか」
おばちゃんはニコニコしながら小袋を3つと細い麻紐をひと巻きとり並べる。
「全部で14アスでいいよ」
アスってなんだ。よくわからんが値引きしてくれるんならこれで良しとするか……? おずおずとセステルティウス銅貨を手渡す。
「堅実にやんなさいよ」
余計なお世話だ! お釣りは2枚の小さな銅貨だった。これがアス銅貨なんだろう。1セステルティウス = 16アスってことか。
買った
『ずだぶくろ🤔🤔🤔』
オタクはすぐ thinking face を使ってしまう。
┏【ずだぶくろ🤔?】━
┃??? x 55358
┃??? x 0
┃小袋 x 3
┃麻紐 x 1
┗━━━━━━━━━━
キタコレ!
サロゲートペアでバッファオーバーフローとか作りが雑すぎるだろ……。???ってなんだこれ。おそるおそる
『コエルロサウラヴスの羽』
20cmほどの薄い皮膜。細い筋が扇状に入っている。骨? 羽といっても鳥の羽毛みたいなやつではない。なんだこりゃ。得体が知れなくてキモい。
┏【ずだぶくろ🤔?】━
┃コエルロサウラヴスの羽 x 55357
┃??? x 0
┃小袋 x 3
┃麻紐 x 1
┗━━━━━━━━━━
なるほど? 手に取るまでは未鑑定みたいなシステムか? 0個のほうの???は……取り出そうとするが取り出すことはできなかった。まあ、0個だからな……。
┏【ずだぶくろ🤔?】━
┃コエルロサウラヴスの羽 x 55357
┃小袋 x 3
┃麻紐 x 1
┗━━━━━━━━━━
サロゲートペア範囲の文字を突っ込めば何か有益なアイテムを無限に入手できるかもしれないな。そいつを売れば金はいくらでも稼げそうだ。
ん? 金? 俺の金はどこいった?
----------
プログラマは文字数を数えることができない、なんてプログラマジョークがあったりします。コンピュータの中で文字は数字を振られて管理されています。近年ではもっぱらUnicodeが使われていて21bitの数字で文字を取り扱います。この文字に振られた数字が「コードポイント」なのですが、コードポイントがプログラムでそのまま扱われているわけではなく、UTF-8 や UTF-16 といった文字符号化方式で用いられています。
21bitのコードポイントを、よく使われるものは短く、あまり使われないものは長く、と1byte ~ 4byte に変換するのがUTF-8ですね。一般的な漢字とかは3byteに、絵文字などは4byteになります。
Unicodeができた当初はコードポイントが16bitでした。要するに65,536種類の文字を表すことができたんですね。この範囲に世界中のあらゆる文字を収納しようとしたわけですが、いかにも欧米人的発想で、漢字文化圏の人間が聞いたら「たかだか6万で足りるわけないだろ!?」ってなるわけです。
この欠点には早々に気づいて、Unicodeが21bitに拡張されたんですね。UTF-16符号化方式はこの歴史の影響があって、通常のコードポイントのものは16bit = 2byteで表現して、U+10000以降の範囲は2文字の組み合わせで表すという取ってつけたような拡張で対応したんですね。この2文字のペアをサロゲートペアと言います。2進数のbit配置でいうと 110110wwwwxxxxxx 110111xxxxxxxxxx という形で21bitをふたつの16bit文字にわけて表現します。
というわけで、1文字のようにみえる🤔がUTF-16では2文字で表されたりするため、データベースやファイル出力などでbit数が決まってるようなやつだと溢れたりすることが生じるわけです。
新規登録で充実の読書を
- マイページ
- 読書の状況から作品を自動で分類して簡単に管理できる
- 小説の未読話数がひと目でわかり前回の続きから読める
- フォローしたユーザーの活動を追える
- 通知
- 小説の更新や作者の新作の情報を受け取れる
- 閲覧履歴
- 以前読んだ小説が一覧で見つけやすい
アカウントをお持ちの方はログイン
ビューワー設定
文字サイズ
背景色
フォント
組み方向
機能をオンにすると、画面の下部をタップする度に自動的にスクロールして読み進められます。
応援すると応援コメントも書けます