第3話 魔法の第1、2法則と、神秘魔法名と、税金付き魔道具

 門番の勤務時間が終わり、俺は実家の自分の部屋で本を広げた。

 内容は日本語の説明とプログラムだ。

 最初に魔法の法則について書いてある。

 第1法則として、説明と効率について書いてある。


 この法則は俺も知っている。

 呪文は文字通り何でも良い。

 例えば火なら。

 【火】だけでも火は起こる。

 【燃える火】とかにしても良い。


 長くなると詠唱が大変だ。

 だが、長くする利点があるのだ。

 説明が詳しければ詳しいほど、安定と魔力効率が良くなる。


 プログラムの呪文で火を起こすとする。

 こうなる。


extern MAGIC *fire_make(float mana);

extern int mclose(MAGIC *mp);


void main(void)

{

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

 mp=fire_make(0.00005); /*20センチの火球を作る*/

 mclose(mp); /*魔法終わり処理*/

}


 プログラム部分は120文字。

 120文字に幾つ説明と言うか意味が、沢山入っている。

 『{』一つで始まりを表す。

 だが、場所によってはループの始まりだったり、分岐の始まりだったりもする。

 このプログラムではメイン関数の始まりだ。

 一文字で一つ以上の意味を持ってたりする。


 ざっと数えて30ぐらいの説明が入っている。

 これだけでもプログラムの魔法が凄いのが分かるだろうが。

 もっと凄いのがあやふやな点がないって事だ。


 それと魔王タイトによれば、魔法に入力と出力を求めるのが画期的なのだそうだ。

 『void main(void)』の所だ。

 これは結果の出力をしないし、情報の入力もしないというプログラムになっている。

 こういう所が魔法として劇的に効率を高めるのだそうだ。

 その魔力効率の良さ200万倍。


 呪いが掛かる前に知りたかった。

 そうすれば嫌な思いもする必要が無かったし、両親ももっと長生きできた。

 俺は前世でも、うだつが上がらなかった。

 今世でも同じ事を繰り返すのか。

 嫌だ。

 貯まったツケを奴らに払わせたい。


 まだ遅くはない。

 まだ26だ。

 親父が死んだ歳になるまで、後20年はある。


 よし、この手引書を熟読するぞ。

 第2法則を読む。

 魔法は魔力で力を及ぼすが、大半の力は召喚魔法なのだそうだ。

 無から作り出すのではなく、既にある物を召喚している。

 火の魔法は燃える材料を召喚しているらしい。

 発火は魔力でやっているらしいが。


 つまり魔力だけで動く魔法と召喚して物理的に力を及ぼす魔法に分かれていると。

 召喚する魔法はできないかもだけど、魔力だけの魔法は出来るかもしれない。

 掛けてみよう。


#include <stdio.h> /*お約束という奴。色々な定義がしてある*/

#include <stdlib.h> /*お約束という奴。色々な定義がしてある*/


void main(void)

{

 system("dir"); /*この場に居る人間を表示*/

}


 これで俺の神秘魔法名が分かるんだそうだ。

 『スチソノイス』と空中に表示された。

 この文字は幻だな。

 触っても実体がない。


 とにかく、やったな。

 呪いが掛かっているのに魔法が使えた。

 魔力をそのまま使う魔法には制限が掛かってないらしい。


 『スチソノイス』これが俺の神秘魔法名か。

 神秘魔法名は魔法の基本だそうだ。

 世界が決めた個人の固有の名前らしい。


 そんな知識は知らないぞ。

 伝説によれば魔王タイトは500年ぐらい前の人物だとされている。

 その頃より衰退しているんじゃなかろうか。

 読み進めると魔法陣は魔法とは似て非なる物と書かれている。

 魔法陣って何だ?


 そんな物は存在してないぞ。

 400年より前の歴史は、ほとんど分からないらしい。

 歴史の断絶と呼ばれているが、詳しい事は分からない。


 そういう謎は置いておこう。

 とにかく他に使える魔法だ。


 他に使えるのは……魔道具作りだな。

 魔道具作りは魔石に魔力でイメージと呪文を書き込む。


 俺は魔道具が使えないのは分かっている。

 だが俺の作った魔道具を、他人が使うのは問題ないのではないか。

 作ってみよう。


 普通に作るのは面白くないな。

 一回使用する毎にお金をもらおう。

 税金だ。

 俺はこの腐った国をぶち壊したい。

 勝手に税金を取って国を作るぞ。


extern int mclose(MAGIC *mp); /*externは外部参照 この行で関数を定義している*/

extern int tax_collection(int money);

extern MAGIC *water_make(float mana);


void main(void) /*主関数 前にあるvoidは出力 括弧の中は入力 voidは無しって意味*/

{ /*主関数始まり*/

 MAGIC *mp; /*魔法の情報を入れておく所*/


 if(tax_collection(1)==1){ /*税金徴収、銅貨1枚 金が無ければ、何も起こらない*/

  mp=water_make(0.00005); /*水生成、約8リットル*/

  mclose(mp); /*魔法終わり処理*/

 } /*分岐終わり*/

} /*主関数終わり*/


 手引書を参考にして、こんなのが出来た。

 さて、誰に試してもらおう。

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

作者を応援しよう!

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

応援したユーザー

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

新規登録で充実の読書を

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

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

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