第4話 近接攻撃

 ゴーレムの背に揺られて五日。

 そろそろ道が見えても良いんじゃないかと思う。




 本を読み進める。

 関数の呼び出しについてを読んだ。


 それを読んでゴーレムの近接攻撃をプログラミングしてみた。


#include <stdio.h>

#include "golem.h"

void main(void)

{

 r_shoulder_set(90,0,0); /*右の肩をX軸90度、回転するよう設定*/

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

 operate(); /*動かす*/


 r_shoulder_set(0,0,0); /*右の肩を元に戻すよう設定*/

 operate(); /*動かす*/


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

 operate(); /*動かす*/

}


 出来上がったのが、なんちゃってチョップだ。

 長くなったが、なんでも関節の数値をセットしただけでは動かないらしい。

 『operate();』が呼び出されると動くらしい。


 このプログラムの肝は『r_shoulder_set』でX、Y、Zの回転軸の入力がある点だ。

 三つの入力は初めてだ。


 本によると関数は出力と入力がある。

 無いのは『void』で定義されていて省略されているからだと。

 注意事項として入力は複数可能だが、出力は一つだけだとあった。


 必要な場所だけを飛ばし読みする。

 とにかく複数入力する場合は『,』で区切るこれが分かれば今は問題ない。

 分からない所は後で関連の場所を読み直そう。


 『#include "golem.h"』はゴーレム関数の定義が入っているという設定らしい。

 深く突っ込んだらいけないそうだ。


 チョップ一回だけだと心もと無いな。

 三回繰り返そう。

 作ってみるか


 ええとまず肘を曲げる。

 そして腕を振り上げて振り下ろす。

 もう一回、振り上げて振り下ろす。

 最後の振り上げて振り下ろし。

 肘を元に戻したら完成だ。


 ええっと肘を曲げるのは最初だけで良いと肘を戻すのも最後に一回。

 何だか難しい。

 困った時に見る様にという目次が本にある。

 ふむふむ、プログラムは繰り返しに限らず、初期設定、処理、終わり処理。

 この流れを意識すれば作れると。

 こんなのでどうだ。


#include <stdio.h>

#include "golem.h"

void main void(void)

{

 /*ここから初期設定*/

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

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

 /*初期設定終わり*/


 /*処理*/

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

  r_shoulder_set(90,0,0); /*右の肩をX軸90度、回転するよう設定*/

  operate(); /*動かす*/

  r_shoulder_set(0,0,0); /*右の肩を元に戻すよう設定*/

  operate(); /*動かす*/

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

 /*処理終わり*/


 /*終わり処理*/

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

 operate(); /*動かす*/

 /*終わり処理の終わり*/

}




 ループを見てみる。

 確か繰り返しもさっき言った法則だと。

 『i=0』が初期設定。

 『i<3』が終わり処理。

 『i++』が処理ってことか。

 本によれば終わり処理の部分は終了判定だが、似たようなもんだろう。



 おっと敵さんだ。

 3メートルほどもあるオークがやってきた。


 ファイヤーボール行くぜ。

 ファイヤーボールは体の表面で消えた。

 ダメージを与えているとは思えない。


 チョップ・プログラムを走らせる。

 詠唱が始まる。


 しまった外してしまった。

 オークはゴーレムを容赦なく殴打する。

 壊れないよねこれ。

 チョップは駄目だ当たらないだろう。

 よし、ならば、範囲攻撃だ。

 コピペを使い急いで、プログラムを作る。

 入力機能コピペもできるんだよ。

 無駄に高性能だ。


#include <stdio.h>

#include "golem.h"

void main void(void)

{

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

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


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

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

  operate(); /*動かす*/

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

  operate(); /*動かす*/

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


 waist_twist(45); /*腰を45度捻る*/

 operate(); /*動かす*/

 

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

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

  operate(); /*動かす*/

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

  operate(); /*動かす*/

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


 waist_twist(-45); /*腰を反対側に45度捻る*/

 operate(); /*動かす*/


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

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

  operate(); /*動かす*/

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

  operate(); /*動かす*/

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


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

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

 operate(); /*動かす*/

}


 プログラムを実行した結果、正面のチョップは外れたが。

 そこから45度腰を捻ってたらビンタになった。

 そこからのチョップが当たって見事、頭を叩いた。


 『ふげっ、ぷぎゅ、ふぎゃ、ぷぎょー』という謎の言葉を発してオークは倒れた。

 勝ったどー。

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

作者を応援しよう!

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

応援したユーザー

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

新規登録で充実の読書を

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

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

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