第5話 意思疎通の糸口

 山は寒いが何となく頭が冴え渡る様な気もする。

 虫の声などが聞こえないのも良い。

 耳に入るのは風だけだ。

 もの凄く集中できる。

 仙人になった気分だ。


 俺は誘導弾を解析に入る。

 まずはループを外す。

 出来たイメージがこれだ。


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

{

 ■■■■■■;

 MAGIC *mp;

 mp=fire_ball_make(1000);

 ■■■■■■;

 ■■■■■■;

}




 呪文にしてみる。

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

ソクチス・ラスコニカガヌワムレ・

モチキニソ・けモセレ・ 

モセほハニスイろコチリリろモチノイゆヌワワワよレ・

モチキニソろシニスイソカゆモセネラスコニカネトニツイラハゆラスコニカよネチスキヒガヌムよレ・

モチキニソろモラヒイゆモセネラスコニカネトニツイラハゆラスコニカよよレ・む』とこんな感じだ。


 ここでコンパイルして実行してみる。

 呪文をコンパイルする。

 実行名は『トクラカ』だ。

 『撃つ』と考えた時にこの言葉が浮かんだ。

 意味のある言葉だとうっかり念じてしまうかもしれない。

 この言葉をありがたく使おう。


 『トクラカ』と念じる時に目標も一緒に念じる。

 火の玉が発射された。

 そして、10センチ動いた所で消えた。

 やった初めての魔法だ。

 俺にも魔法が使えたぞ、ひゃっほい。

 俺はかなり魔力があるらしい。

 魔法を使うことで魔力が知覚できた。


 だが、射程が短い。

 ループを取り払ったからだろう。

 『モチキニソろモラヒイゆモセネラスコニカネトニツイラハゆラスコニカよよレ』の文言を外してみる。

 実行すると火の玉は出来たが、飛ばない。

 つまりさっきの部分は火の玉の移動なのだろう。

 移動の部分を元に戻しその前の部分を取り払った。

 すると火の玉が不規則に飛んだ。

 射程が10センチで良かった。

 ループしてたら自爆するところだったよ。

 そうだ、さっきの一文は飛行データを設定しているわけだ。

 これでイメージが固まった。




 解析できたオリジナルの誘導弾のイメージがこれだ。


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

{

 char orbit[10]; /*軌道データ10センチ分だと思う*/

 int i; /*カウンター*/

 MAGIC *mp; /*魔法の定義*/

 mp=fire_ball_make(1000); /*火の玉生成*/

 for(i=0;i<1000;i++){ /*千回繰り返し*/

  magic_direct(mp,orbit,sizeof(orbit),argv[1]); /*目標に向かう軌道データ生成*/

  magic_move(mp,orbit,sizeof(orbit)); /*軌道データ通りに動かす*/

 }

}


 ざっくり説明するとファイヤーボールを作り、軌道データを入れ、ファイヤーボールを動かす。

 動かし終わったら軌道データを入力する所から1000回繰り返しだ。

 プログラマーにとっては簡単な呪文だが、素人には厳しいのだろうな。

 異世界人がコンパイルをしてない事からヘルプのコマンドは知られていないのだろう。

 呪文の単語の意味も失われているかもしれない。

 プログラムの概念なんかもないのだろうな。

 後で異世界人に聞いてみたい。




 よし、今度は改造だ。

 射程を延ばすのは簡単だ繰り返しの命令にある『i<1000』の所の数値を増やせば良い。

 ファイヤーボールの威力を上げるのは『mp=fire_ball_make(1000)』の1000を3000だの4000だのにすれば良い。


 試行錯誤して数字を物にする。

 『ワヌフアウエオヤユヨ』が0から9だ。

 これで研究も進むな。


 威力を十倍に増やして魔法を放つ。

 雪にファイヤーボールが当たりもくもくと水蒸気を上げる。

 魔力をオリジナルの十倍ほど喰われた。

 でもまだまだ余裕だ。

 2重ループにして誘導弾を十回放つ。

 山頂の雪が溶けまくり岩肌を覗かせる。

 普通に魔力十倍だな。




 お次はっと。

 もう一つの『ヒラニシ・モチニミゆヒラニシよ・が・

カイリ・けカセレ・

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

カセスニミカハゆカセネふ「ザンダリルだ。終わった。今から帰還する」ふよレ・

カソリラトイゆカセよレ・む』の解析に入る。

 これは会話文が入っている所から念話の魔法だと思われる。

 これが解析できれば人と会話できる。


 『カセスニミカハゆカセネふ「ザンダリルだ。終わった。今から帰還する」ふよレ』を抜き出してコンパイルしてみる。

 当然エラーだ。

 なんとなく『セスニミカハ』に付いている『カ』の一文字取ってみるエラーだけどエラーが指し示している所が変わった。

 『カセネ』の所をエラーが指し示している。

 これも取っちゃえ。

 『セスニミカハゆふ「ザンダリルだ。終わった。今から帰還する」ふよレ』としたらコンパイルが通った。

 おっ、やったぞ呪文を開発できた。

 イメージを表すと。


void main(void)

{

 printf("ザンダリルだ。終わった。今から帰還する"); /*文字表示*/

}


 こんなところだろう。

 実行してみる。


 『ザンダリルだ。終わった。今から帰還する』の文字が空中に浮かぶ。

 やった成功だ。

 これだと決まった会話しか出来ないのでさらに改良する。

 イメージでは。


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

{

 printf(argv[1]); /*『argv[1]』で外部からの入力が表示されるはず*/

}


 意味は外部から伝えたい言葉を入力し表示する。

 こうなれば良いのだけれど。

 また一文字ずつ当てはめる試行錯誤だな。

 だけど、確実に前進している。

 後少しだ。


 冒頭部分は誘導弾の物が流用できる。

 後は引数をなんとかすれば良い。

 これもヒントは誘導弾にある。




 奮闘の結果なんとか物にする事が出来た。


 呪文は『ヒラニシ・モチニミゆニミカ・チスキソネソクチス・けチスキヒガムよ・が・

セスニミカハゆチスキヒガヌムよレ・む』だ。


 実行名は『カチリノ』だ。

 『会話』という言葉を考えた時にこの言葉が出てきた。


 結果は念じていた文字が空中に浮かんだ。

 異世界人が腰を抜かさないと良いが。


 呪文の秘密もある程度が解けたし異世界人とコンタクトを取るために山を降りようと思う。

 その前に名前を決めないと。

 何が良いかな。

 思いついた『ウィザード』を名乗ろう。

 前世ではそんなに凄いプログラマーではなかったけれど凄いプログラマーの代名詞のこれを名前にしたい。

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

作者を応援しよう!

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

応援したユーザー

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

新規登録で充実の読書を

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

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

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