入門編『夜間授業』
「魔導書さん。今日使った重力操作の術式を教えてくれますか?」
夕飯を終えてしばらく無言で佇んでいた心地良い空間に、エイダの可愛い声が響いた。魔導書はどうしようかと思案していると、エイダが恐る恐る尋ねる。
「もしかして、凄く難しいの?」
「そんな事は無い。数十行しか無い凄くシンプルな術式だ。ただ、どうやて説明しようか迷っていただけだ」
「ふ〜ん」
エイダは軽く受け答えながら、ベッドの上にうつ伏せに寝転がる。魔導書は開いたまま枕より上に置き、枕に頭を埋める。自分の部屋なのか、かなりリラックスしている。
「うんまぁ何にせよ、術式を見せた方が早いか。えっと、昼はどこまで教えたっけ?『三次元空間』『速度』『加速度』の表示はまだ説明してないか」
魔導書とブツブツ独り言を言いながら、術式の表示の準備をする。
「術式はざっと、こんな感じだ」
<html>
<head>
<style>
input {text-align: right;}
</style>
<script>
var xText,yText,zText,vxText,vyText,vzText,axText,ayText,azText;
window.onload=function(){
xText=document.getElementById("x");
yText=document.getElementById("y");
zText=document.getElementById("z");
vxText=document.getElementById("vx");
vyText=document.getElementById("vy");
vzText=document.getElementById("vz");
axText=document.getElementById("ax");
ayText=document.getElementById("ay");
azText=document.getElementById("az");
display();
}
function display(){
xText.value=master.x;
yText.value=master.y;
zText.value=master.z;
vxText.value=master.vx;
vyText.value=master.vx;
vzText.value=master.vx;
axText.value=master.ax;
ayText.value=master.ax;
azText.value=master.ax;
setTimeout(display,100);
}
</script>
</head>
<body>
x=<input type="text" id="x" SIZE=10/>m<BR>
y=<input type="text" id="y" SIZE=10/>m<BR>
z=<input type="text" id="z" SIZE=10/>m<BR>
vx=<input type="text" id="vx" SIZE=10/>m/s<BR>
vy=<input type="text" id="vy" SIZE=10/>m/s<BR>
vz=<input type="text" id="vz" SIZE=10/>m/s<BR>
ax=<input type="text" id="ax" SIZE=10/>m/s²<BR>
ay=<input type="text" id="ay" SIZE=10/>m/s²<BR>
az=<input type="text" id="az" SIZE=10/>m/s²<BR>
</body>
<html>
表示された術式を見て、一瞬エイダは凍る。
「えっと? 簡単?」
「あぁ。エイダ(master)の『現在位置』と『速度』と『加速度』を表示するだけの単純な術式だ」
「今まで見た術式の中で、一番長いんだけど?」
「繰り返しが多いから、そう見えるのかな?」
エイダの疑問に、魔導書はさも当たり前のように答える。
「さて、次は重力操作の術式を……」
「ちょ、ちょっと待って!」
次に進めようとする魔導書を、慌ててエイダは止める。
「教えてもらっていないのが沢山使われてる。一つ一つ教えてもらわないとわからないよ」
エイダの必死の訴えに、魔導書はようやく我に返ったように返事をする。
「あぁそうだった。エイダにはHTMLのタグ等はまだ教えてなかったか……。済まないエイダ。少しぼ〜っとしていた」
「部屋に戻った後、何回か話しかけても『そうだな』『あぁ』とか生返事だったんだよ?」
「そうか。考え事をしていて、全く聞いていなかった。本当に済まない」
「もう!」
プンプンと拗ねたポーズを取る。いつもの魔導書に戻ったようで、エイダも少し安心する。
「ではまず、『HTML』の説明から始めよう。『HTML』とは『ハイパーテキスト マークアップ ランゲージ』の略で、ハイパーテキストを記述するためのマークアップ言語の1つだ。さて、次はタグの説明に……」
「ちょ、ちょっと待って! もう『ハイパーテキスト』やら『マークアップ』やら分からない単語が出まくってて、説明が説明になってないよ!」
「済まないエイダ。少しぼ〜っとしていた」
「嘘だ! 絶対に今のワザとだ!」
魔導書のボケに、エイダは必死にツッコミを入れる。説明している時にやられると少しウザいようだ。魔導書は観念したように普通に説明を始める。
「では『ハイパーテキスト』から説明しよう。『テキスト』は日本語では何?」
「『文書』?」
「『ハイパー』は?」
「『凄い』?」
エイダの答えに魔導書は満足そうに頷き、説明を続ける。
「そう『ハイパーテキスト』は簡単に訳せば『凄い文書』。では質問。どうやれば文書は凄くなれると思う?」
魔導書の変な質問に、エイダは首を傾げながら『う〜ん』と考える。
「書いた事が本当になるとか?」
「うん。メルヘンチックな答えで、私は好きだ。しかし、それではない。もうちょっと現実的に考えて」
エイダはしばらく考えるが、答えが思い付かない。降参したエイダに、魔導書は答えを言う。
「文書が別の文書に、お互いに繋がりあってたらどうなると思う?」
ーーーーーーーー ログ ーーーーーーーーーー
エイダはHTMLの勉強を開始する。
ーーーーーーーーーーーーーーーーーーーーーー
登場人物
エイダ・ラブレス
冒険者に憧れている9歳の普通の女の子。
結構ベッドに横になりながら本を読んだりする。
職業:術者 LV1
称号:初心者
スキル:『関数 LV4』『構文 LV1』『文字列 LV1』『コメント LV1』『算術演算子 LV1』『文字列演算子 LV2』『変数 LV2』『代入演算子 LV1』『オブジェクト指向 LV1』『イベント処理 lv1』『デカルト座標系 LV1』『力学 LV2』
関数:『alert()』
HTMLタグ:『<script>』
イベント:『mousedown』【throw】
(【】は魔法に関連し、従来のjavascriptにはない)
喋る魔導書
エイダが森の奥で出会った喋る魔導書。
考え事をすると、聞こえなくなるタイプ。
作者より
https://ncode.syosetu.com/n1899el/
小説家になろうで「JavaScript開発日記」も連載始めました。こちらは「異世界の魔法はJavaScriptで起動する」では扱えないようなスクリプトを、ブログみたいに書いていこうかなと考えています。今は「小説家になろう文章作法修正スクリプト」に取り掛かっていて、ちょっとずつ改善していく予定。修正スクリプトが出来上がったら、今まで書いた話を編集していこうと思っています。