第9話 真偽鑑定魔法

「んっ、お前は? 確か見た事があるのじゃ。ちょっと待つんじゃ。今思い出す」


 ギルドマスターは頭に手を当てぶつぶつと呟き。

 あーでもないこーでもないと盛んに首を傾げた。


「思い出したぞ。二年前の奴隷じゃ。また脱走したのか」


 ギルドマスターはぽんと手を打ち言った。

 しょっぱなから計算が狂ったな。

 予定では人里離れた所で修行していたテイマーの師匠が死んだので街に出てきたという設定だったのだが。

 ばれてしまっては仕方がないプランBだ。

 臨機応変とも言う。


「解放。元奴隷」

「嘘を言ってないか調べるのじゃ。魔法を使うぞ」

「良い」


「ソクチス・モチニミゆニミカ・チスキソネソクチス・けチスキヒガムよ・が・

カイリ・けカセレ・

ソクチス・トガフエオムレ・

カセほカラセイミゆふモニミニチルトラナリふよレ・

テクニリイゆカキイカトゆトネフエオネカセよぬほミナリリよが・

ニハゆリニチスろソクイソノゆトネチスキヒガヌムよほほやミやよ・スイカナスミゆやミやよレ・む・

カソリラトイゆカセよレ・

スイカナスミゆやンやよレ・む」


 新呪文ゲットだぜ、やほー。

 後でゆっくり解析しよう。

 しばらくギルドマスターは遠い物を見る目つきをしていたが、数分で焦点が通常に戻った。


「ふん、嘘は言ってないようじゃな。あの脱走騒ぎの時も大騒動だったんじゃが、今回も引けはとらんのう」

「で、どう」

「お前が食われていないのじゃから、テイムしているのは認める。しかし、ドラゴンを街に入れるのはならん」


 そんな、街に入れないのかよ。

 確かに門に入れる体の大きさじゃないが、飛べば城壁を乗り越えられる。

 どこも問題ないじゃないか。

 でもごねても仕方ないんだろうな。

 まあ妥協するか。


 決着が着いたので野次馬が徐々に散っていく。

 『カチリノ』と念じてミニアと会話を始める。


「危なかったな。冷や冷やしたぞ」

「うん」

「ところで脱走騒ぎってなんだ」

「契約前。脱走」


 魔法名が知られていたのはたぶん探す時に必要だったのだろう。

 しかし、何年も前の事をよく覚えているな。


「もしかして、脱走の時に相当やらかした?」

「ん、頑張った」


 そうか頑張っちゃったのか。

 奴隷になるのがそんなに嫌だったのか。

 過去の事は追及しないでおこう。


「ところでミニアの魔法名はなんだ」

「モニミニチ」


「ミニアの魔法名が分かったから、今から試験的に伝言を送るぞ」

「ばっちこい」


 俺は『モチニリ』と念じて続けて『モニミニチ』と念じ『本日は晴天なり』と念じた。


「良い天気」


 どうやら、伝言は届いたようだ。


「金は鞄に入っているから好きな物を買え。服とか必要だろう」

「借りとく」

「従魔の物は主人の物じゃないのか」

「ウィザ、友達」


 ウィザって俺の事か。

 愛称か。

 なんか照れるな。


「そうだな友達にお金をもらうのは違うな。貸しにしとくよ。お土産は魔法の情報を頼む。絶対に忘れるなよ」

「じゃ行く」


 会話は終わりミニアは門の中に消えて行った。

 お待ちかねの解析タイムだ。

 嘘を見破る呪文だが冒頭部分が違う。

 これは外部からの入力とは違うな。

 ということは外部への出力か。

 それと読み込む対象の魔法名が

 『モニミニチルトラナリ』だミニアは『モニミニチ』なのでおかしい。

 これは拡張子みたいな物が付いているな。

 『ルトラナリ』が拡張子だ。

 

 今分かった事をイメージにすると。


char main(int argc,char *argv[])

{

 TEL *tp;

 char s[256];

 tp=topen("モニミニチルトラナリ");

 ■■■■■■{

  ■■■■■■;

 } 

 tclose(tp);

 ■■■■■■;

}


 とこんな具合だ。

 冒頭部分はさっき言った通り外部への出力を追加してある。


 分かるのはループの中が嘘を見破る心臓部だって事だ。

 ループの命令で定義した領域の名前が出てくる事から読み込みも兼ねているのだろう。

 最後の分からないのは出力だろう。


 イメージが固まったな。

 たぶんこうだろう。


char main(int argc,char *argv[])

{

 TEL *tp; /*嘘を判別するデータの定義*/

 char s[256]; /*読み取るデータの格納場所*/

 tp=topen("モニミニチルトラナリ"); /*読み取るデータを開く*/

 while(tgets(s,256,tp)!=NULL){ /*一行読み取りを終わるまで繰り返す*/

  if(liar_check(s,argv[1])=='N') return('N'); /*嘘か判別 嘘ならFALSEを返す。『argv[1]』に尋ねたい質問*/

 }

 tclose(tp); /*読み取るデータを閉じる*/

 return('Y'); /*嘘はなかった*/

}


 『liar_check』ってので嘘か本当か判断している。

 こういう関数の内部はブラックボックスで分からない。

 推測になるが『s』に読み込んだデータを処理している。


 『while』ってのは繰り返し命令だ。

 条件が満たされるまで回り続ける。

 回数制限がないから、無限ループの温床だな。

 でも便利だから良く使う事になる。

 この場合『tgets』から答えを受け取ってそれを終了判定にしている。

 これはデータの読み込みが全て終わるとループも終わるようになっている。


 『return』ってのは答えを一つ返す命令だ。

 いわゆる簡単な出力だ。

 この場合、0か1を返す。

 一つだけなら何でも答えを返せる。

 データの塊を一つとして返すなんてやり方もある。


 うん、おかしい。

 あきらかにこの呪文の意味が初めから頭に染み込んでいるような気がする。

 そうでなければ『テクニリイ』が『while』なんだってのがすんなり分かるはずがない。

 『return』もそうだ。

 これが答えを返すなんてなぜ分かる。

 転生特典が呪文に対しても働いている。

 そう考えるべきだろう。

 それにしては中途半端だ。

 全ての関数名が分かっても良さそうなのに。

 実際に呪文を聞かないと意味を思い出さないなんて。

 それもはっきりではなく、おぼろげにだ。

 でも、使える分には問題ないだろう。

 ありがたく使わせてもらおう。


 それと『TEL』という定義。

 これは最初に出てきたのが伝言魔法だったのでテレパシーだろうとイメージをこうしたが。

 これは魔力とか魂とかの方がふさわしいんじゃないか。




 呪文を改良する。

 冒頭部分を魔法名+拡張子を入力できる形にして出来たイメージがこれだ。


int main(int argc,char *argv[])

{

 TEL *tp; /*嘘を判別するデータの定義*/

 char s[256]; /*読み取るデータの格納場所*/

 tp=topen(argv[1]); /*読み取るデータを開く*/

 while(tgets(s,256,tp)!= NULL){ /*一行読み取りを終わるまで繰り返す*/

  if(liar_check(s,argv[2])=='N') return('N'); /*嘘か判別 嘘ならFALSEを返す。この場合、条件の嘘が一つでもあったら終わりになる*/

 }

 tclose(tp); /*読み取るデータを閉じる*/

 return('Y'); /*嘘はなかった*/

}


 呪文に翻訳して『リニチス』という名前でコンパイルしておく。

 使い方は起動するときに魔法名+拡張子を後から念じて、その後に判断したい事柄を念じる。

 そうすると、嘘か本当かのイメージが浮かぶ。

 又一つコレクションが増えたぞ、やっふー。




 そんな事をしていたら毛布と大量の串肉を手になぜかミニアが帰って来た。

 服はちゃんと似合った物に着替えられている。

 可愛いぞミニア。


「宿に泊まらなくていいのか」

「うん。ウィザ、友達。一緒」


 俺が尻尾を抱えて丸まり中にミニアがすっぽりと入る。

 俺は買って来た串肉をゆっくり味わった。

 魔法の情報も聞きたいが食欲には勝てん。

 野生で悪かったな。

 串肉うめー。

 転生ぶりの料理だ。

 美味いぞーっと叫ぶとドラゴンの遠吠えに驚いて街道を行き来する馬が暴走した。

 すまん、苦情は街に入れてくれない偉い人に言っておいてくれ。


 ミニアを見るとご機嫌で串肉を食べている。

 吠え声うるさかっただろうに動じない奴だ。


「なあ、何がしたい」


 俺は会話の魔法を発動させて問い掛けた。


「ひょうけんひゃ」


 ミニアは食べながら答える。


「食べ終わってからで良いぞ」


 ミニアはしばらくもぐもぐと口を動かしてから飲み込み。

 そして一言。


「冒険者」

「そうか冒険したいのか。よし、おじさん手伝っちゃうぞ」


 返事がないので見てみるとミニアは寝息を立てていた。

 良い夢みろよ。

 明日から冒険者稼業の始まりだ。

  • Twitterで共有
  • Facebookで共有
  • はてなブックマークでブックマーク

作者を応援しよう!

ハートをクリックで、簡単に応援の気持ちを伝えられます。(ログインが必要です)

応援したユーザー

応援すると応援コメントも書けます

新規登録で充実の読書を

マイページ
読書の状況から作品を自動で分類して簡単に管理できる
小説の未読話数がひと目でわかり前回の続きから読める
フォローしたユーザーの活動を追える
通知
小説の更新や作者の新作の情報を受け取れる
閲覧履歴
以前読んだ小説が一覧で見つけやすい
新規ユーザー登録無料

アカウントをお持ちの方はログイン

カクヨムで可能な読書体験をくわしく知る