第5話 新たなる決意

 ゴーレムの欠点は呪文の詠唱だ。

 動いたりや魔法を使うたびに詠唱がいる。

 幸いオークは遅かったがそれでも苦戦した。

 パワーは申し分ないんだよな。

 解決策を探して本をめくる。

 魔道具を実行する機能があるとな。

 そういえばサルとオークから綺麗な石が採れたな。

 人間と出会った時の換金用に取っておいたが、魔道具が作れるらしい。


 だが、その前に前に作ったチョップ・プログラムを改造する。


#include <stdio.h>

#include "golem.h"

void chop_move(int angle)

{

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

 waist_twist(angle); /*腰を捻る*/

 operate(); /*動かす*/


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

  r_shoulder_set(0,0,0); /*腕を振り下ろす*/

  operate(); /*動かす*/

  r_shoulder_set(90,0,0); /*腕を振り上げる*/

  operate(); /*動かす*/

 } /*ループの終わり*/

}

void main(void)

{

 r_elbow_set(90); /*右肘を90度曲げるよう設定*/

 r_shoulder_set(90,0,0); /*腕を振り上げる*/

 operate(); /*動かす*/


 chop_move(0); /*正面チョップ三回*/

 chop_move(45); /*右45度チョップ三回*/

 chop_move(-45); /*左45度チョップ三回*/


 r_shoulder_set(0,0,0); /*腕を振り下ろす*/

 waist_twist(0); /*腰を元の位置に*/

 r_elbow_set(0); /*右肘を戻すよう設定*/

 operate(); /*動かす*/

}


 こんな感じにしたがとても苦労した。

 初めて関数を作ったこれだけでも一杯一杯なのに角度の入力付きだ。

 『chop_move』について簡単に説明すると腰を捻る角度を受け取る。

 そしてその角度に腰を捻って腕を三回振り下ろす。

 『waist_twist』の括弧の中で角度を指定しているのが分かるだろうか。

 本によれば『45』と直接数字を書くのが定数。

 『angle』みたいに書くのが変数。

 カウンター定義の『int i;』は変数『i』を『int型』で定義しているとも言えるらしい。

 うがぁ、専門用語ばかりで分からん。

 要はカウンターを使えるようにしましたとこれで良いんじゃね。


 変数はたぶん変化させられるから変数なんだな。

 定数は定まっていて変化させられないから定数だな。

 よし覚えた。


 何っ。

 文字定数と文字列定数がまだ残っていると。


 えっと文字定数は『'A'』みたいに文字一文字。

 文字列定数は『"ABCDEFG"』みたいに文章らしい。

 文字列定数は配列になっているとな。

 うがっ、頭に詰め込みすぎだ。

 核が痛い。


 魔道具作るのに文字列定数が必要だと。

 とにかくやってみるか。

 本のサンプルを見てみる。


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

{

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

 mp=magic_tool_init(argv[1]); /*魔石を魔法として登録*/

 magic_tool_write(mp,"ここに呪文を入れる"); /*呪文書き込み*/

 magic_tool_compile(mp); /*呪文を実行できる形にする*/

}


 おおっ、分からない事だらけだ。

 『argc』って何。

 『*』ってなんだ掛け算とは違うのか。

 他にも分からない事だらけだ。


 だが、使えれば良い。

 細かい意味なんて改造する時に考えりゃあ良い。


 使えるようにするには『ここに呪文を入れる』って書いてある所に呪文を入れてコンパイルすりゃ良いんだな。

 オッケー、オッケー、オールライト。


 『ヒラニシ・モチニミゆヒラニシよ・が・ハニスイろコチリリろカイトカゆよレ・む』と、これがファイヤーボールの呪文だったな。


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

{

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

 mp=magic_tool_init(argv[1]); /*魔石を魔法として登録*/

 magic_tool_write(mp,"ヒラニシ・モチニミゆヒラニシよ・が・ハニスイろコチリリろカイトカゆよレ・む"); /*呪文書き込み*/

 magic_tool_compile(mp); /*呪文を実行できる形にする*/

}


 こういうふうにコピペしてコンパイルと。

 魔法を実行する時に魔石をイメージするとな。

 サルの魔石を使ったが、あっさりと出来たな。

 ゴーレムから降り魔力を込めて使うと念じる。

 おおっ、ファイヤーボールが俺から発射された。

 ゴーレムがなくてもこれなら戦えるな。


 ゴーレムから魔道具を起動するには腰の収納に魔道具カートリッジを入れて下さいとある。

 魔道具カートリッジ?

 そんな物はない。

 端子が腰の収納の奥にある。

 ここに魔石をくっ付けたらいけるんじゃ。

 触手を伸ばして魔石を端子に接触させる。

 おおっ、ゴーレムからファイヤーボールが発射された。

 しかも、詠唱無しだ。


 文字列定数について分かった事。

 文章を入れておく。

 配列についてはまだ不明。

 『*』については初心者に立ちふさがる最大の難関らしい。

 まだまだ先は長いな。

 でもなんとなく魔法使いになった気分。

 いや、まだまだ。

 もっと精進しないと自由な会話なんて夢のまた夢。

 ぜったいプログラム入門をマスターしてやる。


 ふと見ると街道が見える。

 ゴーレムは街の人に受け入れられるだろうか。

 まだ見えない街に向かってプログラム『walk100』を実行した。


----------------------------------

 1章はここまでです。

 プログラムを覚えるさわりになったでしょうか。

 この先の展開は白紙です。

 物語主体で行くと難しいプログラムがバンバン出てくる事になってしまいます。

 そうかと言ってプログラムを覚える順番を重視すると物語が作りづらい。

 入門として前作『転生ドラゴンの魔法使い~魔法はガチでプログラムだった~』のプログラムが理解できる程度までは話を進めたいと思います。

 20話ぐらいで完結できたらと思っています。

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

作者を応援しよう!

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

応援したユーザー

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

最強ゴーレムに乗ったスライム ~ゴーレムはガチでロボットだった~ 喰寝丸太 @455834

★で称える

この小説が面白かったら★をつけてください。おすすめレビューも書けます。

カクヨムを、もっと楽しもう

この小説のおすすめレビューを見る

この小説のタグ